IdoSell MCP by usefulapi
Search orders, products, stock, customers and returns; set order status in IdoSell.
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": {
"idosell": {
"url": "https://idosell.usefulapi.io/mcp"
}
}
}Remote endpoints
https://idosell.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢idosell_get_shop_config
Get the panel configuration: owner company data, languages, base currency, warehouses (stocks) and shops with their ids. Good first call to learn shop ids and warehouse ids. API: GET /system/config.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_search_orders(statuses, date_type, date_from, date_to, orders_ids, ...)
Search orders by status, date range, customer, order ids or serial numbers. Returns order details with products, payments, dispatch data and the customer. Read-only (a POST search). API: POST /orders/orders/search.
Input Schema
{
"type": "object",
"properties": {
"statuses": {
"description": "Only orders in these statuses.",
"type": "array",
"items": {
"type": "string",
"enum": [
"new",
"finished",
"false",
"lost",
"on_order",
"packed",
"ready",
"canceled",
"payment_waiting",
"delivery_waiting",
"suspended",
"joined",
"finished_ext"
]
}
},
"date_type": {
"description": "Which date the range applies to (default add = order placed).",
"type": "string",
"enum": [
"add",
"modified",
"dispatch",
"payment",
"last_payments_operation",
"declared_payments"
]
},
"date_from": {
"description": "Range start, YYYY-MM-DD or YYYY-MM-DD HH:MM:SS.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$"
},
"date_to": {
"description": "Range end, YYYY-MM-DD or YYYY-MM-DD HH:MM:SS.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$"
},
"orders_ids": {
"description": "Order ids.",
"type": "array",
"items": {
"type": "string"
}
},
"serial_numbers": {
"description": "Order serial numbers (max 100).",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"customer_email": {
"description": "Customer e-mail address.",
"type": "string"
},
"customer_login": {
"description": "Customer login.",
"type": "string"
},
"page": {
"description": "Page number, counting from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Results per page, 1 to 100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_get_orders(orders_ids, serial_numbers)
Get orders by order ids or serial numbers (give at least one). Use idosell_search_orders for filters. API: GET /orders/orders.
Input Schema
{
"type": "object",
"properties": {
"orders_ids": {
"description": "Order ids.",
"type": "array",
"items": {
"type": "string"
}
},
"serial_numbers": {
"description": "Order serial numbers (max 100).",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_list_order_statuses
List the order statuses configured in the panel, with their ids and names. API: GET /orders/statuses.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_get_order_packages(order_serial_numbers)
Get the parcels (shipments) of orders: courier, tracking numbers and status. API: GET /orders/packages.
Input Schema
{
"type": "object",
"properties": {
"order_serial_numbers": {
"minItems": 1,
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"description": "Order serial numbers."
}
},
"required": [
"order_serial_numbers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_search_products(text, code_part, available, visible, in_promotion, ...)
Search products by text, code, availability, visibility or promotion. Returns prices, stock summary, images and categories. Read-only (a POST search). API: POST /products/products/search.
Input Schema
{
"type": "object",
"properties": {
"text": {
"description": "Text found in the name or description.",
"type": "string"
},
"code_part": {
"description": "Product code, or a part of it (producer, external or panel code).",
"type": "string"
},
"available": {
"description": "true = only available products, false = only unavailable.",
"type": "boolean"
},
"visible": {
"description": "true = only products visible in the shop.",
"type": "boolean"
},
"in_promotion": {
"description": "true = only products in promotion.",
"type": "boolean"
},
"product_ids": {
"description": "Product ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"page": {
"description": "Page number, counting from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Results per page, 1 to 100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_get_product_stocks(ident_type, products)
Get stock quantities per warehouse and size for products. API: GET /products/stocks.
Input Schema
{
"type": "object",
"properties": {
"ident_type": {
"type": "string",
"enum": [
"id",
"index",
"codeExtern",
"codeProducer"
],
"description": "What the values in products are: panel id, index, external code or producer code."
},
"products": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "Product identifiers of the given type."
}
},
"required": [
"ident_type",
"products"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_list_categories(ids, page, limit)
List the product categories of the shop with ids and names. API: GET /products/categories.
Input Schema
{
"type": "object",
"properties": {
"ids": {
"description": "Only these category ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"page": {
"description": "Page number, counting from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Results per page, 1 to 100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_list_brands(page, limit)
List the brands (producers) of the shop with ids and names. API: GET /products/brands.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, counting from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Results per page, 1 to 100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_search_customers(text, customer_ids, active, page, limit)
Find customer accounts by text (name, e-mail, login), ids or active state. Returns contact data, addresses, balances and consents. API: GET /clients/clients.
Input Schema
{
"type": "object",
"properties": {
"text": {
"description": "Text searched in customer data.",
"type": "string"
},
"customer_ids": {
"description": "Customer numbers.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"active": {
"description": "true = only active accounts, false = only inactive.",
"type": "boolean"
},
"page": {
"description": "Page number, counting from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Results per page, 1 to 100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_list_returns(order_serial_number, return_ids, status, page, limit)
List returns issued for orders, filterable by order serial number, return id or status id. API: GET /returns/returns.
Input Schema
{
"type": "object",
"properties": {
"order_serial_number": {
"description": "Order serial number.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"return_ids": {
"description": "Return ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"status": {
"description": "Return status id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, counting from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Results per page, 1 to 100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢idosell_list_couriers(country_code, page, limit)
List the couriers available for a country, and whether each one handles pickup points. API: GET /couriers/couriers.
Input Schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Country code, ISO 3166-1 alpha-2."
},
"page": {
"description": "Page number, counting from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Results per page, 1 to 100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"country_code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴idosell_set_order_status(order_serial_number, status)
WRITE: change the status of one order (for example to packed, ready or canceled). Setting the same status again has no further effect. The panel may send customer e-mails for some status changes. API: PUT /orders/orders.
Input Schema
{
"type": "object",
"properties": {
"order_serial_number": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Order serial number (from idosell_search_orders)."
},
"status": {
"type": "string",
"enum": [
"new",
"finished",
"false",
"lost",
"on_order",
"packed",
"ready",
"canceled",
"payment_waiting",
"delivery_waiting",
"suspended",
"joined",
"finished_ext"
],
"description": "The new order status."
}
},
"required": [
"order_serial_number",
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence