{"openapi":"3.1.0","info":{"title":"MRPeasy (BYOK) API","version":"0.1.0","description":"MRPeasy (BYOK) lets an AI assistant read your own MRPeasy data through the MRPeasy API with a key you supply (API access key). Read-only: 11 tools (list_customer_orders, get_customer_order, list_manufacturing_orders, get_manufacturing_order, list_purchase_orders, list_inventory, get_inventory_summary, list_stock_items, list_shipments, list_stock_lots, list_vendors). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mrpeasy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mrpeasy/docs"},"termsOfService":"https://connectorbay.com/byok-mrpeasy/terms"},"servers":[{"url":"https://byok-mrpeasy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mrpeasy/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_customer_orders":{"post":{"operationId":"list_customer_orders","summary":"List customer orders with customer, status, totals, currency, creation and delivery dates. The API returns its first 100","description":"List customer orders with customer, status, totals, currency, creation and delivery dates. The API returns its first 100 matches and this connector shows up to 50 of them, so narrow with the filters. Use for \"Which customer orders are confirmed but not yet shipped in MRPeasy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Order status: 10 quotation, 20 waiting for confirmation, 30 confirmed, 40 waiting for production, 50 in production, 60 ready for shipment, 70 shipped, 80 delivered, 85 archived, 90 cancelled.","title":"Status"},"code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Customer order number.","title":"Code"},"customer_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Customer name (wildcards allowed).","title":"Customer Name"},"customer_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only orders of this customer ID.","title":"Customer Id"},"created_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or after this time, as a Unix timestamp in seconds.","title":"Created Min"},"created_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or before this time, as a Unix timestamp in seconds.","title":"Created Max"},"delivery_date_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records due for delivery at or after this time, as a Unix timestamp in seconds.","title":"Delivery Date Min"},"delivery_date_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records due for delivery at or before this time, as a Unix timestamp in seconds.","title":"Delivery Date Max"}},"title":"list_customer_ordersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_customer_order":{"post":{"operationId":"get_customer_order","summary":"Get one customer order by its database ID with customer, status, totals and delivery dates. Use for \"Show customer order","description":"Get one customer order by its database ID with customer, status, totals and delivery dates. Use for \"Show customer order 25 in MRPeasy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cust_ord_id":{"description":"Customer order database ID.","minimum":1,"title":"Cust Ord Id","type":"integer"}},"required":["cust_ord_id"],"title":"get_customer_orderArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_manufacturing_orders":{"post":{"operationId":"list_manufacturing_orders","summary":"List manufacturing orders with product, quantity, status, cost and parts status. The API returns its first 100 matches a","description":"List manufacturing orders with product, quantity, status, cost and parts status. The API returns its first 100 matches and this connector shows up to 50 of them, so narrow with the filters. Use for \"Which manufacturing orders are in progress\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Order status: 10 new, 15 not scheduled, 20 scheduled, 30 in progress, 35 paused, 40 done, 50 shipped, 60 closed, 70 cancelled.","title":"Status"},"item_code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Product code of the item being made.","title":"Item Code"},"item_title":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Product name (wildcards allowed).","title":"Item Title"},"created_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or after this time, as a Unix timestamp in seconds.","title":"Created Min"},"created_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or before this time, as a Unix timestamp in seconds.","title":"Created Max"},"due_date_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records due at or after this time, as a Unix timestamp in seconds.","title":"Due Date Min"},"due_date_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records due at or before this time, as a Unix timestamp in seconds.","title":"Due Date Max"}},"title":"list_manufacturing_ordersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_manufacturing_order":{"post":{"operationId":"get_manufacturing_order","summary":"Get one manufacturing order by its database ID. Use for \"Show manufacturing order 12\".","description":"Get one manufacturing order by its database ID. Use for \"Show manufacturing order 12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"man_ord_id":{"description":"Manufacturing order database ID.","minimum":1,"title":"Man Ord Id","type":"integer"}},"required":["man_ord_id"],"title":"get_manufacturing_orderArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_purchase_orders":{"post":{"operationId":"list_purchase_orders","summary":"List purchase orders with vendor, status, totals and expected date. The API returns its first 100 matches and this conne","description":"List purchase orders with vendor, status, totals and expected date. The API returns its first 100 matches and this connector shows up to 50 of them, so narrow with the filters. Use for \"Which MRPeasy purchase orders are ordered but not received\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Order status: 5 RFQ, 10 new, 20 ordered, 30 shipped, 40 received, 110 archived, 120 cancelled.","title":"Status"},"vendor_title":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Vendor name (wildcards allowed).","title":"Vendor Title"},"code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Purchase order number.","title":"Code"},"created_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or after this time, as a Unix timestamp in seconds.","title":"Created Min"},"created_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or before this time, as a Unix timestamp in seconds.","title":"Created Max"},"expected_date_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records expected at or after this time, as a Unix timestamp in seconds.","title":"Expected Date Min"},"expected_date_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records expected at or before this time, as a Unix timestamp in seconds.","title":"Expected Date Max"}},"title":"list_purchase_ordersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_inventory":{"post":{"operationId":"list_inventory","summary":"List stock on hand per item with quantity, total cost and average cost, optionally as of a past date. The API returns it","description":"List stock on hand per item with quantity, total cost and average cost, optionally as of a past date. The API returns its first 100 matches and this connector shows up to 50 of them, so narrow with the filters. Use for \"How much of each item do we have in stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Inventory as of this date, YYYY-MM-DD; default today.","title":"Date"},"site_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this site ID.","title":"Site Id"},"group_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this product group ID.","title":"Group Id"},"group_title":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only this product group name.","title":"Group Title"}},"title":"list_inventoryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_inventory_summary":{"post":{"operationId":"get_inventory_summary","summary":"Get total inventory quantity and cost, including work in progress, optionally as of a date. Use for \"What is the total v","description":"Get total inventory quantity and cost, including work in progress, optionally as of a date. Use for \"What is the total value of my MRPeasy inventory\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"As of this date, YYYY-MM-DD; default today.","title":"Date"},"site_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this site ID.","title":"Site Id"},"group_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this product group ID.","title":"Group Id"}},"title":"get_inventory_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_stock_items":{"post":{"operationId":"list_stock_items","summary":"List stock items (products and materials) with stock, available and booked quantities and average cost. The API returns ","description":"List stock items (products and materials) with stock, available and booked quantities and average cost. The API returns its first 100 matches and this connector shows up to 50 of them, so narrow with the filters. Use for \"Which items are below their minimum stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Item code (wildcards allowed).","title":"Code"},"title":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Item name (wildcards allowed).","title":"Title"},"group_title":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Product group name.","title":"Group Title"},"barcode":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Barcode of the item.","title":"Barcode"},"is_raw":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for raw materials bought from vendors only.","title":"Is Raw"},"in_stock_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Only items with at most this quantity in stock.","title":"In Stock Max"},"in_stock_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Only items with at least this quantity in stock.","title":"In Stock Min"}},"title":"list_stock_itemsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_shipments":{"post":{"operationId":"list_shipments","summary":"List shipments with status, creation time and notes. The API returns its first 100 matches and this connector shows up t","description":"List shipments with status, creation time and notes. The API returns its first 100 matches and this connector shows up to 50 of them, so narrow with the filters. Use for \"Which MRPeasy shipments are ready to ship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Shipment status: 10 new, 15 ready for shipment, 20 shipped, 30 cancelled.","title":"Status"},"customer_order_code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only shipments of this customer order number.","title":"Customer Order Code"},"tracking_number":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Tracking number.","title":"Tracking Number"},"created_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or after this time, as a Unix timestamp in seconds.","title":"Created Min"},"created_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or before this time, as a Unix timestamp in seconds.","title":"Created Max"}},"title":"list_shipmentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_stock_lots":{"post":{"operationId":"list_stock_lots","summary":"List stock lots with item, status, quantity, available and booked quantity and cost. The API returns its first 100 match","description":"List stock lots with item, status, quantity, available and booked quantity and cost. The API returns its first 100 matches and this connector shows up to 50 of them, so narrow with the filters. Use for \"Which lots are about to expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Lot status: 5 requested, 10 planned, 15 on hold, 20 received, 25 rejected, 30 cancelled, 100 to 115 RMA stages.","title":"Status"},"item_code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Item code.","title":"Item Code"},"expiry_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records expiring at or after this time, as a Unix timestamp in seconds.","title":"Expiry Min"},"expiry_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records expiring at or before this time, as a Unix timestamp in seconds.","title":"Expiry Max"},"created_min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or after this time, as a Unix timestamp in seconds.","title":"Created Min"},"created_max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records created at or before this time, as a Unix timestamp in seconds.","title":"Created Max"}},"title":"list_stock_lotsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_vendors":{"post":{"operationId":"list_vendors","summary":"List vendors with currency, on-time rate, average delay, total spend and rejection rate. Use for \"Which vendors deliver ","description":"List vendors with currency, on-time rate, average delay, total spend and rejection rate. Use for \"Which vendors deliver late most often\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Vendor name (wildcards allowed).","title":"Title"},"code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Vendor code.","title":"Code"}},"title":"list_vendorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}