A1 Yandex KIT MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YANDEX_KIT_TOKEN | Yes | Your Yandex KIT API token, used to authenticate with the Yandex KIT API |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_operationsA | Search the full catalog of all 162 Yandex KIT API operations by keyword. Matches operationId, URL path, tag and Russian summary/description (the API docs are in Russian, so Russian keywords like "категории" work too). Any operation found here can be executed with kit_request; use get_operation_schema to inspect its parameters and body shape first. |
| get_operation_schemaA | Get full metadata for one KIT API operation by operationId: HTTP method, path, path/query parameters, request content type, pagination info, and the fully dereferenced JSON schemas of the request body and response. Call this before kit_request or any create/update tool to learn the exact body shape. |
| kit_requestA | Escape hatch that executes ANY of the 162 Yandex KIT API operations by operationId, including operations without a dedicated tool. WARNING: this performs REAL calls against the live store — write operations (create/update/delete/archive) take effect immediately and there is no sandbox. Workflow: search_operations -> get_operation_schema -> kit_request. The request body is validated against the OpenAPI schema before sending (set validate=false to skip). |
| get_storeA | Get information about the current store (id, slug, b2c_url). Operation: GetStore. |
| get_current_userA | Get the user that owns the API token. Operation: GetCurrentUser. |
| get_regionsA | Get the list of geographic regions (countries, regions, cities). Each region has an id, a name and a parent region id, forming a hierarchy. Operation: GetRegions. |
| list_productsA | List products of the store (paginated). A product groups one or more variants (SKUs) and links them to categories. |
| get_productA | Get a single product by its ID, including its category bindings. |
| create_productA | Create a new product. Requires category_ids (array of category UUIDs, at least one). Call get_operation_schema("CreateProduct") for the exact request shape. |
| update_productA | Update an existing product (plain JSON PATCH, not merge-patch). Passing category_ids fully replaces the product's category list. Call get_operation_schema("UpdateProduct") for the exact request shape. |
| list_variantsA | List variants (sellable items / SKUs) of the store, with optional filters (paginated). By default the API returns variants of all statuses except ARCHIVED. Known KIT API defect: ARCHIVED is silently stripped from the status filter, so archived variants cannot be listed (only read by ID via get_variant); the tool detects this and fails with STATUS_FILTER_IGNORED, ARCHIVE_READ_UNSUPPORTED or MIXED_ARCHIVED_FILTER_UNSUPPORTED (for filters mixing ARCHIVED with other statuses) instead of returning the wrong catalog slice. |
| get_variantA | Get a single variant by its ID (name, SKU, pricing, stocks, media, status). |
| create_variantA | Create a new variant (sellable item) under an existing product. Required: name and product_id. |
| update_variantA | Update an existing variant via JSON Merge Patch: send only the fields to change (e.g. pricing or stocks). No field of UpdateVariantRequest is nullable, so null values are rejected by validation before any call — to clear a price, use bulk_update_prices (its price/manual_discount_price accept null). |
| bulk_update_pricesA | Update prices of up to 5000 variants in one synchronous, atomic request — the fast path for syncing a whole catalog instead of calling update_variant per item. If a single item is invalid (variant unknown or archived, variant listed twice, price malformed, discount price above the base price) the whole request is rejected with 400 and NOTHING is applied; the response |
| variant_actionA | Archive a variant (soft delete: status becomes ARCHIVED, item is hidden from the storefront but restorable) or unarchive it (status becomes HIDDEN; publish it afterwards via update_variant). |
| list_categoriesA | List product categories of the store (paginated). The API requires a status filter; defaults to ACTIVE when not provided. |
| get_categoryA | Get a single product category by its ID. |
| create_categoryA | Create a new product category. Required: title. Optional: slug, parent_id, display_sequence, is_hidden_in_menu, file_id, seo_title, seo_description. Call get_operation_schema("CreateCategory") for the exact request shape. |
| update_categoryA | Update an existing category via JSON Merge Patch: send only the fields to change. Only parent_id and file_id accept null (parent_id: null makes the category top-level, file_id: null removes the image); null on any other field is rejected by validation. Call get_operation_schema("UpdateCategory") for the exact request shape. |
| category_actionA | Archive a category (soft delete: hidden from the storefront, restorable) or unarchive it. If the category is the only one of a product with non-archived variants, archiving requires archive_variants=true. |
| list_ordersA | List orders of the store (paginated), newest first. |
| get_orderA | Get a single order by its ID, including line items, delivery chunks, payment and status. |
| confirm_orderA | Confirm an order. The order must be in the WAIT_FOR_CONFIRMATION status. No request body is required. |
| cancel_orderA | Cancel an order. Whether cancellation is possible depends on the order's current status. The optional owner reason is retained only in the MCP conversation/tool log; the KIT CancelOrder endpoint has no reason field, so it is not sent to or stored by the KIT API. No request body is required. |
| complete_order_deliveryA | Mark the delivery of an order as fully completed. Intended for pickup and the store's own delivery when delivery automation is off — with automation on, the platform moves the order itself. No request body is required. |
| set_order_marking_codesA | Write «Честный знак» (Chestny ZNAK) marking codes onto order items, or remove them. Each order item is a single unit and takes exactly one code; item IDs come from get_order under delivery_chunks[].items[].id. Pass the code in full, including the crypto tail; pass marking_code null to remove a previously written code. Atomic: if any code fails the server-side check the whole request is rejected and nothing is written. |
| get_order_addonsA | List additional services (addons) attached to an order by the order ID. |
| list_customersA | List customers of the store (paginated). |
| get_customerA | Get a single customer by their ID. |
| update_customerA | Update a customer (plain JSON PATCH). Updatable fields: note, first_name, last_name, email. Call get_operation_schema("UpdateCustomer") for the exact request shape. |
| get_customer_ordersA | List order IDs of a customer by their customer ID (paginated). |
| list_gift_cardsA | List gift cards of the store (paginated), with optional status and purchase-date filters. |
| get_gift_cardA | Get a single gift card by its ID, including status, balance and purchase info. |
| list_discountsA | List discounts of the store filtered by status (paginated). The status filter is required by the API. |
| get_discountA | Get a single discount by its ID (title, value, dates, status, binding mode). |
| create_discountA | Create a new discount. Required: title, discount_value ({value, type: PERCENT|VALUE}), discount_dates ({start_date, optional end_date}), status (ACTIVE|INACTIVE) and binding_mode (ALL_VARIANTS|SELECTED_VARIANTS). Call get_operation_schema("CreateDiscount") for the exact request shape. |
| update_discountA | Update an existing discount (plain application/json PATCH): send only the fields to change (title, discount_value, discount_dates, status, binding_mode). Call get_operation_schema("UpdateDiscount") for the exact request shape. |
| discount_actionA | Archive a discount (soft delete: status becomes ARCHIVED, the discount stops applying but stays restorable) or unarchive it (returns it to a non-archived status). |
| manage_discount_objectsA | Attach objects to a discount or detach them. Supported object types: product_variant_ids (variant UUIDs), category_ids (category UUIDs), collection_ids (collection UUIDs). Per request pass EITHER product_variant_ids OR categories/collections — the API does not mix variants with categories/collections. |
| list_promocodesA | List promocodes of the store filtered by status (paginated). The status filter is required by the API. |
| get_promocodeA | Get a single promocode by its ID (code, title, discount value, dates, type, usage limits). |
| create_promocodeA | Create a new promocode. Required: code, title, discount_value ({value, type: PERCENT|VALUE}), promocode_dates ({start_date, optional end_date}) and type (ORDER|PRODUCTS). Optional: binding_mode, minimum_order_amount, max_usage, max_discount_amount, one_time_use, first_order_only, show_in_pdp. The live API rejects codes containing lowercase letters even though the spec documents no format constraint — use uppercase Latin letters and digits (e.g. WELCOME5). Call get_operation_schema("CreatePromocode") for the exact request shape. |
| update_promocodeA | Update an existing promocode (plain application/json PATCH): send only the fields to change (code, title, discount_value, promocode_dates, status, binding_mode, limits). Call get_operation_schema("UpdatePromocode") for the exact request shape. |
| manage_promocode_objectsA | Attach objects to a promocode or detach them. Supported object types: product_variant_ids (variant UUIDs), category_ids (category UUIDs), collection_ids (collection UUIDs). Per request pass EITHER product_variant_ids OR categories/collections — the API does not mix variants with categories/collections. |
| list_webhooksA | List all webhooks of the store (not paginated). Each webhook has a URL, a list of subscribed event types and a status. |
| get_webhookA | Get a single webhook by its ID (URL, subscribed events, status). |
| create_webhookA | Create a new webhook. The url must use HTTPS (HTTP is rejected). Allowed events: ORDER_STATUS_CHANGED, ORDER_PAYMENT_STATUS_CHANGED, ORDER_DELIVERY_STATUS_CHANGED. NOTE: ORDER_STATUS_CHANGED will stop firing for the receipt-technical statuses CREATING_INITIAL_RECEIPT and CREATING_FINAL_RECEIPTS — key new integrations on ORDER_PLACED and COMPLETED instead (the statuses themselves stay readable via get_order). IMPORTANT: the response contains the signing secret — it is shown ONLY ONCE, store it securely. Call get_operation_schema("CreateWebhook") for the exact request shape. |
| update_webhookA | Update an existing webhook: change url (HTTPS only), the subscribed events, or set deactivate=true to switch the webhook to INACTIVE. Call get_operation_schema("UpdateWebhook") for the exact request shape. |
| delete_webhookA | Permanently delete a webhook by its ID. This cannot be undone. |
| validate_webhookA | Trigger webhook validation: the API sends a POST with event WEBHOOK_VALIDATE to the webhook URL. With activate=true, the webhook becomes ACTIVE if the server replies HTTP 2xx with body {"message": "validated_store_{store_id}"} (store_id: see get_store). |
| list_warehousesA | List warehouses of the store (paginated). The API requires a status filter; defaults to ACTIVE when not provided. |
| get_warehouseA | Get a single warehouse by its ID (title, slug, status). |
| create_warehouseA | Create a new warehouse. Required: title. The URL slug is generated automatically from the title and cannot be changed later. Call get_operation_schema("CreateWarehouse") for the exact request shape. |
| update_warehouseA | Update an existing warehouse via JSON Merge Patch: send only the fields to change; setting a field to null removes it. The slug cannot be changed after creation. Call get_operation_schema("UpdateWarehouse") for the exact request shape. |
| warehouse_actionA | Archive a warehouse (soft delete: status becomes ARCHIVED, warehouse can no longer be used for stock) or unarchive it (status becomes ACTIVE again). |
| list_collectionsA | List collections of the store (paginated). A collection is a curated set of product cards: STATIC (filled manually via manage_collection_cards) or DYNAMIC (filled by filters). |
| get_collectionA | Get a single collection by its ID (title, slug, status, type, SEO fields). |
| create_collectionA | Create a new collection. Required: title, status (ACTIVE|INACTIVE) and collection_type (STATIC|DYNAMIC; DYNAMIC also takes a dynamic_filter). Call get_operation_schema("CreateCollection") for the exact request shape. |
| update_collectionA | Update an existing collection (plain JSON PATCH; only the provided fields are changed). The collection type itself cannot be changed. Call get_operation_schema("UpdateCollection") for the exact request shape. |
| delete_collectionA | Permanently delete a collection by its ID. This cannot be undone. |
| manage_collection_cardsA | Add product cards to a STATIC collection or remove them from it. Requires product_card_ids (array of product card UUIDs). |
| upload_fileA | Upload a file (e.g. an image for a variant or collection) via multipart/form-data. Files are deduplicated by content: uploading identical bytes returns the existing file. Max size 100 MB. Provide exactly one source: file_path or content_base64. |
| get_fileA | Get metadata of a previously uploaded file by its ID (name, size, URL). |
| list_characteristicsA | List product characteristics (paginated). |
| get_characteristicA | Get one product characteristic by ID. |
| create_characteristicA | Create a product characteristic. Call get_operation_schema("CreateCharacteristic") for the exact request shape. |
| update_characteristicB | Update a product characteristic. Call get_operation_schema("UpdateCharacteristic") for the exact request shape. |
| list_characteristic_groupsA | List product characteristic groups (paginated). |
| get_characteristic_groupA | Get one product characteristic group by ID. |
| create_characteristic_groupB | Create a product characteristic group. Call get_operation_schema("CreateCharacteristicGroup") for the exact request shape. |
| update_characteristic_groupB | Update a product characteristic group. Call get_operation_schema("UpdateCharacteristicGroup") for the exact request shape. |
| list_characteristic_colorsA | List the color values of the store's characteristics with their hex codes (paginated). Colors are keyed by the characteristic value itself (e.g. «Красный»), not by an ID. |
| update_characteristic_colorA | Set the hex code of a color characteristic value. The value must already exist among the store's characteristic values (see list_characteristic_colors) — this endpoint recolors an existing value, it does not create one. Both fields are required. |
| list_videosA | List product videos of the store (paginated), oldest upload first. The API requires a status filter; defaults to all four statuses when not provided. |
| get_videoA | Get a single video by its ID with the current processing status. Use it to poll after upload_video: the status walks UPLOADED -> PROCESSING -> READY (the |
| upload_videoA | Upload a product video via multipart/form-data and queue it for processing. Max size 100 MB; formats mp4, mov, webm, avi, flv. Videos are deduplicated by content: uploading identical bytes returns the existing video. The response carries the video ID — poll it with get_video until the status is READY, then attach the video to a variant through |
| upload_video_from_urlA | Upload a product video by public link and queue it for processing — use it instead of upload_video when the file lives on the web rather than on this machine. Accepts a public Yandex.Disk link to a video file, a direct link to a video file, or a link to the Yandex KIT player (which returns the already uploaded video). The link must be reachable without authentication, otherwise the API answers 400. Same limits as upload_video: max 100 MB, formats mp4, mov, webm, avi, flv, deduplicated by content. The response carries the video ID — poll it with get_video until the status is READY, then attach the video to a variant through |
| list_alertsA | List system alerts of the store (paginated), CRITICAL ones first and newest first within the same severity. The API requires a status filter; defaults to ACTIVE when not provided. |
| resolve_alertA | Mark an alert as resolved. Only WARNING alerts can be closed by hand: an active CRITICAL alert is rejected with 400 and clears itself once the underlying problem is fixed. No request body is required. |
| list_blogsA | List store news articles (paginated). |
| get_blogB | Get one store news article by ID. |
| create_blogA | Create a store news article. Call get_operation_schema("CreateBlog") for the exact request shape. |
| update_blogB | Update a store news article. Call get_operation_schema("UpdateBlog") for the exact request shape. |
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/ztemerbekov/a1-yandex-kit-skills'
If you have feedback or need assistance with the MCP directory API, please join our Discord server