Skip to main content
Glama

@theyahia/mindbox-mcp

Mindbox CDP API용 MCP 서버 — 고객 프로필, 주문, 세그먼트, 상품 목록 및 임의 작업.

npm CI License: MIT

기능

  • Mindbox API 작업을 위한 6가지 도구

  • 전송: stdio(기본값) 및 Streamable HTTP(--http)

  • Claude Desktop, Claude Code, Cursor, Smithery 호환

  • 백오프(backoff) 및 멱등성(transactionId)을 갖춘 재시도, HTTP 전송 보호

  • 일반적인 시나리오 자동화를 위한 Skills

Related MCP server: Constant Contact MCP Server

설치

Claude Desktop

{
  "mcpServers": {
    "mindbox": {
      "command": "npx",
      "args": ["-y", "@theyahia/mindbox-mcp"],
      "env": {
        "MINDBOX_API_KEY": "ваш_ключ",
        "MINDBOX_ENDPOINT_ID": "ваш_endpoint_id"
      }
    }
  }
}

Claude Code

claude mcp add mindbox -e MINDBOX_API_KEY=ваш_ключ -e MINDBOX_ENDPOINT_ID=ваш_endpoint_id -- npx -y @theyahia/mindbox-mcp

Streamable HTTP

MINDBOX_API_KEY=ваш_ключ MINDBOX_ENDPOINT_ID=ваш_endpoint_id npx @theyahia/mindbox-mcp --http
# MCP endpoint: http://127.0.0.1:3000/mcp
# Health check: http://127.0.0.1:3000/health

기본적으로 서버는 127.0.0.1에서 수신합니다(보안 섹션 참조). 포트는 PORT, 호스트는 HOST로 설정합니다.

Docker (HTTP)

docker build -t mindbox-mcp .
docker run --rm -p 3000:3000 \
  -e MINDBOX_API_KEY=ваш_ключ -e MINDBOX_ENDPOINT_ID=ваш_endpoint_id \
  -e MINDBOX_HTTP_ALLOWED_HOSTS=ваш-домен:3000 \
  mindbox-mcp

컨테이너는 0.0.0.0:3000에서 수신합니다. 리버스 프록시 뒤에서 사용하는 경우 MINDBOX_HTTP_ALLOWED_HOSTS에 자체 호스트를 추가하세요(DNS-rebinding 보호).

Smithery

smithery.yaml 파일이 포함되어 있습니다. 필수 매개변수: MINDBOX_API_KEY, MINDBOX_ENDPOINT_ID.

인증 및 엔드포인트

인증 헤더: Authorization: Mindbox secretKey="...".

요청은 POST https://api.mindbox.ru/v3/operations/{sync|async}?endpointId=…&operation=…로 전송됩니다:

  • sync — 응답이 있는 작업(고객 프로필, 세그먼트, 주문 생성, 상품 목록). 기본값으로 사용됩니다.

  • async — fire-and-forget 이벤트(조회, 장바구니 추가). run_operation에서 mode: "async"로 사용할 수 있습니다.

작업의 시스템 이름(operation)은 각 Mindbox 프로젝트에서 설정됩니다 — 보편적인 내장 메서드가 아닙니다. Website.GetCustomerInfo 같은 기본값은 흔한 관례일 뿐입니다. 프로젝트 관리자가 동일한 시스템 이름으로 작업을 생성해야 하며, 그렇지 않으면 Mindbox가 ProtocolError를 반환합니다.

환경 변수

변수

필수

설명

MINDBOX_API_KEY

예

Mindbox API 비밀 키(MINDBOX_SECRET_KEY도 허용)

MINDBOX_ENDPOINT_ID

예

통합 지점 ID(endpointId)

PORT

아니요

HTTP 서버 포트(기본값 3000)

HOST

아니요

HTTP 바인딩 호스트(기본값 127.0.0.1)

MINDBOX_HTTP_TOKEN

아니요

/mcp 보호용 Bearer 토큰(설정된 경우 요청에 필수)

MINDBOX_HTTP_ALLOWED_HOSTS

아니요

DNS-rebinding 보호를 위한 추가 허용 Host(쉼표로 구분)

MINDBOX_HTTP_ALLOWED_ORIGINS

아니요

추가 허용 Origin(쉼표로 구분)

MINDBOX_ALLOW_RAW

아니요

0/false/off/no는 run_operation을 비활성화합니다

MINDBOX_MAX_RETRIES

아니요

429/5xx/타임아웃 시 재시도 횟수(기본값 3)

MINDBOX_RETRY_BASE_MS

아니요

백오프 기본 지연 시간(ms)(기본값 500)

MINDBOX_TIMEOUT_MS

아니요

단일 시도 타임아웃(ms)(기본값 15000)

도구 (6)

도구

설명

get_customer

이메일/전화번호/ID로 고객 프로필 조회

create_order

고객 연동 주문 생성

get_segments

고객 세그먼트 조회

get_product_list

상품 목록 조회

update_customer

고객 프로필 업데이트

run_operation

⚠️ 임의의 Mindbox API 작업 실행(보안 참조)

보안

  • **run_operation**은 비밀 키로 임의의 Mindbox 작업을 실행하며 데이터를 변경할 수 있습니다. 신뢰할 수 없는 에이전트 시나리오에서는 prompt-injection 벡터가 될 수 있습니다. 호출은 stderr에 기록됩니다. 완전히 비활성화하려면 MINDBOX_ALLOW_RAW=0을 설정하세요.

  • HTTP 전송에는 선택적 MINDBOX_HTTP_TOKEN 외에 내장 인증이 없습니다. 서버는 기본적으로 127.0.0.1에서 수신하며, DNS-rebinding 보호(Host/Origin 검증)가 활성화되어 있고, CORS *는 /health에서만 허용됩니다. 원격 액세스의 경우 인증 리버스 프록시 뒤에 배치하고 필요 없으면 포트를 외부에 열지 마세요.

  • 비밀 키는 서버 측에서만 사용되며 브라우저에 절대 노출되어서는 안 됩니다.

Skills

스킬

설명

트리거

skill-customer-search

Mindbox에서 고객 검색

"Mindbox에서 고객을 찾아줘"

skill-segment-stats

세그먼트 통계

"세그먼트 통계"

요청 예시

Найди клиента с email user@example.com
Создай заказ для клиента с телефоном +7900...
Какие сегменты у клиента user@example.com?
Покажи список товаров
Обнови имя клиента с ID 12345
Выполни операцию Custom.GetData с телом {"key": "value"}

문제 해결

증상

원인 및 해결 방법

환경 변수 MINDBOX_API_KEY … 필수

MINDBOX_API_KEY/MINDBOX_ENDPOINT_ID가 설정되지 않음. 서버는 이 값 없이도 시작되어 도구 목록을 반환하지만, 모든 호출에는 키가 필요합니다.

Mindbox HTTP 401/403

secretKey 또는 endpointId가 잘못되었거나, 키에 작업 권한이 없음.

상태: ProtocolError / 작업을 찾을 수 없음

작업의 시스템 이름이 Mindbox 프로젝트에 설정되지 않음. 일치하는 systemName으로 작업을 생성하거나 올바른 operation을 전달하세요.

Mindbox: 요청 시간 초과

MINDBOX_TIMEOUT_MS(기본 15초) 초과. 서버는 이미 재시도를 수행합니다. 필요한 경우 타임아웃/재시도를 늘리세요.

HTTP 403 Invalid Host header

DNS-rebinding 보호가 작동함. MINDBOX_HTTP_ALLOWED_HOSTS에 자체 호스트를 추가하세요.

개발

npm install          # установка + сборка (prepare)
npm run dev          # stdio
npm run dev:http     # HTTP на порту 3000
npm test             # Vitest
npm run typecheck    # tsc --noEmit
npm run lint         # ESLint

CONTRIBUTING.md 참조.

라이선스

MIT

Available Tools

6 tools
create_orderB

Создание заказа в Mindbox с привязкой к клиенту.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesYesСтроки заказа (товары)
order_idYesID заказа во внешней системе
operationNoСистемное имя операции Mindbox для создания заказа (должно совпадать с настроенным в проекте)Website.CreateOrder
total_priceYesОбщая сумма заказа
customer_emailNoEmail клиента
customer_phoneNoТелефон клиента
customer_external_idNoВнешний ID клиента

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It does not mention side effects, authorization requirements, reversibility, or impact on customer data—important for a creation tool with client binding.

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

Conciseness4/5

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

The description is a single, focused sentence with no fluff. It is appropriately concise and front-loaded with the primary purpose, but it is slightly under-specified for a complex tool—though that is more relevant to contextual completeness than conciseness.

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

Completeness2/5

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

Given the tool has 7 parameters, 3 required, no annotations, and no output schema, the description is too sparse. It does not explain how customer binding works, what constitutes a valid order, or any constraints or prerequisites. An agent would lack critical context to use it correctly.

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% and every parameter has a description. The tool description adds no parameter-level detail, which is acceptable per the baseline. However, it doesn't synthesize how parameters relate (e.g., which customer fields are optional vs. required for binding), leaving some semantic gaps that the schema alone already mostly fills.

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 (creating an order) and the resource (order in Mindbox), plus the distinguishing detail of binding to a customer. This distinguishes it from sibling tools like get_customer or update_customer, which operate on different resources.

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. There is no mention of conditions for choosing create_order over run_operation or update_customer, nor any exclusions. The description is purely declarative.

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

get_customerA

Получение профиля клиента из Mindbox по email, телефону или ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail клиента для поиска
phoneNoТелефон клиента для поиска
operationNoСистемное имя операции Mindbox для получения данных клиента (должно совпадать с настроенным в проекте)Website.GetCustomerInfo
external_idNoВнешний ID клиента

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'getting', which hints at a read operation, but does not mention possible side effects, authentication requirements, rate limits, error behavior, or what happens when multiple identifiers are provided. The bare action leaves significant behavior undocumented.

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?

A single, front-loaded sentence that states the primary action and keys without any filler. It is concise and easy to scan.

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?

For a simple retrieval tool with moderate parameter count and no output schema, the description covers the core purpose but omits practical details such as whether at least one identifier is required, how identifiers combine, or expected response format. The schema fills in some gaps (e.g., operation matching), but the description provides no extra context beyond the basic action.

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 all four parameters (email, phone, operation, external_id) already have descriptions in the schema. The tool description adds no parameter-specific guidance beyond naming the identifiers, and it does not clarify precedence, mutual exclusivity, or the requirement to match the operation name to project configuration (though the schema does state that). 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?

The description clearly states the verb 'get' and the resource 'customer profile from Mindbox', and explicitly mentions the search keys (email, phone, ID). This distinguishes it from siblings like get_segments or get_product_list, which target different resources.

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 implies the tool is used to retrieve customer data by one of the listed identifiers, but it does not provide explicit when-to-use guidance or contrast with alternatives (e.g., 'use get_segments for segments, not customers'). No exclusions or context that would help an agent decide between tools are included.

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

get_product_listC

Получение списка товаров из Mindbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoНомер страницы
operationNoСистемное имя операции Mindbox для получения списка товаров (должно совпадать с настроенным в проекте)Website.GetProductList
page_sizeNoРазмер страницы

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool retrieves a product list, without revealing any side effects, authentication requirements, rate limits, or return format. Since it's a read operation it's likely benign, but the description fails to explicitly confirm it's non-mutating or describe any pagination behavior beyond what the schema implies. This is a significant gap given no annotation support.

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, concise sentence that front-loads the core purpose. There is zero wasted text or unnecessary elaboration. It's appropriately minimal for a straightforward list operation and ranks highly for conciseness.

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

Completeness2/5

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

Given that this tool has 3 parameters, all with defaults, and no output schema, the description should provide more context about behavior and usage. It doesn't explain the meaning of the 'operation' parameter or how pagination works (though the schema covers that). It also doesn't mention what the response looks like or any prerequisites. For a simple read operation, it might be acceptable, but the lack of any additional context beyond the schema makes it incomplete for an agent that needs to call it correctly without prior knowledge.

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%, and each parameter (page, operation, page_size) already has a clear description and default value. The tool description adds no additional meaning beyond the schema, but the schema itself is sufficient. Baseline of 3 is appropriate since the description doesn't enhance parameter understanding, but also doesn't need to because the schema is comprehensive.

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

Purpose4/5

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

The description clearly states the tool retrieves a list of products from Mindbox, using a specific verb ('Получение' = getting) and resource ('список товаров' = product list). It distinguishes from siblings like get_customer and get_segments by referencing a different entity type, though it doesn't explicitly compare to a potential get_products alternative. Clear enough for an agent to understand the core purpose.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention use cases, exclusions, or how it relates to sibling tools like run_operation or create_order. An agent is left to infer usage from the name and schema, which is insufficient for making correct tool selection decisions.

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

get_segmentsC

Получение сегментов клиента в Mindbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail клиента
phoneNoТелефон клиента
operationNoСистемное имя операции Mindbox для получения сегментов клиента (должно совпадать с настроенным в проекте)Website.GetCustomerSegments
external_idNoВнешний ID клиента

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. The verb 'Получение' implies a read operation, but it does not explicitly state that it does not modify data, nor does it mention any other behaviors like pagination or permission requirements. This is a significant gap for a tool with no annotation coverage.

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

Conciseness4/5

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

The description is a single short sentence, concise and front-loaded. It states the core action and object without fluff, earning its place with minimal waste, though it could arguably be too minimal for a complex tool.

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

Completeness2/5

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

Given the tool has 4 optional parameters, no output schema, and no annotations, the description is insufficient for an agent to confidently invoke it correctly. It lacks information about when to use it, what the response looks like, and any behavioral caveats. The schema covers parameter semantics, but the overall context is thin.

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 description coverage is 100%, providing descriptions for all four parameters. The tool description adds no extra meaning beyond the schema, so it meets the baseline of 3 without needing to compensate for missing schema information.

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

Purpose4/5

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

The description states a clear verb ('Получение' = getting) and resource ('сегментов клиента' = customer segments), which is distinct from sibling tools like get_customer. However, it does not elaborate on the scope or specifics of segments, so it is clear but not highly differentiating.

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?

The description provides no guidance on when to use this tool versus alternatives such as get_customer or run_operation. There is no mention of prerequisites, use cases, or exclusions, leaving the agent to infer usage context.

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

run_operationA

⚠️ ОПАСНО: выполнение ПРОИЗВОЛЬНОЙ операции Mindbox API под секретным ключом. Может изменять данные. Отключается через MINDBOX_ALLOW_RAW=0.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoТело запроса (JSON)
modeNoРежим: sync (request→response) или async (fire-and-forget)sync
operationYesСистемное имя произвольной операции Mindbox

TDQS

A3.7/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 key behavioral traits: it is dangerous, may modify data, runs under a secret key, and can be disabled via an environment variable. This exceeds typical descriptions by highlighting side effects and safety mechanisms. However, it does not describe return behavior or error cases, which are inherently variable for arbitrary operations.

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, short sentence that immediately conveys the danger and purpose. It is front-loaded with the warning and efficiently states both the capability and the safety toggle. No redundancy or filler.

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?

For an arbitrary-operation tool with no output schema and no annotations, the description covers the risk profile but omits practical guidance like how to discover operation names, what the response format looks like, or typical use cases. Given the tool's open-ended nature, some guidance would be helpful for safe invocation, but the minimal description is partially acceptable because the behavior depends entirely on the called 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 schema already provides descriptions for all three parameters (operation, body, mode) with 100% coverage. The description adds no additional semantic detail beyond the schema. It does not explain how to reference operation names or provide examples. Since coverage is high, the baseline 3 is appropriate; the description does not compensate for any gaps.

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

Purpose4/5

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

