CCV Shop MCP by usefulapi
Read products, orders, customers and invoices; add internal order notes in CCV Shop.
Should I use this
Quality & Safety
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": {
"ccv-shop": {
"url": "https://ccv-shop.usefulapi.io/mcp"
}
}
}Remote endpoints
https://ccv-shop.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢ccvshop_list_products(productnumber, eannumber, productname, start, size, ...)
List the products of this webshop, filtered by product number, EAN or a part of the name. Returns items with ids, prices and stock. Uses GET /api/rest/v1/products/.
Input Schema
{
"type": "object",
"properties": {
"productnumber": {
"description": "Exact product number (SKU).",
"type": "string"
},
"eannumber": {
"description": "Exact EAN barcode.",
"type": "string"
},
"productname": {
"description": "Part of the product name (at least 3 characters).",
"type": "string",
"minLength": 3
},
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"orderby": {
"description": "Field to sort by. Add _desc to reverse, e.g. create_date_desc (see the list tool's description).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_get_product(product_id)
Get one product by id, with its prices, stock, description and attributes. Uses GET /api/rest/v1/products/{id}/.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The product id."
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_list_orders(ordernumber, status, is_paid, is_completed, min_create_date, ...)
List orders of this webshop. Filter by order number, status, paid state or a creation date range (yyyy-mm-dd). Use this to find recent sales. Uses GET /api/rest/v1/orders/.
Input Schema
{
"type": "object",
"properties": {
"ordernumber": {
"description": "Exact order number.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"description": "Order status code (as set in the webshop).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"is_paid": {
"description": "Only paid (true) or unpaid (false) orders.",
"type": "boolean"
},
"is_completed": {
"description": "Include completed orders (default true).",
"type": "boolean"
},
"min_create_date": {
"description": "Created on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"max_create_date": {
"description": "Created on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"orderby": {
"description": "Field to sort by. Add _desc to reverse, e.g. create_date_desc (see the list tool's description).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_get_order(order_id)
Get one order by id: customer, totals, payment and delivery data. Uses GET /api/rest/v1/orders/{id}/.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The order id."
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_list_order_rows(order_id, start, size)
List the order lines (products, quantities, prices) of one order. Uses GET /api/rest/v1/orders/{id}/orderrows/.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The order id."
},
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴ccvshop_add_order_note(order_id, note)
Add an INTERNAL note to one order. The note is not emailed to the customer and does not change the order. Uses POST /api/rest/v1/orders/{id}/ordernotes/.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The order id."
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "The text of the internal note."
}
},
"required": [
"order_id",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_list_categories(start, size)
List the product categories of this webshop. Uses GET /api/rest/v1/categories/.
Input Schema
{
"type": "object",
"properties": {
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_list_brands(start, size)
List the brands of this webshop. Uses GET /api/rest/v1/brands/.
Input Schema
{
"type": "object",
"properties": {
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_list_suppliers(start, size)
List the suppliers of this webshop. Uses GET /api/rest/v1/suppliers/.
Input Schema
{
"type": "object",
"properties": {
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_list_invoices(start, size, orderby)
List the invoices of this webshop. Uses GET /api/rest/v1/invoices/.
Input Schema
{
"type": "object",
"properties": {
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"orderby": {
"description": "Field to sort by. Add _desc to reverse, e.g. create_date_desc (see the list tool's description).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_get_invoice(invoice_id)
Get one invoice by id. Uses GET /api/rest/v1/invoices/{id}/.
Input Schema
{
"type": "object",
"properties": {
"invoice_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The invoice id."
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_list_users(approval_status, start, size, orderby)
List the customer accounts (users) of this webshop, optionally by approval status (pending or accepted). Uses GET /api/rest/v1/users/.
Input Schema
{
"type": "object",
"properties": {
"approval_status": {
"description": "Only pending or only accepted accounts.",
"type": "string",
"enum": [
"pending",
"accepted"
]
},
"start": {
"description": "Element to start from (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Maximum number of items to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"orderby": {
"description": "Field to sort by: id, first_name or last_name (add _desc to reverse).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ccvshop_get_user(user_id)
Get one customer account (user) by id. Uses GET /api/rest/v1/users/{id}/.
Input Schema
{
"type": "object",
"properties": {
"user_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The customer id."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence