marketplaces-mcp-ru
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WB_API_KEY | No | API ключ для Wildberries Seller API (берётся из настроек доступа к API в кабинете WB) | |
| OZON_API_KEY | No | API ключ для Ozon Seller API (берётся из настроек API-ключей в кабинете Ozon) | |
| OZON_CLIENT_ID | No | Client ID для Ozon Seller API (берётся из настроек API-ключей в кабинете Ozon) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wb_check_auth | Check whether the required credentials are present in the environment. Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}. |
| wb_list_sections | List API sections and how many catalog endpoints each contains. |
| wb_get_section | List all endpoints in one section. Args: section: section name (see {svc}_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}. |
| wb_search_methods | Search the endpoint catalog by keyword (works in Russian and English). Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first). |
| wb_map | The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast. |
| wb_describe_method | Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL. |
| wb_call_method | Execute one catalog endpoint by operation_id. Read endpoints run immediately. WRITE endpoints require confirm_write=true. DESTRUCTIVE endpoints require confirm_write=true AND i_understand_this_modifies_data=true (nothing is sent otherwise). Args: operation_id: id from the catalog (see {svc}_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: required for write/destructive operations. i_understand_this_modifies_data: required for destructive operations. Returns JSON: {"ok": true, "status", "data"} or the error envelope. |
| wb_call_raw | Execute ANY endpoint, even ones not in the catalog (full API coverage). Safety is inferred from the HTTP verb: GET=read, POST/PUT/PATCH=write, DELETE=destructive. Same confirmation rules as {svc}_call_method. Args: method: HTTP verb (GET/POST/PUT/PATCH/DELETE). path: full path beginning with '/', e.g. "/api/v1/supplier/sales". host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write / i_understand_this_modifies_data: confirmations. Returns JSON: {"ok": true, "status", "data"} or the error envelope. |
| wb_fetch_all | Auto-paginate a read endpoint and return every row in one response. Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically. Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}. |
| wb_list_cabinets | List configured cabinets for this marketplace and which one is active. Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned. |
| wb_add_cabinet | Add or update a cabinet (a named set of API credentials), from chat. ⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat. Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed. |
| wb_set_key | Change / rotate the API key from chat (e.g. the old one expired or leaked). ⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed. Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back. |
| wb_use_cabinet | Switch the active cabinet. Subsequent API calls use its credentials. Args: name: the cabinet to activate (see {svc}_list_cabinets). |
| wb_remove_cabinet | Delete a stored cabinet. If it was active, another becomes active. Args: name: the cabinet to remove. |
| wb_list_workflows | List ready-made analytical workflows (recipes) for this marketplace. Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one. |
| wb_get_workflow | Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid. Args: name: workflow name (see {svc}_list_workflows). |
| wb_get_sales | Get Wildberries sales and returns since a date (Statistics API, 1 req/min). Args: date_from: RFC3339 date/time in MSK, e.g. "2026-06-01" or "2026-06-01T00:00:00". flag: 0 = rows changed since date_from (incremental); 1 = rows dated on date_from. Returns JSON: {"ok": true, "status", "data": [ sale rows ]} or error envelope. Each row includes saleID, srid, nmId, totalPrice, forPay, lastChangeDate. |
| wb_get_stocks | Get the current Wildberries stock snapshot (Statistics API, 1 req/min). Stocks have no history — this is a point-in-time snapshot. Use an early date_from to get the full current set. Args: date_from: RFC3339 date; default "2020-01-01" returns everything in stock now. Returns JSON: {"ok": true, "data": [ stock rows ]} with quantity, warehouseName, nmId. |
| wb_get_new_ordersA | Get new FBS assembly orders awaiting processing (Marketplace API). Returns JSON: {"ok": true, "data": {"orders": [...]}} — each order has id, rid, article, skus, createdAt, warehouseId. |
| wb_get_prices | Get current prices and discounts for products (Discounts-Prices API). Args: limit: page size (<=1000). offset: pagination offset. filter_nm_id: optional single nmID to filter by. Returns JSON: {"ok": true, "data": {"listGoods": [{nmID, sizes, discount, ...}]}}. |
| wb_set_price | Set price and discount for ONE product (Discounts-Prices API). WRITE. Requires confirm_write=true (this changes your live price). A new price 3x below the old one lands the product in WB price quarantine. Args: nm_id: product nmID. price: new base price in rubles (integer). discount: discount percent (0-99). confirm_write: must be true to actually send the change. Returns JSON: {"ok": true, "data": {"id": uploadID}} — poll wb_prices_history_tasks. |
| ozon_check_auth | Check whether the required credentials are present in the environment. Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}. |
| ozon_list_sections | List API sections and how many catalog endpoints each contains. |
| ozon_get_section | List all endpoints in one section. Args: section: section name (see {svc}_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}. |
| ozon_search_methodsA | Search the endpoint catalog by keyword (works in Russian and English). Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first). |
| ozon_map | The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast. |
| ozon_describe_method | Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL. |
| ozon_call_method | Execute one catalog endpoint by operation_id. Read endpoints run immediately. WRITE endpoints require confirm_write=true. DESTRUCTIVE endpoints require confirm_write=true AND i_understand_this_modifies_data=true (nothing is sent otherwise). Args: operation_id: id from the catalog (see {svc}_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: required for write/destructive operations. i_understand_this_modifies_data: required for destructive operations. Returns JSON: {"ok": true, "status", "data"} or the error envelope. |
| ozon_call_raw | Execute ANY endpoint, even ones not in the catalog (full API coverage). Safety is inferred from the HTTP verb: GET=read, POST/PUT/PATCH=write, DELETE=destructive. Same confirmation rules as {svc}_call_method. Args: method: HTTP verb (GET/POST/PUT/PATCH/DELETE). path: full path beginning with '/', e.g. "/api/v1/supplier/sales". host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write / i_understand_this_modifies_data: confirmations. Returns JSON: {"ok": true, "status", "data"} or the error envelope. |
| ozon_fetch_all | Auto-paginate a read endpoint and return every row in one response. Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically. Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}. |
| ozon_list_cabinets | List configured cabinets for this marketplace and which one is active. Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned. |
| ozon_add_cabinet | Add or update a cabinet (a named set of API credentials), from chat. ⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat. Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed. |
| ozon_set_key | Change / rotate the API key from chat (e.g. the old one expired or leaked). ⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed. Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back. |
| ozon_use_cabinet | Switch the active cabinet. Subsequent API calls use its credentials. Args: name: the cabinet to activate (see {svc}_list_cabinets). |
| ozon_remove_cabinet | Delete a stored cabinet. If it was active, another becomes active. Args: name: the cabinet to remove. |
| ozon_list_workflows | List ready-made analytical workflows (recipes) for this marketplace. Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one. |
| ozon_get_workflow | Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid. Args: name: workflow name (see {svc}_list_workflows). |
| ozon_get_productsA | List Ozon products (one page). Args: visibility: ALL | VISIBLE | INVISIBLE | ARCHIVED | IN_SALE ... limit: page size (<=1000). last_id: cursor from a previous page (empty for first page). Returns JSON: {"ok": true, "data": {"result": {"items": [...], "last_id": "..."}}}. For every product across pages use ozon_fetch_all with ozon_product_list. |
| ozon_get_stocks | Get available + reserved stock per product (v4/product/info/stocks). Args: visibility: product visibility filter (default ALL). limit: page size (<=1000). last_id: cursor for pagination. Returns JSON with stock per product (present, reserved) per warehouse type. |
| ozon_get_prices | Get prices, commissions and price indexes per product (v5/product/info/prices). Args: visibility: product visibility filter (default ALL). limit: page size (<=1000). cursor: pagination cursor from a previous response. Returns JSON with price, marketing_seller_price, min_price, commissions, price_indexes. |
| ozon_get_fbs_unfulfilled | List new/unprocessed FBS shipments awaiting assembly. Args: cutoff_from: ISO datetime lower bound, e.g. "2026-06-01T00:00:00Z". cutoff_to: ISO datetime upper bound. limit: page size. offset: pagination offset. Returns JSON: {"ok": true, "data": {"result": {"postings": [...]}}}. |
| ozon_set_price | Set the price for ONE product by offer_id (v1/product/import/prices). WRITE. Requires confirm_write=true. Ozon limits price updates to ~10/product/hour. Prices are strings. old_price="0" clears the strikethrough old price. Args: offer_id: seller's article (offer_id). price: new price as a string, e.g. "1499". old_price: pre-discount price as string, or "0" to clear. min_price: minimum price as string, or "0". currency_code: default "RUB". confirm_write: must be true to send. Returns JSON: {"ok": true, "data": {"result": [{"offer_id", "updated", "errors"}]}}. |
| ozon_perf_check_auth | Check whether the required credentials are present in the environment. Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}. |
| ozon_perf_list_sections | List API sections and how many catalog endpoints each contains. |
| ozon_perf_get_section | List all endpoints in one section. Args: section: section name (see {svc}_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}. |
| ozon_perf_search_methods | Search the endpoint catalog by keyword (works in Russian and English). Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first). |
| ozon_perf_map | The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast. |
| ozon_perf_describe_method | Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL. |
| ozon_perf_call_method | Execute one catalog endpoint by operation_id. Read endpoints run immediately. WRITE endpoints require confirm_write=true. DESTRUCTIVE endpoints require confirm_write=true AND i_understand_this_modifies_data=true (nothing is sent otherwise). Args: operation_id: id from the catalog (see {svc}_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: required for write/destructive operations. i_understand_this_modifies_data: required for destructive operations. Returns JSON: {"ok": true, "status", "data"} or the error envelope. |
| ozon_perf_call_raw | Execute ANY endpoint, even ones not in the catalog (full API coverage). Safety is inferred from the HTTP verb: GET=read, POST/PUT/PATCH=write, DELETE=destructive. Same confirmation rules as {svc}_call_method. Args: method: HTTP verb (GET/POST/PUT/PATCH/DELETE). path: full path beginning with '/', e.g. "/api/v1/supplier/sales". host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write / i_understand_this_modifies_data: confirmations. Returns JSON: {"ok": true, "status", "data"} or the error envelope. |
| ozon_perf_fetch_all | Auto-paginate a read endpoint and return every row in one response. Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically. Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}. |
| ozon_perf_list_cabinets | List configured cabinets for this marketplace and which one is active. Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned. |
| ozon_perf_add_cabinet | Add or update a cabinet (a named set of API credentials), from chat. ⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat. Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed. |
| ozon_perf_set_key | Change / rotate the API key from chat (e.g. the old one expired or leaked). ⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed. Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back. |
| ozon_perf_use_cabinet | Switch the active cabinet. Subsequent API calls use its credentials. Args: name: the cabinet to activate (see {svc}_list_cabinets). |
| ozon_perf_remove_cabinet | Delete a stored cabinet. If it was active, another becomes active. Args: name: the cabinet to remove. |
| ozon_perf_list_workflows | List ready-made analytical workflows (recipes) for this marketplace. Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one. |
| ozon_perf_get_workflow | Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid. Args: name: workflow name (see {svc}_list_workflows). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
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/ilyautov/marketplaces-mcp-ru'
If you have feedback or need assistance with the MCP directory API, please join our Discord server