Skip to main content
Glama
theYahia

kaspi-merchant-mcp

by theYahia

kaspi-merchant-mcp

Первый MCP-сервер для Kaspi Marketplace в мире. 721 000 продавцов в Казахстане теперь могут управлять заказами через AI-ассистентов.

Kaspi.kz — крупнейший маркетплейс Казахстана. API работает по спецификации JSON:API (Content-Type: application/vnd.api+json).


WARNING

Sandbox отсутствует — все операции выполняются на реальных данных продакшна.

Операции accept_order, complete_order, cancel_order необратимы!


Инструменты (8 штук)

Инструмент

Метод

Описание

get_orders

GET

Список заказов с фильтрацией по статусу и дате

get_order

GET

Один заказ по ID

get_order_items

GET

Позиции заказа (товары, кол-во, цена)

accept_order

PATCH

Принять заказ (ACCEPTED_BY_MERCHANT)

complete_order

PATCH

Завершить заказ (COMPLETED)

cancel_order

PATCH

Отменить заказ (CANCELLED)

get_cities

GET

Список городов Kaspi

get_products

GET

Товарные предложения продавца

Related MCP server: Yandex Market Seller MCP Server

Статусы заказов

Статус

Описание

NEW

Новый заказ, ожидает обработки

SIGN_REQUIRED

Требуется подпись (для крупных покупок)

PICKUP

Готов к выдаче

DELIVERY

В доставке (курьерская)

KASPI_DELIVERY

В доставке через Kaspi Доставку

ARCHIVE

Архив (завершённые/отменённые)

Быстрый старт

1. Получите API-токен

Откройте Kaspi Seller Cabinet → Настройки → API → Скопируйте токен.

2. Настройте MCP-сервер

Claude Desktop

claude_desktop_config.json:

{
  "mcpServers": {
    "kaspi": {
      "command": "npx",
      "args": ["-y", "@theyahia/kaspi-merchant-mcp"],
      "env": {
        "KASPI_AUTH_TOKEN": "ваш-токен"
      }
    }
  }
}

Claude Code (CLI)

claude mcp add kaspi -- npx -y @theyahia/kaspi-merchant-mcp
# Установите переменную окружения:
export KASPI_AUTH_TOKEN="ваш-токен"

VS Code (Copilot)

.vscode/mcp.json:

{
  "servers": {
    "kaspi": {
      "command": "npx",
      "args": ["-y", "@theyahia/kaspi-merchant-mcp"],
      "env": {
        "KASPI_AUTH_TOKEN": "ваш-токен"
      }
    }
  }
}

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "kaspi": {
      "command": "npx",
      "args": ["-y", "@theyahia/kaspi-merchant-mcp"],
      "env": {
        "KASPI_AUTH_TOKEN": "ваш-токен"
      }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "kaspi": {
      "command": "npx",
      "args": ["-y", "@theyahia/kaspi-merchant-mcp"],
      "env": {
        "KASPI_AUTH_TOKEN": "ваш-токен"
      }
    }
  }
}

Примеры запросов

"Покажи новые заказы за сегодня"
"Прими заказ 12345678"
"Какие заказы ожидают отправки?"
"Покажи детали заказа ABC-123"
"Отмени заказ XYZ, причина: нет в наличии"
"Список городов Kaspi"

Разработка

git clone https://github.com/theYahia/kaspi-merchant-mcp.git
cd kaspi-merchant-mcp
npm install
npm run build
npm test

Ссылки

Лицензия

MIT

Available Tools

8 tools
accept_orderA

Accept a Kaspi order (set status to ACCEPTED_BY_MERCHANT). WARNING: This is IRREVERSIBLE! The order will be accepted and you must fulfill it.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesKaspi order ID to accept

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the critical behavioral trait of irreversibility and the consequence of needing to fulfill the order, which is essential for an accept action. No other behavioral aspects (e.g., authentication) are mentioned, but the description adequately covers the main risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the action, second provides a critical warning. Front-loaded and no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the action, irreversibility, and expected follow-up. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides a description for the single parameter (order_id). The tool description does not add further meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action: 'Accept a Kaspi order (set status to ACCEPTED_BY_MERCHANT)'. Distinguishes from siblings like cancel_order and complete_order by specifying the exact status change.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a strong warning about irreversibility and the obligation to fulfill, guiding appropriate use. However, does not explicitly compare to alternatives like cancel_order or provide when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_orderA

Cancel a Kaspi order. WARNING: This is IRREVERSIBLE! The order will be cancelled and the buyer will be notified.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesKaspi order ID to cancel
reasonNoCancellation reason

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The warning about irreversibility and buyer notification provides key behavioral context beyond the schema, compensating for absent annotations. However, it omits details like permission requirements or effects on already-cancelled orders.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose and critical warning, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple irreversible action with two parameters, the description covers the essential behavioral context. Could mention return value or post-cancellation state, but not strictly required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have descriptions in the schema (100% coverage), so the description adds no additional information. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Cancel a Kaspi order') and the resource, distinguishing it from sibling tools like accept_order and complete_order which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_order or accept_order, nor any prerequisites or conditions mentioned besides irreversibility.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

complete_orderA

Mark a Kaspi order as COMPLETED. WARNING: This is IRREVERSIBLE! Only use when the order has been fully delivered.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesKaspi order ID to complete

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the irreversible nature of the operation ('WARNING: This is IRREVERSIBLE!'), which is critical for an AI agent. However, it omits other potential side effects or error scenarios, leaving some behavioral aspects implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences. The key action and critical warning are front-loaded, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema), the description adequately covers purpose, usage condition, and a critical behavioral trait. It could mention what the tool returns upon success, but the absence is not a major gap for a state-changing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of the parameters, so the baseline is 3. The description does not add any additional meaning beyond what the schema already provides ('Kaspi order ID to complete').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Mark a Kaspi order as COMPLETED'), specifying the verb and resource. It distinguishes itself from sibling tools like cancel_order and accept_order by indicating a different status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the condition for use ('Only use when the order has been fully delivered') and includes a strong warning about irreversibility. This provides clear guidance on when to invoke the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_citiesA

