Skip to main content
Glama
atomno-mcp

atomno-mcp-zakupki

atomno-mcp-zakupki

MCP-сервер госзакупок: поиск тендеров на zakupki.gov.ru, история заказчиков и поставщиков, справочник ОКПД2. Законы 44-ФЗ, 223-ФЗ и 615-ПП — прямо в Cursor, Claude и любом клиенте MCP.

Russian public procurement search for AI agents.

PyPI version License: MIT Python 3.11+ MCP

Установили локально, прописали в конфиге Cursor / Claude Desktop / Cline — и в одном промпте просите: «Покажи свежие тендеры за сегодня по ОКПД2 62.0 в Москве с НМЦК ≤ 5 млн ₽». Сервер сходит в выбранный источник данных, нормализует ответ и вернёт LLM готовую структуру.

Зачем

Боль

Сейчас

С atomno-mcp-zakupki

Каждое утро 30–60 мин просеивать ЕИС вручную или платить 16–67 K ₽/год за Контур / Seldon

Excel-сводки + email-уведомления

Один MCP-вызов из Cursor → LLM сама фильтрует, объясняет, сравнивает

Скрипты на Python с ftp.zakupki.gov.ru сломались с января 2025

Ищут замену через коммерческие API

Официальный сайт ЕИС: поиск, XML-карточка, карточка организации

AI-агент не может прочитать тендер сам

Копи-паст в чат

get_tender(reg_number) отдаёт всю карточку как JSON

Related MCP server: commit-check-mcp

Что внутри (open-клиент)

Tool

Что делает

search_tenders

Поиск закупок на официальном сайте zakupki.gov.ru. Ключ не нужен.

get_tender

Карточка закупки по реестровому номеру (официальная XML-печатная форма).

lookup_okpd2

Поиск кода ОКПД2 / КТРУ по тексту (локальный справочник, без сети).

get_customer_history

Карточка заказчика по ИНН и статус в реестре недобросовестных. Сводку объёмов сайт не считает.

get_supplier_stats

Сводка по поставщику. Без токена машинного обмена ЕИС недоступна — тулза вернёт отказ, не нули.

Источник по умолчанию — официальный сайт ЕИС. Покупной посредник отключён. Сводка объёмов и статистика поставщика без токена машинного обмена недоступны.

Quick start

1. Установка

# Через uvx (рекомендуется — без установки в систему):
uvx atomno-mcp-zakupki --help

# Через pipx:
pipx install atomno-mcp-zakupki
atomno-mcp-zakupki --version

# В виртуальное окружение проекта:
pip install atomno-mcp-zakupki

Опциональный экстра для официального ЕИС-токена (требует сертификат Минфина):

pip install "atomno-mcp-zakupki[eis-official]"

2. Конфигурация

Поиск и карточка закупки работают без ключа — источник zakupki.gov.ru. Покупной посредник и SOAP-токен ЕИС не обязательны.

Переменная

Описание

Где взять

MCP_ZAKUPKI_DAMIA_KEY

API-ключ DaMIA API-Закупки

https://damia.ru/apizakupki (free-тариф «Старт» ≈ 100 запросов/мес)

MCP_ZAKUPKI_GOSPLAN_KEY

API-ключ ГосПлан API v2

https://wiki.gosplan.info (sandbox без регистрации: fz44test.gosplan.info)

MCP_ZAKUPKI_NAVODKI_KEY

API-ключ navodki.ru

https://navodki.ru

MCP_ZAKUPKI_EIS_TOKEN

Токен ЕИС (через pmd/auth/welcome)

https://zakupki.gov.ru/pmd/auth/welcome + сертификат Минфина

MCP_ZAKUPKI_API_KEY

Pro hosted — обязателен для get_customer_history / get_supplier_stats и будущих AI-тулов

https://atomno-mcp.ru/pricing#zakupki-pro

MCP_ZAKUPKI_LOG_LEVEL

DEBUG / INFO / WARNING / ERROR / CRITICAL

по умолчанию INFO

MCP_ZAKUPKI_CACHE_DB

Путь к SQLite-кэшу

каталог данных пользователя (%LOCALAPPDATA%/atomno/ или ~/.local/share/atomno/)

MCP_ZAKUPKI_PROVIDERS

Цепочка источников

по умолчанию eis_public

MCP_ZAKUPKI_RPS

Лимит запросов в минуту

по умолчанию 30

3. Подключение к Cursor

Откройте ~/.cursor/mcp.json (или Cursor → Settings → Model Context Protocol) и добавьте:

{
  "mcpServers": {
    "zakupki": {
      "command": "uvx",
      "args": ["atomno-mcp-zakupki"],
      "env": {
        "MCP_ZAKUPKI_LOG_LEVEL": "INFO"
      }
    }
  }
}

4. Подключение к Claude Desktop

%APPDATA%\Claude\claude_desktop_config.json (Windows) или ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "zakupki": {
      "command": "uvx",
      "args": ["atomno-mcp-zakupki"]
    }
  }
}

5. Подключение к Cline / Goose / Kiro

Любой MCP-клиент: запустите atomno-mcp-zakupki (по умолчанию stdio транспорт) и пропишите в его конфиге команду запуска.

Для HTTP-режима:

atomno-mcp-zakupki --transport http --host 127.0.0.1 --port 8765

Примеры

Утренний мониторинг тендеров

[Cursor]: Покажи свежие тендеры за сегодня по ОКПД2 62.0 в УрФО
          с НМЦК 500K-3M ₽, СМП-only.

→ search_tenders(
    okpd2_codes=["62.01", "62.02", "62.09"],
    regions=["66", "74", "59", "45", "72", "86", "89"],
    price_min_rub=500000, price_max_rub=3000000,
    smp_only=True,
    publish_date_from="2026-04-26",
    status=["applications_open"]
  )
← 7 тендеров найдено за 412 мс.

Карточка тендера

[Cursor]: Расскажи подробно про реестровый номер 0173100007426000018.

→ get_tender(reg_number="0173100007426000018", include_documents=True)
← Все поля: заказчик, НМЦК, документация (PDF), сроки, площадка...

Анализ заказчика (Pro)

[Cursor]: Кто такой ИНН 7449023800? Покажи историю закупок за 2 года.

→ get_customer_history(inn="7449023800", period_from="2024-01-01")
← Требуется MCP_ZAKUPKI_API_KEY (hosted Pro).

Подбор кода ОКПД2

[Cursor]: Какой ОКПД2 у разработки веб-портала?

→ lookup_okpd2(query="разработка веб-портала", limit=5)
← [{"code":"62.01.11.000","name":"Услуги по проектированию ИС","match":0.94}, ...]

CLI

atomno-mcp-zakupki --help
atomno-mcp-zakupki --version
atomno-mcp-zakupki --check-config
atomno-mcp-zakupki --log-level DEBUG
atomno-mcp-zakupki --transport http --host 127.0.0.1 --port 8765
atomno-mcp-zakupki --transport sse --port 9000

Полный список опций — в atomno-mcp-zakupki --help.

Источники данных

Источник

Что отдаёт

Когда используется

ЕИС, официальный сайт

Поиск, XML-карточка, карточка организации, реестр недобросовестных

По умолчанию, без ключа

SOAP ЕИС (int.zakupki.gov.ru)

Машинная выгрузка

Только с токеном после регистрации на портале

DaMIA / ГосПлан / navodki

Коммерческие API

Только если явно заданы в MCP_ZAKUPKI_PROVIDERS и есть ключ

Цепочка по умолчанию: MCP_ZAKUPKI_PROVIDERS=eis_public. Если источник не ответил, тулза вернёт типизированную ошибку provider_unavailable или not_implemented — не пустой список.

Архитектура (вкратце)

AI-клиент (Cursor / Claude / Cline) ──MCP──▶ atomno-mcp-zakupki
                                              │
                                              ├──▶ lookup_okpd2 (offline)
                                              ├──▶ Self-hosted API (search/get)
                                              └──▶ hosted Pro (api.atomno-mcp.ru) — production

Все провайдеры реализуют общий BaseProvider-интерфейс. Ответы нормализуются в Pydantic-модели Tender, Customer, Document, OrgHistorySummary.

Разработка

git clone https://github.com/atomno-mcp/mcp-zakupki.git
cd mcp-zakupki

python -m venv .venv
source .venv/bin/activate            # Linux/macOS
# .venv\Scripts\activate              # Windows

pip install -e ".[dev]"
pytest -v --cov=src/mcp_zakupki
ruff check src tests

Disclaimer

  • Сервис не аффилирован с Министерством финансов РФ, ФАС, оператором ЕИС или конкретными ЭТП.

  • Данные берём с официального сайта ЕИС (zakupki.gov.ru) по обычным публичным адресам, с официальными корневыми сертификатами Минцифры.

  • Машинный обмен SOAP требует токен и регистрацию на портале — без этого сводка объёмов и статистика поставщика недоступны.

  • Используйте на свой риск. Решения о подаче заявок на тендеры — на ответственности пользователя.

Лицензия

MIT © 2026 Atomno.

Семья MCP-серверов atomno

atomno-mcp-zakupki — пятый сервер семьи atomno-mcp-*:

Подключите все вместе — и получите полное B2G-досье по тендеру за один промпт.

Available Tools

6 tools
get_customer_historyA

Карточка заказчика по ИНН или ОГРН с официального сайта ЕИС.

Отдаёт реквизиты и статус в реестре недобросовестных поставщиков. Сводку объёмов сайт без токена машинного обмена не считает.

ParametersJSON Schema
NameRequiredDescriptionDefault
innNoИНН заказчика (10 цифр для юр.лица, 12 для ИП).
ogrnNoОГРН/ОГРНИП заказчика.
period_toNoконец периода (YYYY-MM-DD, default — сегодня).
period_fromNoначало периода (YYYY-MM-DD, default 2024-01-01).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It does indicate a read-only style behavior by saying 'Отдаёт реквизиты' and adds a useful limitation about volume summaries requiring a machine-exchange token. However, the token sentence is ambiguous about whether the base card also requires a token and what happens when the token is absent.

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?

Three short sentences with the main purpose front-loaded, followed by the returned content and a limitation caveat. Each sentence contributes meaningful information and there is no padding.

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?

The output schema covers return values, so that part is not a gap. The main missing context is that the schema allows all parameters to be omitted, while the description implies lookup by INN or OGRN but never requires at least one. It also does not clarify whether the token limitation affects the whole call or only the volume summary.

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 all four parameters with formats and defaults (100% coverage), so the baseline is 3. The description adds little beyond naming INN or OGRN as identifiers, which duplicates the schema and does not clarify whether at least one identifier is required or how the period parameters relate to the volume summary.

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 names a specific resource, 'Карточка заказчика' (customer card), and states that it returns requisites and RNP status from the official EIS site using INN or OGRN. This is clear enough to distinguish the tool from siblings like get_tender or search_tenders. However, the tool name says 'history' but the description never explains what the history aspect is, and it does not explicitly differentiate from get_supplier_stats.

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 gives a clear lookup context: use this tool when you need a customer card from EIS by INN or OGRN. It does not provide explicit when-not-to-use guidance or name alternative sibling tools, but the context is sufficiently clear for tool selection.

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

get_supplier_statsA

Сводка по поставщику.

На официальном сайте без токена машинного обмена недоступна — вернёт отказ с причиной, не пустые нули.

ParametersJSON Schema
NameRequiredDescriptionDefault
innNoИНН поставщика.
ogrnNoОГРН/ОГРНИП поставщика.
period_toNo
period_fromNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 burden of behavioral disclosure. It adds meaningful detail: the official site requires a machine exchange token, and without it the tool returns an explicit refusal with a reason rather than empty zero values. This helps an agent interpret failures correctly, though it does not describe the summary contents or any side effects.

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 short sentences with no filler. The core purpose is stated first, and the important availability/failure caveat earns its place immediately after.

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?

An output schema exists, so return values need not be explained in the description. The token requirement and failure behavior are useful context, but the description omits guidance on choosing between parameters and leaves period semantics unclear. For a low-complexity tool this is adequate but not complete.

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

Parameters2/5

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

Schema coverage is 50%, with inn and ogrn described but period_from and period_to left undocumented. The description adds no parameter-level meaning, does not clarify date format or semantics, and does not compensate for the undocumented period parameters.

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 identifies the resource as a supplier summary ('Сводка по поставщику'), which distinguishes it from sibling tools focused on tenders, customer history, or OKPD2. However, it lacks an explicit verb explaining the operation being performed, so it falls short of a 5.

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 token caveat gives a clear condition under which the tool will not work and what to expect instead, but it does not explicitly state when to prefer this tool over alternatives or mention any sibling tool. Usage is implied by the 'supplier summary' purpose rather than directly guided.

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

get_tenderA

Получить полную карточку тендера по реестровому номеру ЕИС.

ParametersJSON Schema
NameRequiredDescriptionDefault
reg_numberYesреестровый номер тендера (19–21 цифр). Пример: "0173100007426000018".
include_documentsNoвключить URLs всех приложенных документов.
include_protocolsNoвключить протоколы (более тяжёлый вызов).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description must carry full burden. It states 'get full tender card' but does not elaborate on read-only nature, rate limits, or default parameter behaviors (e.g., include_documents defaults true). Minimal but not misleading.

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?

Single sentence, front-loaded with purpose. No wasted words, but could include brief usage context. Still appropriate for a simple retrieval tool.

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 existence of an output schema (context says yes), the description need not detail return values. However, it lacks mention of document/protocol inclusion flags despite them being in schema. Adequate but could be more 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% with clear descriptions for all three parameters. The description adds no extra meaning beyond the schema, only referencing 'registr number' which matches the required parameter. Baseline score 3 as schema already suffices.

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), resource (full tender card), and identifier (registr number of EIS). It distinguishes from sibling tools like search_tenders (search vs specific retrieval) and get_customer_history (different entity).

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 when-not-to-use guidance. It is implied to use when you have a specific registry number, but no comparison with search_tenders or prerequisites are mentioned.

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

lookup_okpd2A

Найти код ОКПД2 / КТРУ по тексту запроса (полнотекстовый поиск).

Использует vendored-справочник из 60+ топ-кодов (Phase 0–1) или полный справочник после CI-загрузки. Нет сетевых обращений.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoколичество результатов (1–50, default 10).
queryYesтекст запроса (минимум 3 символа). Пример: "разработка веб-портала".
code_typeNo"okpd2" (default), "ktru" или "both".okpd2

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description adequately discloses behavioral traits: offline operation and data source (vendored vs full directory). It adds value beyond the schema by clarifying the offline nature, though it could mention that results are limited to available codes.

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 three sentences, front-loads the purpose, and contains no unnecessary words. Every sentence contributes essential context.

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?

The description is complete for a simple lookup tool, given the presence of an output schema and full parameter descriptions. It explains the data source and offline nature, but could briefly mention return format or result behavior.

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 the baseline is 3. The tool description does not add new meaning beyond what the input schema already provides for parameters (query, limit, code_type).

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 tool finds OKPD2/KTRU codes via full-text search. It specifies the verb 'Найти' and the resource 'код ОКПД2 / КТРУ', distinguishing it from unrelated sibling tools.

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 explains that the tool uses a vendored directory (top codes) or full directory after CI-upload, and that it requires no network calls. It does not explicitly state when not to use or alternatives, but the context is clear given unrelated siblings.

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

pingA

Диагностический тул: убедиться, что сервер запущен и доступен.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.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 must carry the full burden of behavioral disclosure. It only states the tool verifies server availability but does not describe the nature of the request, timeout behavior, any potential side effects, or what the output looks like. This is insufficient 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the purpose. Every word earns its place with no extraneous information.

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 ping tool with no parameters, an existing output schema, and a straightforward purpose, the description is complete. It covers the essential information needed to understand when and why to use the tool.

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?

