# Cin7 MCP connector

The Cin7 connector brings stock adjustments, branch transfers, bills of materials, cartons, contacts and credit notes into Claude, ChatGPT, Cursor and the Elaichi Agent, so each person works with Cin7 inside their own access, with every call logged.

Source: https://elaichi.ai/connectors/cin7/

## Facts

| | |
| --- | --- |
| Application | Cin7 |
| Category | Ecommerce |
| AI tools | 73 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 73 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Cin7 is connected

- List branch transfers still open from the Auckland warehouse this week
- Create a credit note for Harbor Traders for the returned pallets
- Show adjustments over 100 units posted at the Melbourne branch

## Connect Cin7 in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Cin7.
2. Optionally set Share with, then press Connect.
3. Paste a Cin7 API key. One person generates a token in Cin7 and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Cin7 tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Cin7 to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Cin7 to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Cin7 to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Cin7 to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Cin7 tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Cin7 through Elaichi

### Record a stock count as an adjustment

Warehouse. After a cycle count, tell the agent which items were over or short and it creates the Cin7 adjustment for you. A batch of corrections can be updated in one pass instead of one at a time.

### Move stock between branches without the spreadsheet

Operations. Ask which branch transfers are still open, then raise a new transfer from the branch that has surplus to the one that is running low.

### Raise a credit note against a return

Finance. When a customer sends goods back, the agent creates the Cin7 credit note against the right contact. When an auditor asks, it pulls up any existing credit note by its number.

### Keep customer and supplier contacts current

Sales. Catch a Cin7 contact up after a call, add a new trade customer, or fix addresses across a list of contacts in one bulk update.

### Check what goes into a finished product

Production. Ask what components a bill of materials calls for before promising a build date, and compare it against the other bills of materials you keep in Cin7.

### Answer packing questions from the carton record

Customer service. Look up a carton by its ID and correct its details while the customer is on the phone, without opening Cin7 yourself.

## Frequently asked questions

### How do I connect Cin7 to Claude?

Two steps. In Elaichi, choose Cin7 and paste the API key from your Cin7 account, there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in as yourself when Claude asks and Cin7 is ready to use.

### Does Cin7 work with ChatGPT and Cursor as well as Claude?

Yes. Once Cin7 is connected in Elaichi, Claude, ChatGPT, Cursor, any MCP client and the Elaichi Agent all reach it through the same address, https://api.elaichi.ai/mcp. You connect Cin7 once and nothing has to be redone per client.

### What can an AI agent actually do with my Cin7 data?

It can look up and list your Cin7 stock adjustments, branches, branch transfers, bills of materials, cartons, contacts and credit notes, and answer questions about them in plain language. It can also create new adjustments, transfers, branches, contacts and credit notes, update cartons, and push a batch of changes through in one go. Cin7 has a lot of actions, so short concrete asks such as 'create a transfer of 40 units from Auckland to Sydney' work better than long paragraphs.

### Does connecting Cin7 give the AI everything in my Cin7 account?

No. The AI can only reach what the Cin7 connection itself is allowed to reach, and Elaichi can narrow that further for each team, it can never widen it. Each person signs into Elaichi as themselves, so every Cin7 call is tied to a named person rather than to a shared login.

### Can my team share one Cin7 connection?

Yes. One person connects Cin7 in Elaichi and shares it with a team, and nobody else ever handles the Cin7 API key. Each teammate still signs in as themselves, so the audit log names who created which adjustment or credit note.

### Can I stop an agent from deleting or changing things in Cin7?

Yes. Restrictions in Elaichi work per action, so you can allow reading Cin7 contacts while blocking deleting them, or allow listing credit notes while blocking creating them. A blocked action is never advertised to Claude, ChatGPT or any other client, so no prompt can reach it.

### What happens to a Cin7 connection when someone leaves?

Offboarding that person in Elaichi ends their access to Cin7 at once, across every client they used. A shared Cin7 connection keeps working for everyone else on the team. If you ever want Cin7 gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client.

## All 73 Cin7 tools