Get the list of all Kaspi cities in Kazakhstan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description labels it as a read operation ('Get'), but lacks detail on authentication, rate limits, or any side effects. Adequate for a simple tool but not transparent beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single short sentence, no filler, and front-loaded with the action. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

States return is a list of cities, but no output schema exists to confirm format (e.g., city names, IDs). Adequate for a simple list tool, but could detail response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so baseline 4 applies. Description adds context ('all Kaspi cities in Kazakhstan') beyond the empty schema, specifying scope.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get', resource 'list of all Kaspi cities', and scope 'in Kazakhstan'. Distinct from sibling tools which deal with orders and products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives guidance. Implicitly, this tool is for retrieving city data, with no similar sibling tools competing, but no direct usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_orderA

Get a single order by ID from Kaspi Marketplace.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesKaspi order ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It indicates a read operation ('Get'), but does not mention return format, authentication needs, rate limits, or any side effects. For a simple read, this is adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and to the point, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description covers the essential purpose. However, it does not explain the return value, which would be helpful for agents to know what to expect, but not critical for a read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter described as 'Kaspi order ID'. The description adds no extra meaning beyond the schema, so score is baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Get', the resource 'single order by ID', and the system 'Kaspi Marketplace'. It clearly differentiates from sibling tools like get_orders (plural) and get_order_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that when you need exactly one order, use this tool; for multiple orders, use get_orders. It does not provide explicit when-not or alternative tool names, but the simple context makes usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_order_itemsA

Get line items (entries) for an order. Returns products, quantities, prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesKaspi order ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It states that the tool returns line items with specific fields, but does not disclose whether it is read-only, potential errors, or permissions required. For a simple get, this is borderline adequate but lacks completeness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, immediately stating the purpose and return types. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one parameter and no output schema, the description provides enough context: it explains what is returned (products, quantities, prices). Missing error handling details, but overall sufficient for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'order_id' is fully described in the schema with 'Kaspi order ID' and is required. The description does not add additional meaning or usage tips. With 100% schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('line items for an order'), and specifies the returned data (products, quantities, prices). This distinguishes it from sibling tools like 'get_order' (order header) and mutation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives (e.g., 'get_order' for header, or mutation tools). The context implies it's for retrieving items, but no when-not or comparison is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ordersA

List orders from Kaspi Marketplace. Filter by state, date range. Returns JSON:API response.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_numberNoPage number (0-based)
page_sizeNoPage size (max 100)
stateNoFilter by order state
creation_date_fromNoFilter orders created after this ISO date (e.g. 2024-01-01)
creation_date_toNoFilter orders created before this ISO date

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure burden. It mentions the response format (JSON:API) which adds value, but omits other traits like authentication, idempotency, or pagination details beyond what is in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three short sentences with no fluff, front-loading the core purpose immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides the response format but does not explain that it returns a list, pagination details, or field specifics. It is adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description's mention of filtering by state and date range summarizes parameters but does not add new meaning beyond the individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists orders from Kaspi Marketplace and supports filtering by state and date range. It effectively distinguishes itself from sibling tools like accept_order, cancel_order, and get_order by being the list operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the name and description (listing vs. single order operations), but no explicit guidance is given on when to use this tool versus alternatives like get_order or get_order_items.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_productsB

Get merchant product offers (merchantoffers) from Kaspi Marketplace.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_numberNoPage number (0-based)
page_sizeNoPage size (max 100)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden for behavioral disclosure. It does not mention whether the operation is read-only, destructive, or any side effects. Only the basic action is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no redundancy or unnecessary information. It perfectly balances brevity with clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple two-parameter tool with no output schema, the description is adequate but lacks any explanation of return values, pagination behavior, or use cases. It meets the minimum requirement but is not fully informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, meaning both parameters (page_number, page_size) are already defined in the input schema. The description adds no additional meaning or context beyond what the schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('merchant product offers'), and the source ('Kaspi Marketplace'), making it unambiguous and distinct from sibling tools like 'get_orders' or 'get_cities'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description simply states what it does without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv1.0.0
    • First observedaccept_order
    • First observedcancel_order
    • First observedcomplete_order
    • First observedget_cities
    • First observedget_order
    • First observedget_order_items
    • First observedget_orders
    • First observedget_products

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a distinct purpose: order lifecycle actions (accept, cancel, complete) and informational queries (get orders, products, cities). No overlap between tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., accept_order, get_orders), making it easy to predict functionality.

Tool Count5/5

With 8 tools, the set covers essential merchant operations without being overly large or sparse. It's well-scoped for Kaspi marketplace management.

Completeness4/5

Covers core order lifecycle (accept, cancel, complete) and retrieval, plus cities and products. Minor gap: no tool for updating products or marking orders as shipped, but it's acceptable.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables management of Shopify orders through the Admin REST API, allowing users to create new orders and retrieve order status details. It supports both local and remote access via SSE and STDIO transports for integration with MCP clients like Claude Desktop.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Integrates RetailCRM API with AI assistants, enabling access to orders, customers, and products from your CRM through natural language commands.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to Wildberries and Ozon seller accounts for real-time access to sales, stocks, prices, finances, and reviews through official APIs.
    MIT