atomno-mcp-zakupki
This MCP server provides access to Russian government procurement data from zakupki.gov.ru, covering 44-FZ, 223-FZ, and 615-PP regulations.
search_tenders: Find tenders using 30+ filters — keywords, status, region codes, law type, trading platform (Sberbank AST, RTS-Tender, etc.), SME-only flag, OKPD2/KTRU codes, customer INN/OGRN, price range (RUB), publication dates, and application deadlines. Supports pagination vianext_page_token(up to 100 results per call).get_tender: Retrieve a full tender card by registry number (19–21 digits), optionally including attached document URLs and protocols.get_customer_history(Pro): Get procurement history for a customer organization by INN or OGRN over a specified date range.get_supplier_stats(Pro): Get aggregated statistics for a supplier by INN or OGRN over a specified date range.lookup_okpd2: Search for OKPD2 or KTRU classification codes by free-text query using a local offline directory — no network calls required.ping: Diagnostic tool to verify the server is running and reachable.
The server can also be combined with other Atomno MCP servers (e.g., CBR rates, EGRUL, FNS check) to build comprehensive B2G dossiers.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@atomno-mcp-zakupkiПокажи свежие тендеры за сегодня по ОКПД2 62.0 в Москве с НМЦК ≤ 5 млн ₽"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
atomno-mcp-zakupki
MCP-сервер госзакупок: поиск тендеров на zakupki.gov.ru, история заказчиков и поставщиков, справочник ОКПД2. Законы 44-ФЗ, 223-ФЗ и 615-ПП — прямо в Cursor, Claude и любом клиенте MCP.
Russian public procurement search for AI agents.
Установили локально, прописали в конфиге Cursor / Claude Desktop / Cline — и в одном промпте просите: «Покажи свежие тендеры за сегодня по ОКПД2 62.0 в Москве с НМЦК ≤ 5 млн ₽». Сервер сходит в выбранный источник данных, нормализует ответ и вернёт LLM готовую структуру.
Зачем
Боль | Сейчас | С |
Каждое утро 30–60 мин просеивать ЕИС вручную или платить 16–67 K ₽/год за Контур / Seldon | Excel-сводки + email-уведомления | Один MCP-вызов из Cursor → LLM сама фильтрует, объясняет, сравнивает |
Скрипты на Python с | Ищут замену через коммерческие API | Официальный сайт ЕИС: поиск, XML-карточка, карточка организации |
AI-агент не может прочитать тендер сам | Копи-паст в чат |
|
Related MCP server: commit-check-mcp
Что внутри (open-клиент)
Tool | Что делает |
| Поиск закупок на официальном сайте |
| Карточка закупки по реестровому номеру (официальная XML-печатная форма). |
| Поиск кода ОКПД2 / КТРУ по тексту (локальный справочник, без сети). |
| Карточка заказчика по ИНН и статус в реестре недобросовестных. Сводку объёмов сайт не считает. |
| Сводка по поставщику. Без токена машинного обмена ЕИС недоступна — тулза вернёт отказ, не нули. |
Источник по умолчанию — официальный сайт ЕИС. Покупной посредник отключён. Сводка объёмов и статистика поставщика без токена машинного обмена недоступны.
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-токен ЕИС не обязательны.
Переменная | Описание | Где взять |
| API-ключ DaMIA API-Закупки | https://damia.ru/apizakupki (free-тариф «Старт» ≈ 100 запросов/мес) |
| API-ключ ГосПлан API v2 | https://wiki.gosplan.info (sandbox без регистрации: |
| API-ключ navodki.ru | |
| Токен ЕИС (через | https://zakupki.gov.ru/pmd/auth/welcome + сертификат Минфина |
| Pro hosted — обязателен для | |
| DEBUG / INFO / WARNING / ERROR / CRITICAL | по умолчанию |
| Путь к SQLite-кэшу | каталог данных пользователя ( |
| Цепочка источников | по умолчанию |
| Лимит запросов в минуту | по умолчанию |
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 ЕИС ( | Машинная выгрузка | Только с токеном после регистрации на портале |
DaMIA / ГосПлан / navodki | Коммерческие API | Только если явно заданы в |
Цепочка по умолчанию: 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 testsDisclaimer
Сервис не аффилирован с Министерством финансов РФ, ФАС, оператором ЕИС или конкретными ЭТП.
Данные берём с официального сайта ЕИС (
zakupki.gov.ru) по обычным публичным адресам, с официальными корневыми сертификатами Минцифры.Машинный обмен SOAP требует токен и регистрацию на портале — без этого сводка объёмов и статистика поставщика недоступны.
Используйте на свой риск. Решения о подаче заявок на тендеры — на ответственности пользователя.
Лицензия
MIT © 2026 Atomno.
Семья MCP-серверов atomno
atomno-mcp-zakupki — пятый сервер семьи atomno-mcp-*:
atomno-mcp-cbr-rates— курсы ЦБ РФatomno-mcp-egrul— реквизиты юр.лиц из ЕГРЮЛatomno-mcp-fns-check— налоговая благонадёжностьatomno-mcp-fssp— задолженности и исп. производства (готовится)atomno-mcp-zakupki— вы здесьatomno-mcp-rosreestr— недвижимость, кадастр (готовится)atomno-mcp-sudact— судебная практика (готовится)
Подключите все вместе — и получите полное B2G-досье по тендеру за один промпт.
Available Tools
6 toolsget_customer_historyA
Карточка заказчика по ИНН или ОГРН с официального сайта ЕИС.
Отдаёт реквизиты и статус в реестре недобросовестных поставщиков. Сводку объёмов сайт без токена машинного обмена не считает.
| Name | Required | Description | Default |
|---|---|---|---|
| inn | No | ИНН заказчика (10 цифр для юр.лица, 12 для ИП). | |
| ogrn | No | ОГРН/ОГРНИП заказчика. | |
| period_to | No | конец периода (YYYY-MM-DD, default — сегодня). | |
| period_from | No | начало периода (YYYY-MM-DD, default 2024-01-01). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
Сводка по поставщику.
На официальном сайте без токена машинного обмена недоступна — вернёт отказ с причиной, не пустые нули.
| Name | Required | Description | Default |
|---|---|---|---|
| inn | No | ИНН поставщика. | |
| ogrn | No | ОГРН/ОГРНИП поставщика. | |
| period_to | No | ||
| period_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
Получить полную карточку тендера по реестровому номеру ЕИС.
| Name | Required | Description | Default |
|---|---|---|---|
| reg_number | Yes | реестровый номер тендера (19–21 цифр). Пример: "0173100007426000018". | |
| include_documents | No | включить URLs всех приложенных документов. | |
| include_protocols | No | включить протоколы (более тяжёлый вызов). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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-загрузки. Нет сетевых обращений.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | количество результатов (1–50, default 10). | |
| query | Yes | текст запроса (минимум 3 символа). Пример: "разработка веб-портала". | |
| code_type | No | "okpd2" (default), "ktru" или "both". | okpd2 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
Диагностический тул: убедиться, что сервер запущен и доступен.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | количество объектов в ответе (1–100, default 20). | |
| query | No | свободный поиск по наименованию объекта закупки. | |
| status | No | статус тендера ("published", "applications_open", "applications_closed", "in_progress", "completed", "cancelled", "all_active"). | |
| regions | No | коды субъектов РФ ("66" = Свердловская обл., "74" = Челябинская). | |
| law_type | No | список из ["44-fz", "223-fz", "615-pp"]; default — оба ФЗ. | |
| platform | No | ЭТП ("sberbank_ast", "rts_tender", "roseltorg", "tek_torg", "gpb", "rad", "fabrikant", "agz_rt"). | |
| smp_only | No | только закупки среди субъектов малого предпринимательства. | |
| ktru_codes | No | коды КТРУ для более точной фильтрации. | |
| okpd2_codes | No | коды ОКПД2 (можно префиксы: "62.0" включит всё под 62.0). | |
| customer_inn | No | ИНН заказчика (10 цифр — юр.лицо, 12 — ИП). | |
| customer_ogrn | No | ОГРН заказчика (13 — юр.лицо, 15 — ИП). | |
| price_max_rub | No | ||
| price_min_rub | No | ||
| next_page_token | No | токен следующей страницы из предыдущего ответа. | |
| publish_date_to | No | ||
| publish_date_from | No | ||
| applications_deadline_to | No | ||
| applications_deadline_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.1.3- First observed
get_customer_history - First observed
get_supplier_stats - First observed
get_tender - First observed
lookup_okpd2 - First observed
ping - First observed
search_tenders
TDQS
Each tool has a clearly distinct purpose: customer history, supplier stats, tender details, OKPD2 lookup, diagnostics, and tender search. No overlap or ambiguity.
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.
6 tools is well-scoped for the domain of Russian government procurement, covering key data access patterns without excess or deficiency.
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
Related MCP Connectors
MCP server for Russian books search, details, and recommendation candidates.
MCP server for prozorro_tender_monitor_mcp
TED MCP Server: Real-time EU public tenders access. https://www.lexsocket.ai/
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP 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.82MIT

commit-check-mcpofficial
AlicenseAqualityAmaintenanceEnables validation of commit messages, branch names, author info, push safety, and repository state using commit-check rules, accessible as MCP tools.81MIT- FlicenseAqualityDmaintenanceMCP server for searching government tenders from CanadaBuys and SAM.gov with free stats and paid search, latest, and AI matching tools using x402 micropayments.41-
- AlicenseAqualityAmaintenanceMCP 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.5MIT
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/atomno-mcp/mcp-zakupki'
If you have feedback or need assistance with the MCP directory API, please join our Discord server