The input schema has no parameters, and schema description coverage is 100%. The description adds no additional parameter meaning, which is acceptable since there are none to document. The baseline for zero parameters is 4.

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 is a diagnostic tool to check if the server is running and available. It uses a specific verb and resource, and effectively distinguishes itself from the sibling tools which deal with customer, supplier, and tender data.

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 the tool's usage context (checking server availability), but does not explicitly state when to use it or when not to use it, nor does it mention any alternatives. However, given the simplicity and lack of similar sibling tools, the context is clear enough.

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

search_tendersA

Найти тендеры (44-ФЗ / 223-ФЗ / 615-ПП) по фильтрам в ЕИС zakupki.gov.ru.

Возвращает структурированный массив до 100 объектов на вызов с пагинацией через next_page_token. Все фильтры комбинируются через AND.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoколичество объектов в ответе (1–100, default 20).
queryNoсвободный поиск по наименованию объекта закупки.
statusNoстатус тендера ("published", "applications_open", "applications_closed", "in_progress", "completed", "cancelled", "all_active").
regionsNoкоды субъектов РФ ("66" = Свердловская обл., "74" = Челябинская).
law_typeNoсписок из ["44-fz", "223-fz", "615-pp"]; default — оба ФЗ.
platformNoЭТП ("sberbank_ast", "rts_tender", "roseltorg", "tek_torg", "gpb", "rad", "fabrikant", "agz_rt").
smp_onlyNoтолько закупки среди субъектов малого предпринимательства.
ktru_codesNoкоды КТРУ для более точной фильтрации.
okpd2_codesNoкоды ОКПД2 (можно префиксы: "62.0" включит всё под 62.0).
customer_innNoИНН заказчика (10 цифр — юр.лицо, 12 — ИП).
customer_ogrnNoОГРН заказчика (13 — юр.лицо, 15 — ИП).
price_max_rubNo
price_min_rubNo
next_page_tokenNoтокен следующей страницы из предыдущего ответа.
publish_date_toNo
publish_date_fromNo
applications_deadline_toNo
applications_deadline_fromNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description explains pagination (up to 100 objects, next_page_token) and how filters combine (AND). It does not cover rate limits or authentication, but provides sufficient behavioral context.

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 concise with three clear sentences, front-loaded with purpose, and contains no unnecessary 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?

Given the complexity (18 parameters, output schema exists), the description covers core behavior: search, pagination, AND combination. It could mention permissions or data freshness but is largely complete.

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 67%, and the description does not add significant parameter-specific details beyond what the schema already provides. 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 tool searches tenders by filters in EIS, specifying the applicable laws (44-ФЗ, 223-ФЗ, 615-ПП). It distinguishes from sibling tools like get_tender (single tender) and lookup_okpd2 (code lookup).

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 usage for filtering tenders but does not explicitly state when to use this tool versus alternatives or provide exclusions. It is clear enough for a search tool.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.3
    • First observedget_customer_history
    • First observedget_supplier_stats
    • First observedget_tender
    • First observedlookup_okpd2
    • First observedping
    • First observedsearch_tenders

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: customer history, supplier stats, tender details, OKPD2 lookup, diagnostics, and tender search. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_customer_history, lookup_okpd2, search_tenders), with ping as a simple verb fitting the pattern.

Tool Count5/5

6 tools is well-scoped for the domain of Russian government procurement, covering key data access patterns without excess or deficiency.

Completeness4/5

Covers core operations like searching, retrieving details, and statistics. Missing potential additions like document retrieval, but the set is reasonable for a read-only API.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Russian state registries EGRUL (legal entities) and EGRIP (individual entrepreneurs), built on official Federal Tax Service open-data dumps. Self-hosted via local SQLite.
    8
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables validation of commit messages, branch names, author info, push safety, and repository state using commit-check rules, accessible as MCP tools.
    8
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    MCP server for searching government tenders from CanadaBuys and SAM.gov with free stats and paid search, latest, and AI matching tools using x402 micropayments.
    4
    1
    -
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for checking Russian FSSP (Federal Bailiff Service) debts, enabling AI agents to look up enforcement proceedings for individuals and legal entities through MCP clients like Cursor and Claude Desktop.
    5
    MIT

Latest Blog Posts

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/atomno-mcp/mcp-zakupki'

If you have feedback or need assistance with the MCP directory API, please join our Discord server