mcp-zakupki

io.github.atomno-mcpPublished by GitHub account atomno-mcpv0.2.0Updated Oct 24, 2026

MCP server for Russian government procurement data (44-FZ / 223-FZ / 615-PP).

Overview

AI-generated overview

Local MCP server that lets an assistant search Russian public procurement (44-FZ, 223-FZ, 615-PP) tenders, fetch tender cards and look up OKPD2 codes.

What you can do
Search tenders on the official zakupki.gov.ru site by OKPD2 code, region, price range, dates and status, without an API key. Retrieve a full tender card by registry number, including documents. Look up OKPD2 / KTRU codes by text using an offline directory. Fetch a customer card by INN and check the register of unscrupulous suppliers. Get supplier statistics, which requires an EIS machine-exchange token and otherwise returns a refusal rather than zeros.
When to use it
Useful for monitoring and screening Russian government tenders, preparing bids, checking a customer or supplier before bidding, or picking the right OKPD2 classification code, directly from an MCP client such as Cursor or Claude Desktop.
Requirements
Runs locally over stdio, installed with uvx, pipx or pip (Python). Search and tender cards work without a key against zakupki.gov.ru, so network access is needed. Optional keys: MCP_ZAKUPKI_DAMIA_KEY, MCP_ZAKUPKI_GOSPLAN_KEY, MCP_ZAKUPKI_NAVODKI_KEY for commercial providers, MCP_ZAKUPKI_EIS_TOKEN with a Minfin certificate for official EIS exchange, and MCP_ZAKUPKI_API_KEY for hosted Pro features. Desktop only.
Before you install
Customer history and supplier statistics need the paid hosted Pro key MCP_ZAKUPKI_API_KEY; without an EIS token those summaries are unavailable. Optional commercial provider keys are sent to third-party services when configured. The server reads public procurement data and does not submit bids; tender decisions remain the user's responsibility. It is not affiliated with Russian authorities or the EIS operator.

Installation

In SourceWeft

  1. Open mcp-zakupki in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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 ₽/год за Контур / SeldonExcel-сводки + email-уведомленияОдин MCP-вызов из Cursor → LLM сама фильтрует, объясняет, сравнивает
Скрипты на Python с ftp.zakupki.gov.ru сломались с января 2025Ищут замену через коммерческие APIОфициальный сайт ЕИС: поиск, XML-карточка, карточка организации
AI-агент не может прочитать тендер самКопи-паст в чатget_tender(reg_number) отдаёт всю карточку как JSON

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

ToolЧто делает
search_tendersПоиск закупок на официальном сайте zakupki.gov.ru. Ключ не нужен.
get_tenderКарточка закупки по реестровому номеру (официальная XML-печатная форма).
lookup_okpd2Поиск кода ОКПД2 / КТРУ по тексту (локальный справочник, без сети).
get_customer_historyКарточка заказчика по ИНН и статус в реестре недобросовестных. Сводку объёмов сайт не считает.
get_supplier_statsСводка по поставщику. Без токена машинного обмена ЕИС недоступна — тулза вернёт отказ, не нули.

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

Quick start

1. Установка

bash
# Через uvx (рекомендуется — без установки в систему):uvx atomno-mcp-zakupki --help
# Через pipx:pipx install atomno-mcp-zakupkiatomno-mcp-zakupki --version
# В виртуальное окружение проекта:pip install atomno-mcp-zakupki

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

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

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

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

ПеременнаяОписаниеГде взять
MCP_ZAKUPKI_DAMIA_KEYAPI-ключ DaMIA API-Закупкиhttps://damia.ru/apizakupki (free-тариф «Старт» ≈ 100 запросов/мес)
MCP_ZAKUPKI_GOSPLAN_KEYAPI-ключ ГосПлан API v2https://wiki.gosplan.info (sandbox без регистрации: fz44test.gosplan.info)
MCP_ZAKUPKI_NAVODKI_KEYAPI-ключ navodki.ruhttps://navodki.ru
MCP_ZAKUPKI_EIS_TOKENТокен ЕИС (через pmd/auth/welcome)https://zakupki.gov.ru/pmd/auth/welcome + сертификат Минфина
MCP_ZAKUPKI_API_KEYPro hosted — обязателен для get_customer_history / get_supplier_stats и будущих AI-туловhttps://atomno-mcp.ru/pricing#zakupki-pro
MCP_ZAKUPKI_LOG_LEVELDEBUG / 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) и добавьте:

json
{  "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):

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

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

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

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

bash
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

text
atomno-mcp-zakupki --helpatomno-mcp-zakupki --versionatomno-mcp-zakupki --check-configatomno-mcp-zakupki --log-level DEBUGatomno-mcp-zakupki --transport http --host 127.0.0.1 --port 8765atomno-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.

Разработка

bash
git clone https://github.com/atomno-mcp/mcp-zakupki.gitcd mcp-zakupki
python -m venv .venvsource .venv/bin/activate            # Linux/macOS# .venv\Scripts\activate              # Windows
pip install -e ".[dev]"pytest -v --cov=src/mcp_zakupkiruff check src tests

Disclaimer

  • Сервис не аффилирован с Министерством финансов РФ, ФАС, оператором ЕИС или конкретными ЭТП.
  • Данные берём с официального сайта ЕИС (zakupki.gov.ru) по обычным публичным адресам, с официальными корневыми сертификатами Минцифры.
  • Машинный обмен SOAP требует токен и регистрацию на портале — без этого сводка объёмов и статистика поставщика недоступны.
  • Используйте на свой риск. Решения о подаче заявок на тендеры — на ответственности пользователя.

Лицензия

MIT © 2026 Atomno.

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

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

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

Source: README.md at commit a3c6100

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts