Cin7 Core MCP by usefulapi

Read Cin7 Core products, stock by location, sales, purchases, customers, suppliers and transfers.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
91%
Naming quality
78%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin cin7core_list_sales
  • LOWTool 'cin7core_get_stock_availability' name length outside 3-30 rangein cin7core_get_stock_availability
  • LOWTool 'cin7core_list_stock_adjustments' name length outside 3-30 rangein cin7core_list_stock_adjustments

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,832Tokens (tool definitions)
~2.2 KBTypical response size
Significant attention impact (3.77% of 128k context)

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-http

What it can do

Tool inventory

Tools (17)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded17 tools