Cin7 Core MCP by usefulapi
Read Cin7 Core products, stock by location, sales, purchases, customers, suppliers and transfers.
Should I use this
Quality & Safety
Findings (4)
- HIGH
- MEDIUMin cin7core_list_sales
- LOWin cin7core_get_stock_availability
- LOWin cin7core_list_stock_adjustments
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"cin7-core": {
"url": "https://cin7-core.usefulapi.io/mcp"
}
}
}Remote endpoints
https://cin7-core.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (17)
🟢cin7core_get_company
The Cin7 Core company these credentials belong to: company name, base currency, time zone, default weight/dimension units, lock date and tax calculation method. Good first call. GET /me.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_locations(name, deprecated_only, page, limit)
List stock locations (warehouses) with their id, name, default flag, address, bins and pick zones. Location names are what the stock-availability and sale/purchase tools use. GET /ref/location.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Only locations whose name starts with this.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"deprecated_only": {
"description": "true = only deprecated locations.",
"type": "boolean"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_products(name, sku, modified_since, include_deprecated, include_suppliers, ...)
List products (active by default): id, SKU, name, category, brand, type (Stock/Service), costing method, unit of measure, barcode, price tiers, average cost, reorder settings, status and description. Filter by name or SKU (contains) or by modification date. GET /product.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Only products whose name contains this.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"sku": {
"description": "Only products whose SKU contains this.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"modified_since": {
"description": "Only products changed since this time. YYYY-MM-DD (UTC) or ISO 8601 date-time with zone.",
"type": "string",
"maxLength": 40
},
"include_deprecated": {
"description": "true = include deprecated products.",
"type": "boolean"
},
"include_suppliers": {
"description": "Include each product's suppliers and supplier prices.",
"type": "boolean"
},
"include_reorder_levels": {
"description": "Include reorder levels per location.",
"type": "boolean"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_product(product_id, include_bom, include_suppliers, include_movements, include_attachments, ...)
One product by id (including deprecated ones) with its full detail; optionally its bill of materials, suppliers, stock movements, attachments, reorder levels and customer-specific prices. GET /product?ID=…
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Product id (GUID, from cin7core_list_products)."
},
"include_bom": {
"description": "Include the bill of materials.",
"type": "boolean"
},
"include_suppliers": {
"description": "Include suppliers and supplier prices.",
"type": "boolean"
},
"include_movements": {
"description": "Include stock movements.",
"type": "boolean"
},
"include_attachments": {
"description": "Include attachments (file names and download links).",
"type": "boolean"
},
"include_reorder_levels": {
"description": "Include reorder levels per location.",
"type": "boolean"
},
"include_custom_prices": {
"description": "Include customer-specific prices.",
"type": "boolean"
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_stock_availability(product_id, name, sku, location, batch, ...)
Stock levels per product, location, bin and batch: on hand, allocated, available, on order, in transit, stock on hand value and next delivery date. Filter by product id, name (starts with), exact SKU, location name, batch/serial number or category. GET /ref/productavailability.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"description": "Only this product (GUID).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Only products whose name starts with this.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"sku": {
"description": "Only the product with exactly this SKU.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"location": {
"description": "Only stock in this location (exact location name, see cin7core_list_locations).",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"batch": {
"description": "Only this batch or serial number.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"category": {
"description": "Only products in this category (name).",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_customers(name, contact, modified_since, include_deprecated, page, ...)
List customers (active by default): id, name, display name, currency, payment term, tax rule, price tier, sales rep, location, credit limit and hold, status, addresses and contacts. Filter by name (starts with), contact name/email, or modification date. GET /customer.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Only customers whose name starts with this.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"contact": {
"description": "Only customers with a contact whose name starts with this or whose email equals this.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"modified_since": {
"description": "Only customers changed since this time. YYYY-MM-DD (UTC) or ISO 8601 date-time with zone.",
"type": "string",
"maxLength": 40
},
"include_deprecated": {
"description": "true = include deprecated customers.",
"type": "boolean"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_customer(customer_id, include_product_prices)
One customer by id (including deprecated ones), optionally with its customer-specific product prices. GET /customer?ID=…
Input Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Customer id (GUID)."
},
"include_product_prices": {
"description": "Include customer-specific product prices.",
"type": "boolean"
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_suppliers(name, modified_since, include_deprecated, page, limit)
List suppliers (active by default): id, name, currency, payment term, tax rule, discount, status, addresses and contacts. Filter by name (starts with) or modification date. GET /supplier.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Only suppliers whose name starts with this.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"modified_since": {
"description": "Only suppliers changed since this time. YYYY-MM-DD (UTC) or ISO 8601 date-time with zone.",
"type": "string",
"maxLength": 40
},
"include_deprecated": {
"description": "true = include deprecated suppliers.",
"type": "boolean"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_supplier(supplier_id)
One supplier by id (including deprecated ones). GET /supplier?ID=…
Input Schema
{
"type": "object",
"properties": {
"supplier_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Supplier id (GUID)."
}
},
"required": [
"supplier_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_sales(search, status, created_since, updated_since, updated_until, ...)
List sales (sale orders) with order number, status, customer, order/invoice dates, invoice and paid amounts, currencies, and the quote/order/pick/pack/ship/invoice/payment statuses. Search by order number, customer, invoice number or customer reference; filter by dates and statuses. GET /saleList.
Input Schema
{
"type": "object",
"properties": {
"search": {
"description": "Text contained in the order number, status, customer, invoice number, customer reference or credit note number.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"status": {
"description": "Overall sale status.",
"type": "string",
"enum": [
"DRAFT",
"VOIDED",
"ESTIMATING",
"ESTIMATED",
"ORDERING",
"ORDERED",
"BACKORDERED",
"PICKING",
"PICKED",
"PACKING",
"PACKED",
"SHIPPING",
"INVOICING",
"INVOICED",
"CREDITED",
"COMPLETED"
]
},
"created_since": {
"description": "Only sales created after this time.",
"type": "string",
"maxLength": 40
},
"updated_since": {
"description": "Only sales changed after this time.",
"type": "string",
"maxLength": 40
},
"updated_until": {
"description": "Only sales changed before this time.",
"type": "string",
"maxLength": 40
},
"ship_by": {
"description": "Only sales with a Ship By date on or before this, not yet shipped.",
"type": "string",
"maxLength": 40
},
"quote_status": {
"description": "Quote status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED"
]
},
"order_status": {
"description": "Order status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED",
"AUTH_NO_ALLOC",
"FULFILLED",
"CLOSED"
]
},
"pick_status": {
"description": "Combined pick status.",
"type": "string",
"enum": [
"VOIDED",
"NOT AVAILABLE",
"PICKED",
"PICKING",
"NOT PICKED",
"PARTIALLY PICKED"
]
},
"pack_status": {
"description": "Combined pack status.",
"type": "string",
"enum": [
"VOIDED",
"NOT AVAILABLE",
"PACKED",
"PACKING",
"NOT PACKED",
"PARTIALLY PACKED"
]
},
"shipping_status": {
"description": "Combined shipping status.",
"type": "string",
"enum": [
"VOIDED",
"NOT AVAILABLE",
"SHIPPED",
"SHIPPING",
"NOT SHIPPED",
"PARTIALLY SHIPPED"
]
},
"invoice_status": {
"description": "Combined invoice status.",
"type": "string",
"enum": [
"VOIDED",
"DRAFT",
"AUTHORISED",
"NOT AVAILABLE",
"PAID"
]
},
"credit_note_status": {
"description": "Credit note status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED"
]
},
"external_id": {
"description": "Only sales with this External ID.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"ready_for_shipping": {
"description": "true = only sales packed but not yet shipped.",
"type": "boolean"
},
"order_location_id": {
"description": "Only sales from this order location (GUID).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_sale(sale_id, combine_additional_charges, hide_inventory_movements, include_transactions)
One sale by id with everything on it: customer, contact, addresses, terms, location, notes, quote, order lines, fulfilments (pick/pack/ship and tracking), invoices, credit notes, payments, attachments and inventory movements. GET /sale?ID=…
Input Schema
{
"type": "object",
"properties": {
"sale_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Sale id (GUID, the SaleID from cin7core_list_sales)."
},
"combine_additional_charges": {
"description": "Show additional charges inside the line arrays.",
"type": "boolean"
},
"hide_inventory_movements": {
"description": "Leave out inventory movements (smaller reply).",
"type": "boolean"
},
"include_transactions": {
"description": "Include the related accounting transactions.",
"type": "boolean"
}
},
"required": [
"sale_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_purchases(search, status, required_by, updated_since, updated_until, ...)
List purchases (purchase orders) with order number, status, supplier, order/invoice/required-by dates, invoice and paid amounts, currencies, type (simple/advanced/service) and the order/receiving/invoice/payment statuses. GET /purchaseList.
Input Schema
{
"type": "object",
"properties": {
"search": {
"description": "Text contained in the order number, status, supplier, invoice number or credit note number.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"status": {
"description": "Overall purchase status.",
"type": "string",
"enum": [
"DRAFT",
"VOIDED",
"ORDERING",
"ORDERED",
"RECEIVING",
"RECEIVED",
"INVOICED",
"CREDITED",
"RECEIVING / CREDITED",
"RECEIVED / CREDITED",
"PARTIALLY INVOICED",
"COMPLETED"
]
},
"required_by": {
"description": "Only purchases with a Required By date on or before this.",
"type": "string",
"maxLength": 40
},
"updated_since": {
"description": "Only purchases changed after this time.",
"type": "string",
"maxLength": 40
},
"updated_until": {
"description": "Only purchases changed before this time.",
"type": "string",
"maxLength": 40
},
"order_status": {
"description": "Purchase order status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED"
]
},
"stock_received_status": {
"description": "Stock received (put away) status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED"
]
},
"invoice_status": {
"description": "Invoice status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED",
"PAID"
]
},
"credit_note_status": {
"description": "Credit note status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED"
]
},
"unstock_status": {
"description": "Unstock status.",
"type": "string",
"enum": [
"NOT AVAILABLE",
"DRAFT",
"AUTHORISED",
"VOIDED"
]
},
"drop_ship_sale_id": {
"description": "Only drop-ship purchases created by this sale (GUID).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_purchase(purchase_id, combine_additional_charges)
One purchase by id (simple, advanced or service purchase): supplier, contact, addresses, terms, location, required-by date, note, order lines, stock received, put away, invoices, credit notes, payments and attachments. GET /advanced-purchase?ID=… (the vendor endpoint that serves every purchase type).
Input Schema
{
"type": "object",
"properties": {
"purchase_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Purchase id (GUID, the ID from cin7core_list_purchases)."
},
"combine_additional_charges": {
"description": "Show additional charges inside the line arrays.",
"type": "boolean"
}
},
"required": [
"purchase_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_stock_adjustments(status, page, limit)
List stock adjustments: task id, number, effective date, status, expense account, reference and comment. GET /stockadjustmentList.
Input Schema
{
"type": "object",
"properties": {
"status": {
"description": "Only adjustments with this status.",
"type": "string",
"enum": [
"DRAFT",
"COMPLETED",
"VOIDED"
]
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_stock_adjustment(task_id)
One stock adjustment by task id with its lines (product, location, batch, quantity, unit cost) and transactions. GET /stockadjustment?TaskID=…
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Stock adjustment task id (GUID, from cin7core_list_stock_adjustments)."
}
},
"required": [
"task_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_list_stock_transfers(status, search, page, limit)
List stock transfers between locations: task id, number, from/to location, status, departure and completion dates, reference. GET /stockTransferList.
Input Schema
{
"type": "object",
"properties": {
"status": {
"description": "Only transfers with this status.",
"type": "string",
"enum": [
"DRAFT",
"IN TRANSIT",
"COMPLETED",
"VOIDED"
]
},
"search": {
"description": "Text contained in the from/to location, status, reference or number.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"limit": {
"description": "Records per page, 1-100 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cin7core_get_stock_transfer(task_id)
One stock transfer by task id with its lines (product, quantity, from/to bin, batch) and status. GET /stockTransfer?TaskID=…
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Stock transfer task id (GUID, from cin7core_list_stock_transfers)."
}
},
"required": [
"task_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence