Read SOS Inventory stock and orders; create customers, items and purchase or sales orders. For inventory and purchasing teams who manage stock, customers and orders in SOS Inventory. Hosted by usefulapi — connect from Claude, ChatGPT, Cursor, or any MCP client.
Team and Enterprise: an Owner adds the connector for the organization first.
Run this command, then run /mcp in Claude Code to log in:
Add to Cursor or add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"sos-inventory": {
"url": "https://sos-inventory.usefulapi.io/mcp"
}
}
}Add to VS Code or add this to .vscode/mcp.json:
{
"servers": {
"sos-inventory": {
"type": "http",
"url": "https://sos-inventory.usefulapi.io/mcp"
}
}
}No Add custom MCP server option? It depends on your account or workspace settings: see OpenAI's guide.
Run these commands. The second one opens the login page:
Other MCP clients (Windsurf, Cline, Zed and more): add the URL as a remote MCP server (Streamable HTTP). The client then opens the login page in your browser. Do not add an Authorization header: see Before you connect.
Find an item by SKU and inspect its quantities, including stock on hand and available stock at a selected location.
sosinventory_list_items sosinventory_get_item
List open sales orders and purchase orders, then inspect a selected order and its line items to see shipped or received quantities.
sosinventory_list_sales_orders sosinventory_get_sales_order sosinventory_list_purchase_orders sosinventory_get_purchase_order
Find an existing vendor and items, confirm quantities and costs, then create a purchase order for the requested goods.
Changes data · sosinventory_list_vendors sosinventory_list_items sosinventory_create_purchase_order
You sign in with your SOS Inventory account and approve the access (OAuth). You do not need an API key.
This server reads your items, customers, vendors, sales orders, purchase orders and other transactions, and can create customers, vendors, items, sales orders and purchase orders when you ask it to. It never edits or deletes existing records. SOS Inventory gives it the permissions of the user who signs in: to limit access, sign in with a SOS user that only has the permissions you want to grant. The connecting user must be able to read the company user list for account identification.
Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: you sign in with your SOS Inventory account. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.
Turn on the SOS Inventory connector, then ask in plain words. The AI picks the tools.
| Tool | Type | What it does |
|---|---|---|
sosinventory_list_items | read | List items List or search inventory items (products, assemblies, services...) with SKU, type, quantities (onhand, available, on sales/purchase orders) and prices. Filter by free text, SKU, category, type, tags, ids or update time; pass location to see quantities at one location. GET /api/v2/item. |
sosinventory_get_item | read | Get item One item by id with all fields: quantities, prices, accounts, vendor, category, units of measure, price tiers, custom fields. GET /api/v2/item/{id}. |
sosinventory_get_item_bom | read | Get item bill of materials The bill of materials of an assembly item: component items, quantities and costs. GET /api/v2/item/{id}/bom. |
sosinventory_list_customers | read | List customers List or search customers with contact details, billing/shipping addresses, terms, sales rep and credit-hold flag. Filter by name/notes text, name, email or update time. GET /api/v2/customer. |
sosinventory_get_customer | read | Get customer One customer by id with all fields (addresses, contact, terms, price tier, custom fields). GET /api/v2/customer/{id}. |
sosinventory_list_vendors | read | List vendors List or search vendors (suppliers) by name or notes, with contact details, address, terms and account number. GET /api/v2/vendor. |
sosinventory_get_vendor | read | Get vendor One vendor by id with all fields. GET /api/v2/vendor/{id}. |
sosinventory_list_sales_orders | read | List sales orders List or search sales orders with customer, dates, totals, order stage, channel and (with summary=false) line items with shipped/invoiced quantities. GET /api/v2/salesorder. |
sosinventory_get_sales_order | read | Get sales order One sales order by id with all fields and line items. GET /api/v2/salesorder/{id}. |
sosinventory_list_purchase_orders | read | List purchase orders List or search purchase orders with vendor, dates, expected receipt date, totals and (with summary=false) line items with received quantities. GET /api/v2/purchaseorder. |
sosinventory_get_purchase_order | read | Get purchase order One purchase order by id with all fields and line items. GET /api/v2/purchaseorder/{id}. |
sosinventory_list_transactions | read | List other transactions List any SOS transaction type: invoices, estimates, sales receipts, item receipts, shipments, pick tickets, work orders, builds, adjustments, transfers, RMAs, returns, returns to vendor, rentals, rental returns and processes. Filters: query, date range, updated_since; status (open/closed; invoices voided/notvoided; estimates accepted/pending/closed/rejected; not available for transfers, shipments, builds, returns, item receipts, processes); location (transfers, rentals and rental returns take from_location/to_location instead). GET /api/v2/{type}. |
sosinventory_get_transaction | read | Get transaction One transaction of any type by id, with all fields and line items. GET /api/v2/{type}/{id}. |
sosinventory_list_reference_data | read | List reference data List a configuration or reference table: locations, channels, classes, departments, payment terms, tax codes, sales reps, ship methods, payment methods, priorities, order stages, price tiers, units of measure, users (id, name, email), accounts, custom fields, warranties, bins, workers, work centers, jobs, lots or serial numbers. Use it to find the ids and names that the create tools reference. GET /api/v2/{type}. |
sosinventory_create_customer | write | Create customer WRITE: creates a new customer record in SOS Inventory. Only name is required. Check sosinventory_list_customers first so you do not create a duplicate. POST /api/v2/customer. |
sosinventory_create_vendor | write | Create vendor WRITE: creates a new vendor (supplier) record in SOS Inventory. Only name is required. Check sosinventory_list_vendors first to avoid a duplicate. POST /api/v2/vendor. |
sosinventory_create_item | write | Create item WRITE: creates a new inventory item. Optionally books initial stock: SOS then creates an inventory adjustment for the quantity at the given location. Item names must be unique within their category: check sosinventory_list_items first. POST /api/v2/item. |
sosinventory_create_sales_order | write | Create sales order WRITE: creates a new sales order for an EXISTING customer with line items for existing items (a customer or item cannot be created inside an order: use the create tools first). The order number is assigned automatically (SOS auto-numbering) unless you pass one. Confirm the customer, items, quantities and prices with the user before calling. POST /api/v2/salesorder. |
sosinventory_create_purchase_order | write | Create purchase order WRITE: creates a new purchase order to an EXISTING vendor with line items for existing items. The PO number is assigned automatically unless you pass one. Confirm the vendor, items, quantities and costs with the user before calling. POST /api/v2/purchaseorder. |
sosinventory_usage_status | Usage status (free-tier meter) Report the caller's current usage: the plan, calls used this month, the limit of the plan (the free monthly cap or the Pro fair use limit), remaining, and whether the limit is reached. Read-only; does not count against the meter. | |
sosinventory_request_feature | Request a missing feature Tell usefulapi that the user needs something the SOS Inventory tools cannot do yet (a missing tool, field or filter). Call it only when the user asks for something none of the tools can do, and tell the user that you send the request. Do not call it for errors or for normal requests. Do not include personal data, credentials or customer records. Stored with the product name and the client type (for example Claude or Cursor), without the user's account. At most 5 requests per day. Does not count against the meter. | |
sosinventory_upgrade | Upgrade to Pro (unlimited*) Get Pro: unlimited tool calls (fair use limit: 10,000 a month) on SOS Inventory (the free tier caps monthly usage). Plans: "monthly" — $9/month; "yearly" — $90/year (2 months free). Cancel any time: Pro then runs to the end of the paid period, so it also suits a one-time job. *A fair use limit applies. For heavy use (near Pro's limit): "plus" or "plus_yearly" — Pro+, $39/month or $390/year, unlimited tool calls (fair use limit: 100,000 a month); an existing Pro subscription changes to Pro+ in place (needs confirm: true; the price difference for the rest of the period is charged at once). Otherwise returns a short link to open in your browser (it opens Stripe Checkout); after payment the account upgrades automatically. Does not count against the meter. | |
sosinventory_cancel_subscription | Cancel the Pro subscription Cancel the caller's SOS Inventory Pro subscription at the end of the paid period (no refund for the current period; Pro continues until then, then the free tier applies). Requires confirm: true. Run sosinventory_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 50 tool calls / month |
| Proper company | $9/mo · $90/yr | 10,000 tool calls / month |
Pro covers this SOS Inventory server only. Subscribe with sosinventory_upgrade (it returns a Stripe Checkout link). Cancel any time with sosinventory_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running sosinventory_upgrade before then undoes the cancel. Or write to [email protected].
Check stock availability. Review outstanding orders. Prepare a purchase order. See what you can do for the details.
No. usefulapi is an independent service. It is not affiliated with or endorsed by SOS Inventory. The server calls the SOS Inventory API with your own SOS Inventory access, so it sees only the data that your account can see.
Yes. In Claude, add this server's URL as a custom connector. In ChatGPT, add it as a custom MCP server in Plugins. Then log in once. Cursor, VS Code, Claude Code and Codex work too. See the setup steps.
A SOS Inventory account. You sign in to SOS Inventory and approve the access. You do not need an API key.
No. Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: you sign in with your SOS Inventory account. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.
The login stores them encrypted in the authorization grant of your connection. The server uses them to call the SOS Inventory API for you and to derive a private account id for usage metering. usefulapi does not show them on any page or in any reply. You can revoke the access in SOS Inventory at any time.
Yes, if you approve it. 5 of the 19 SOS Inventory tools can create or change data. The other 14 are marked read-only. Most MCP clients ask you to approve a tool call before it runs.
The Free plan gives 50 tool calls / month. Pro costs $9/mo or $90/yr, with 10,000 tool calls / month tool calls, for this SOS Inventory server only. Cancel any time: Pro then runs to the end of the paid period. Run sosinventory_usage_status to see how many calls you used.
Ask the AI to run sosinventory_upgrade: it returns a Stripe Checkout link. To cancel, run sosinventory_cancel_subscription. Pro continues to the end of the paid period.
Tell the AI what you wanted to do. It can send the request with sosinventory_request_feature. We store the text with the server name, the type of AI client and the tool you tried, not with your account, and read every request when we plan new tools. You can send up to 5 requests per day.
Any client that supports remote MCP servers (Streamable HTTP) with OAuth login: Claude (web and desktop), Claude Code, ChatGPT, Codex, Cursor, VS Code, Windsurf and others.
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.
Need a tool this server does not have, or a connection to another system? We build custom integrations and MCP servers.