Summary
Cin7 Omni (go.cin7.com) inventory and order management through API v1: sales orders, quotes, purchase orders, credit notes, contacts, products, stock per branch, branches, payments (read only), stock adjustments, branch transfers and users. Create orders, purchase orders, contacts and transfers. API username and key.
Guided setup
Connect Cin7 Omni to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect Cin7 Omni in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for Cin7 Omni
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Cin7 Omni, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Cin7 Omni + Microsoft Copilot
Cin7 Omni (go.cin7.com) inventory and order management through API v1: sales orders, quotes, purchase orders, credit notes, contacts, products, stock per branch, branches, payments (read only), stock adjustments, branch transfers and users. Create orders, purchase orders, contacts and transfers. API username and key.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
CIN7_OMNI_API_USERNAME, CIN7_OMNI_API_KEY
Step 1 — Get credentials
Setting up takes about 3 minutes. You need a Cin7 Omni account (you sign in at go.cin7.com) and an administrator who can add an API v1 connection. The connector needs the API username and an API key.
Omni or Core? Cin7 sells two different products. Cin7 Omni (this connector) signs in at go.cin7.com and has API v1 with an API username and key. Cin7 Core (formerly DEAR Inventory) signs in at inventory.dearsystems.com and has its own API with an Account ID and Application Key: use the Cin7 Core connector for it. The two APIs and their credentials are not interchangeable.
- In Cin7 Omni open the user menu, then Settings → Integrations & API → API v1.
- Copy the API Username shown at the top of the page into
CIN7_OMNI_API_USERNAME. - Click Add New API Connection, give it a name and copy its API key into
CIN7_OMNI_API_KEY. Regenerate Key replaces a lost key. - Under Permissions tick Read for every resource the AI should see, and Create or Update for the resources the write tools need, then click Save. A resource without permission answers 403.
- Install the connector. Run
cin7_omni_list_branchesto check the connection: it lists your branches with their ids.
Cloud and self-hosted work the same way: the credentials are the same, and there is no redirect URL to set. The connector sends the username and key as HTTP Basic authentication.
Where to start: cin7_omni_list_branches for branch ids, cin7_omni_list_sales_orders for recent orders, cin7_omni_list_stock for stock per branch, and cin7_omni_list_contacts to find a customer or supplier.
What it reads: sales orders, quotes and credit notes with their line items; payments recorded against orders; purchase orders; products, their options (the sellable SKUs) with prices and categories; stock per product option and branch (available, on hand, open sales, incoming); stock adjustments and branch transfers; contacts and users.
What it writes: cin7_omni_create_sales_order, cin7_omni_update_sales_order (header fields only, such as stage, tracking code and delivery instructions), cin7_omni_create_purchase_order, cin7_omni_create_contact, cin7_omni_update_contact and cin7_omni_create_branch_transfer are switched on. A new sales order is approved unless the AI creates it as a draft; purchase orders and transfers are saved as drafts unless approved. Dispatch and receipt of transfers happen in Cin7.
Switched off at install: cin7_omni_create_adjustment (create a stock adjustment in one branch). An approved adjustment changes stock on hand and stock value at once. Switch it on on the connector page if the AI should use it; the AI asks you to confirm every change.
Check the answer of every write: Cin7 answers HTTP 200 with a list of {index, success, id, code, errors}, also when it refused the record. The AI checks success and errors before it reports a write as done.
Payments are read only: the connector never records, changes or deletes a payment, and it does not dispatch, invoice or void orders.
Filtering: where takes SQL-style conditions on fields of the record, not of its line items. Strings and dates go in single quotes, numbers stay bare: modifiedDate>='2026-01-01T00:00:00Z' AND branchId=3, reference LIKE 'SO-10%', id IN (21,24). Dates are UTC, yyyy-MM-ddTHH:mm:ssZ. fields trims the answer (id,reference,total,lineItems(code,qty)), which helps with order lists, because they are large.
Paging: page starts at 1 and rows is at most 250 (default 50, 25 on order lists). The AI asks for the next page until one comes back empty.
Rate limits: Cin7 Omni allows 3 calls a second, 60 a minute and 5,000 a day per account; beyond that it answers 429 with Retry-After. Large rows with narrow where filters use the budget better than many small calls.
Values: order status is DRAFT, APPROVED or VOID, and stage is a free-text workflow stage (New, Awaiting Payment, Processing, On Hold, Dispatched). Stock available is stock on hand minus open sales. Contact type is Customer, Supplier or Internal. Writes take amounts in the order currency; reads return base currency values with the exchange rate. New users can take up to 2 hours to appear in cin7_omni_list_users.
Common errors: 403 means the API connection has no permission for that resource: tick it under Permissions and save. 429 is the rate limit: wait for the Retry-After time.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
Cin7 Omnitools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
cin7_omni_list_sales_orders | List sales orders, newest first: id, reference, status (DRAFT, APPROVED, VOID), stage, customer (memberId, company, email), branchId, dates… |
cin7_omni_get_sales_order | Read one sales order with its line items, addresses, totals, stage, status, invoice and dispatch dates |
cin7_omni_list_quotes | List sales quotes with customer, branch, totals, stage and line items |
cin7_omni_list_purchase_orders | List purchase orders, newest first: id, reference, supplier (memberId, company), branchId, status, stage, estimatedArrivalDate… |
cin7_omni_get_purchase_order | Read one purchase order with its line items, supplier, dates and totals |
cin7_omni_list_credit_notes | List credit notes: id, reference, salesReference (the sales order it credits), customer, totals, status and line items (negative quantities) |
cin7_omni_get_credit_note | Read one credit note with its line items and totals |
cin7_omni_list_payments | List payments recorded against orders: id, orderId, orderRef, paymentDate, amount, method, direction (1 received, -1 paid out or refunded)… |
cin7_omni_list_contacts | List contacts (customers, suppliers, internal): id, type, company, first and last name, email, phone, addresses, accountNumber… |
cin7_omni_get_contact | Read one contact with addresses, secondary contacts, pricing and account details |
cin7_omni_list_products | List products (styles): id, name, styleCode, status, brand, category ids, description, stockControl and their productOptions (variants with… |
cin7_omni_get_product | Read one product with all its options, prices and dimensions |
cin7_omni_list_product_options | List product options (the sellable variants, SKUs): id, productId, code, barcode, option1-3, retail, wholesale and special prices, price… |
cin7_omni_list_product_categories | List product categories: id, name, parentId (0 = top level), sort |
cin7_omni_list_stock | Stock per product option and branch: productId, productOptionId, code, barcode, branchId, branchName, available (stock on hand minus open… |
cin7_omni_list_branches | List branches (warehouses, stores): id, company, branchType, isActive, address and bin locations |
cin7_omni_list_adjustments | List stock adjustments: id, reference, branchId, isApproved, completedDate, adjustmentReason and line items (code, qty, unitCost) |
cin7_omni_list_branch_transfers | List stock transfers between branches: id, reference, sourceBranchId, destinationBranchId, stage, isApproved, dispatchedDate, receivedDate… |
cin7_omni_list_users | List the users of the Cin7 Omni account: id, firstName, lastName, jobTitle, email, isActive |
cin7_omni_create_sales_order | Create one sales order |
cin7_omni_update_sales_order | Update header fields of one sales order: stage, tracking code, customer order number, estimated delivery date, delivery instructions… |
cin7_omni_create_purchase_order | Create one purchase order to a supplier (member_id of a Supplier contact) |
cin7_omni_create_contact | Create one contact (customer or supplier) |
cin7_omni_update_contact | Update one contact; only the fields given change |
cin7_omni_create_branch_transfer | Create a stock transfer between two branches |
cin7_omni_create_adjustment | Create a stock adjustment in one branch (positive qty adds stock, negative removes it) |
Example prompts
- "Which sales orders were approved this week and are not dispatched yet?"
- "How much stock of SKU TSHIRT-BLK-M is available in each branch?"
- "Which purchase orders are due to arrive this month, and from which suppliers?"
- "Find the customer with the email [email protected] and show their balance owing."
- "Create a draft transfer of 20 units of TSHIRT-BLK-M from the main warehouse to the city store."
FAQ
I use Cin7 Core (DEAR Inventory). Is this the right connector? No. Cin7 Core has its own API and credentials: use the Cin7 Core connector. Credentials of one product do not work on the other.
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
Was this guide helpful?