Every tool below is callable through https://api.elaichi.ai/mcp once Cin7 is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Get single Cin7 adjustment by ID** (Get). Get a single Adjustment in Cin7 by its integer id. Returns: id, reference, source. Required: id.
- **List all Cin7 adjustments** (List). List Adjustments in Cin7. Returns each Adjustment as id plus attributes holding the remaining fields (not enumerated by the API reference). Max 250 rows per page.
- **Create a Cin7 adjustment** (Create). Create a list of Adjustments in Cin7 by posting a JSON array of Adjustment objects as the body. Returns a JSON array of batch result items; the upstream API documentation does not enumerate the fields of each result item. The body must be a bare JSON array (pass it as `body` on MCP tool calls).
- **Cin7 adjustments bulk update** (Update). Update a list of Adjustments in Cin7 by sending a JSON array of Adjustment objects as the body, identifying each existing Adjustment by its integer id. Returns a JSON array of batch result items; the upstream API documentation does not enumerate the fields of each result item.
- **Get single Cin7 bom master by ID** (Get). Get a single Bill of Materials (BOM) Master by id in cin7. Returns the BOM Master record with its id and model-defined attributes. Required: id.
- **List all Cin7 bom masters** (List). List Bill of Materials (BOM) Masters in cin7. Returns an array of BOM Master records, each with its id and model-defined attributes. Max 250 rows per page.
- **Get single Cin7 branch by ID** (Get). Get a single Branch in Cin7 by id. Returns the Branch with its id and attributes (branch fields are defined upstream and not enumerated in the reference). Required: id.
- **List all Cin7 branches** (List). List Branches in Cin7 with field selection, filtering, and sorting. Returns Branch records with id and attributes. Up to 250 rows per page.
- **Create a Cin7 branch** (Create). Create a list of Branches in Cin7 with a single batch call. Returns a batch result array with id, reference, and success per item.
- **Cin7 branches bulk update** (Update). Update a list of Branches in Cin7 with a single batch call. Returns a batch result array with id, reference, and success per item.
- **Get single Cin7 branch transfer by ID** (Get). Get a Branch Transfer. Returns: id, createdDate, modifiedDate, createdBy, processedBy, approvedBy, isApproved, reference. Required: id.
- **List all Cin7 branch transfers** (List). Get a list of Branch Transfers. Returns: id, createdDate, modifiedDate, createdBy, processedBy, approvedBy, isApproved, reference.
- **Create a Cin7 branch transfer** (Create). Create a list of Branch Transfers. Returns: success, id, code, errors, index.
- **Cin7 branch transfers bulk update** (Update). Update a list of Branch Transfers. Returns: success, id, code, errors, index.
- **Get single Cin7 carton by ID** (Get). Get the Carton details for a Sales Order. Returns: number, sscc, length, depth, height, volume, weight, trackingNumber. Required: id.
- **Update a Cin7 carton by ID** (Update). Replace the list of Cartons for a Sales Order. Required: id.
- **Get single Cin7 contact by ID** (Get). Get a single Contact from Cin7 by id. Returns the Contact object, including its id; the remaining fields of the upstream Contact model are not enumerated in the discovered source. Required: id.
- **Delete a Cin7 contact by ID** (Delete). Delete a Contact from Cin7 by id. Returns the upstream result item, including the id of the deleted Contact; its remaining fields are not enumerated in the discovered source. Required: id.
- **List all Cin7 contacts** (List). List Contacts from Cin7 with optional field selection, filtering, and ordering. Returns an array of Contact objects, each including its id; the remaining fields of the upstream Contact model are not enumerated in the discovered source. Rows per page defaults to 50, maximum 250.
- **Create a Cin7 contact** (Create). Create a list of Contacts in Cin7 by posting a JSON array of Contact objects. Returns an array of batch result items, each including the id of the created Contact; the discovered source references the upstream batch-result model without enumerating its remaining fields. Body: a JSON array of Contact objects.
- **Cin7 contacts bulk update** (Update). Update a list of Contacts in Cin7 by putting a JSON array of Contact objects, each carrying the id of the Contact to update. Returns an array of batch result items, each including the id of the updated Contact; the discovered source references the upstream batch-result model without enumerating its remaining fields.
- **Get single Cin7 credit note by ID** (Get). Get a single credit note in Cin7 by its numeric id. Returns the credit note record, including its id. Required: id.
- **List all Cin7 credit notes** (List). List credit notes in Cin7. Returns credit note records, each including its id. Maximum 250 rows per page.
- **Create a Cin7 credit note** (Create). Create one or more credit notes in Cin7 in a single batch. The request body is a JSON array of credit note objects. Returns an array of per-item batch results, each including the id of the affected credit note.
- **Cin7 credit notes bulk update** (Update). Update one or more existing credit notes in Cin7 in a single batch. The request body is a JSON array of credit note objects. Returns an array of per-item batch results, each including the id of the affected credit note.
- **Get single Cin7 payment by ID** (Get). Get a single Payment by id in Cin7. Returns the Payment record (upstream Payment model; Cin7 publishes no field-level breakdown, so the body is content-opaque) with its identifier (id). Required: id.
- **Delete a Cin7 payment by ID** (Delete). Delete a Payment by id in Cin7. The upstream model body (BatchResultItem-style ResultItem) is content-opaque — Cin7 publishes no field-level breakdown — but it carries the identifier of the deleted record (id). Returns one such result item. Required: id.
- **List all Cin7 payments** (List). List Payments in Cin7 with field selection, where-clause filtering, and ordering. Returns an array of Payment records (upstream Payment model; field-level breakdown not published), each with its identifier (id). Hard limit: max 250 rows per page.
- **Create a Cin7 payment** (Create). Create a list of Payments in Cin7 in a single batch. The body is a JSON array of payment objects (upstream Payment model; field-level breakdown not published in the API docs). Returns one batch result item per submitted record. Hard limit: max 250 items per request.
- **Cin7 payments bulk update** (Update). Update a list of Payments in Cin7 in a single batch. The body is a JSON array of payment objects (upstream Payment model; field-level breakdown not published in the API docs). Returns one batch result item per submitted record. Hard limit: max 250 items per request.
- **Get single Cin7 product category by ID** (Get). Get a single product category in Cin7 by id. Returns the ProductCategory record including its id; the API reference does not document the remaining category fields. Required: id.
- **List all Cin7 product categories** (List). List product categories in Cin7. Returns an array of ProductCategory records, each including its id; the API reference does not document the remaining category fields. Max 250 rows per page.
- **Create a Cin7 product category** (Create). Create one or more product categories in Cin7 by submitting an array of category objects. Returns 200 with an array of batch result items, one per submitted category; the API reference does not document the fields of each result item.
- **Cin7 product categories bulk update** (Update). Update one or more product categories in Cin7 by submitting an array of category objects. Leave fields empty to clear them; null fields are not updated. Returns 200 with an array of batch result items, one per submitted category; the API reference does not document the fields of each result item.
- **Create a Cin7 product image** (Create). Upload a product image in Cin7 and attach it to a product. Returns a result item with the id of the uploaded image record.
- **Get single Cin7 production job by ID** (Get). Get a single Cin7 production job by id. Returns the production job record, including its id. Required: id.
- **List all Cin7 production jobs** (List). List Cin7 production jobs. Returns an array of production job records (each with an id). Filter with where, select columns with fields, sort with order; rows is capped at 250 per page.
- **Create a Cin7 production job** (Create). Create one or more Cin7 production jobs by posting a bare JSON array of production job objects. Returns an array of batch result items, one per submitted job; the API reference does not enumerate the item fields.
- **Cin7 production jobs bulk update** (Update). Update one or more Cin7 production jobs by sending a bare JSON array of production job objects. Returns an array of batch result items, one per submitted job; the API reference does not enumerate the item fields.
- **Get single Cin7 product option by ID** (Get). Get a single product option in Cin7 by its numeric id. Returns the product option record including id. Required: id.
- **List all Cin7 product options** (List). List product options in Cin7. Returns product option records including id. Supports fields, where, and order filtering; max 250 rows per page.
- **Create a Cin7 product option** (Create). Create a list of product options in Cin7 by sending a JSON array of product option objects as the request body. Returns the upstream batch result item array with item-specific outcome fields, including the record id.
- **Cin7 product options bulk update** (Update). Update a list of product options in Cin7 by sending a JSON array of updated product option objects as the request body. Returns the upstream batch result item array with item-specific outcome fields, including the record id.
- **Get single Cin7 product by ID** (Get). Get a single product from Cin7 by id. Returns the product record including its id; the full field set is defined by Cin7's Product schema and is not enumerated in the available reference. Required: id.
- **List all Cin7 products** (List). List products from Cin7. Returns product records including their id; the full field set is defined by Cin7's Product schema and is not enumerated in the available reference. Max 250 rows per page.
- **Create a Cin7 product** (Create). Create one or more products in Cin7 in a single batch. Returns one batch result item per submitted product. Duplicate style codes or product option codes within the request are rejected with a 400, and products whose style code or product option code already exists are skipped. The body is a JSON array of product objects.
- **Cin7 products bulk update** (Update). Update one or more products in Cin7 in a single batch. Returns one batch result item per submitted product. The body is a JSON array of up to 250 product objects; set a field to an empty value to clear it, or to null to leave it unchanged. Products whose style code or product option code already exists are skipped.
- **Get single Cin7 purchase order by ID** (Get). Get a purchase order from Cin7 by id. Returns the purchase order object including its id, with remaining fields as defined by Cin7's PurchaseOrder model. Required: id.
- **List all Cin7 purchase orders** (List). List purchase orders from Cin7. Returns an array of purchase order records, each including its id, with remaining fields as defined by Cin7's PurchaseOrder model. Filter with where, select fields, sort with order; max 250 rows per page.
- **Create a Cin7 purchase order** (Create). Create one or more purchase orders in Cin7. Requires a JSON array body of purchase order objects. Returns an array of batch result items, one per submitted purchase order, each with its id.
- ...and 23 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
