CCV Shop MCP by usefulapi

Read products, orders, customers and invoices; add internal order notes in CCV Shop.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
87%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,245Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (1.75% 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": {
    "ccv-shop": {
      "url": "https://ccv-shop.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://ccv-shop.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (13)

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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools