retailcrm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP server bind address (default 127.0.0.1) | |
| PORT | No | HTTP server port (default 3000) | |
| RETAILCRM_URL | No | Fallback for RETAILCRM_DOMAIN (e.g. https://yourstore.retailcrm.ru) | |
| RETAILCRM_DOMAIN | No | Your RetailCRM domain (e.g. yourstore.retailcrm.ru) | |
| RETAILCRM_API_KEY | Yes | API key (sent via the X-API-KEY header) | |
| RETAILCRM_READONLY | No | Set to '1' to expose only read tools | |
| RETAILCRM_RATE_LIMIT | No | Client-side requests/second cap (default ~10/s) | |
| RETAILCRM_DNS_PROTECTION | No | Set to 'off' to disable DNS-rebinding protection (HTTP mode) | |
| RETAILCRM_HTTP_ALLOWED_HOSTS | No | Comma-separated allowed Host values for DNS-rebinding protection |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_ordersA | List orders with filters by status, customer name, number, and created-date range. Returns (summary): pagination + array of {id, number, status, total, customer, phone, itemCount, createdAt}. Use detail:'full' for line items/delivery/payments, raw:true for the untouched payload. |
| get_orderA | Get a single order by RetailCRM id or externalId. Returns a shaped order; detail:'full' adds items, delivery, payments, comments. |
| create_orderA | Create an order with line items and delivery. Link an existing customer via customer_id/customer_external_id, or pass first_name (+phone/email) to create one inline. Returns {success, id, order?}. |
| update_orderA | Update an order (status, customer, delivery, comments). Only the fields you pass are sent. Returns {success}. |
| orders_historyA | Order change history incl. status transitions; supports incremental sync via filter_since_id and a date window. Returns {history[], pagination}. |
| list_customersA | List/search customers by name, email, phone, created-date. Returns (summary): pagination + array of {id, name, email, phone, ordersCount, totalSpent}. detail:'full' adds address/externalId/all phones. |
| get_customerA | Get a single customer by id or externalId. Returns a shaped customer; detail:'full' adds address and contact details. |
| create_customerB | Create a customer with name, contacts, address, optional externalId. Returns {success, id}. |
| update_customerA | Edit an existing customer (name, email, phones, address) by id or externalId. Only the fields you pass are sent. Returns {success}. |
| merge_customersA | Merge duplicate customers into a target; merged records are DELETED. Returns {success}. |
| customers_historyA | Customer field-change log for growth/churn signals and incremental sync. Returns {history[], pagination}. |
| list_productsA | List catalog products with filters by name, active, group, price range. Returns pagination + array of {id, name, article, active, url, groups, offers}. |
| list_product_groupsA | List product groups (category tree). Returns {productGroup[], pagination}. |
| store_inventoriesA | Stock levels (and cost prices) per offer/warehouse. Use details:true for the per-store breakdown. Returns {offers[], pagination}. |
| order_payment_createA | Record a payment against an order (amount, type, status, paid_at). Returns {success, id}. |
| order_payment_editB | Edit an existing order payment (amount/status/paid_at). Returns {success}. |
| order_payment_deleteB | Delete an order payment by id. Returns {success}. |
| customer_notes_listA | List free-text notes attached to customers. Returns {notes[], pagination}. |
| customer_notes_createA | Add a note to a customer (by id or externalId). Returns {success, id}. |
| customer_notes_deleteB | Delete a customer note by id. Returns {success}. |
| tasks_listA | List follow-up tasks/reminders, filterable by status/performer/customer. Returns {tasks[], pagination}. |
| tasks_createA | Create a task (text, due datetime, performer, linked order/customer). Returns {success, id}. |
| tasks_editA | Edit a task or mark it complete. Returns {success}. |
| list_segmentsA | List customer segments (RFM/marketing cohorts). Returns {segments[], pagination}. |
| list_costsA | List expense records (for margin/profit analytics) by date and cost group. Returns {costs[], pagination}. |
| create_costA | Create an expense record, optionally attributed to an order. Returns {success, id}. |
| files_listA | List files attached to orders/customers. Returns {files[], pagination}. |
| files_getA | Get a file's metadata by id. Returns {file}. |
| files_uploadA | Upload a file (UTF-8 text or base64 binary). Returns {success, file}. |
| list_statusesA | All order statuses (codes, names, groups, ordering). Call before filtering/updating orders by status. |
| list_delivery_typesA | All delivery types with codes, names, default costs. |
| list_payment_typesA | All payment types with codes and names. |
| list_storesA | All warehouses/stores (codes, names, types). |
| list_sitesA | All sites/stores the API key can act on — use the returned code as the |
| list_countriesA | Valid country ISO codes for addresses/delivery. |
| list_order_typesA | All order types (codes/names) — valid values for create_order's order_type. |
| list_order_methodsC | All order methods (acquisition channels). |
| get_orders_summaryA | Period-scoped order summary: exact totalCount for the date range plus revenue, average order value, and status distribution aggregated over up to max_pages×100 orders (partial:true if the window exceeds that). |
| get_customers_summaryA | Period-scoped new-customer count for a date range. Returns {period, newCustomers}. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| new-orders | Show all orders created today — quick daily overview. |
| customer-search | Find a customer by name, email, or phone. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/theYahia/retailcrm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server