The description clearly states that this tool executes an arbitrary Mindbox API operation ('выполнение ПРОИЗВОЛЬНОЙ операции Mindbox API'), which distinguishes it from the specific sibling tools like get_customer or create_order. It uses a generic verb 'run' but the arbitrariness is explicit. It doesn't specify a particular resource, but for a raw-operation tool that's appropriate.

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 implies this is for operations not covered by dedicated tools (since it's arbitrary and warns of danger), and mentions a safety toggle (MINDBOX_ALLOW_RAW). However, it does not explicitly state 'use this when no other tool fits' or provide alternatives. The warning signals caution, but when-to-use versus when-not-to-use is only implied, not stated.

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

update_customerC

Обновление профиля клиента в Mindbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail клиента
phoneNoТелефон клиента
last_nameNoФамилия
operationNoСистемное имя операции Mindbox для обновления клиента (должно совпадать с настроенным в проекте)Website.UpdateCustomer
birth_dateNoДата рождения (YYYY-MM-DD)
first_nameNoИмя
external_idNoВнешний ID клиента
custom_fieldsNoКастомные поля

TDQS

C2.9/5.0
Behavior2/5

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

Since no annotations are provided, the description bears the full burden of disclosing behavioral traits. It only states that it updates a profile, without specifying whether it is a partial or full update, what happens on non-existent customers, authentication or permission requirements, or any side effects. For a mutation tool this is insufficient, leaving the agent to guess critical behavior.

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

Conciseness4/5

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

The description is a single sentence with no redundant words, making it concise and appropriately front-loaded with the core purpose. However, given the tool's complexity (8 parameters, nested object), one could argue it is under-specified, but that is more a completeness issue than a conciseness problem. The text itself is efficient.

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

Completeness2/5

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

With 8 parameters, a nested object, no output schema, and no annotations, the description must provide substantial context to be usable. It fails to mention how to identify the customer, whether any fields are required (none are marked required but logically an identifier is needed), the relationship to run_operation, or the expected response. This is far from complete for a tool of this complexity.

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 descriptions for all 8 parameters, so coverage is 100%, justifying the baseline of 3. The description adds no additional meaning about parameters, such as how to identify the customer or which fields are expected together. Since the schema already covers basic semantics, the description does not need to compensate, but it also does not enrich understanding of parameter relationships.

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

Purpose4/5

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

The description states the verb 'Обновление' (update) and the resource 'профиль клиента' (customer profile) within 'Mindbox', making the core purpose clear. It is distinguishable from sibling get_customer (read) and create_order (different resource), though it does not explicitly differentiate itself from run_operation which could also update. The single-sentence description gives enough to know what it does, but lacks any elaboration on scope.

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. There is no mention of prerequisites (e.g., the need for an identifier like external_id or email), nor any exclusion criteria. The agent must infer from the name and sibling tools. This is a clear gap for a tool that overlaps conceptually with get_customer and run_operation.

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. 6 tool updatesv1.2.0
    • First observedcreate_order
    • First observedget_customer
    • First observedget_product_list
    • First observedget_segments
    • First observedrun_operation
    • First observedupdate_customer

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct function: customer profile retrieval/update, order creation, segments lookup, product list, and a raw operation escape hatch. No two tools seem to overlap, and the dangerous run_operation is clearly separated by its warning.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern (get_customer, create_order, get_segments, get_product_list, update_customer, run_operation). This is predictable and easy for an agent to parse.

Tool Count5/5

With 6 tools, the set is well-scoped for a CRM/ecommerce integration. It covers core customer and order operations without unnecessary bloat, making it easy to navigate.

Completeness4/5

The set covers customer retrieval/update, order creation, segments, and products, but lacks explicit order retrieval or listing, and there is no direct customer creation. However, the run_operation tool provides a raw API fallback, mitigating some gaps, though it introduces risk.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    MCP server for MoySklad (МойСклад) warehouse and CRM management API. 21 tools covering the full order lifecycle: products, stock, counterparties, customer orders, shipments, supplies, warehouses, organizations, reports, and webhooks.
    60
    54 npm
    9
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive access to the Constant Contact API v3 for email marketing, campaign management, contact management, analytics, and automation through MCP tools.
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables programmatic WhatsApp automation through MCP, including sending messages, managing chats and contacts, searching conversation history, and exchanging media files.
    MIT