Skip to main content

MCP-сервер для российских госзакупок (zakupki.gov.ru, 44-ФЗ / 223-ФЗ / 615-ПП): поиск тендеров, карточки, история заказчиков и поставщиков, справочник ОКПД2.

Project description

atomno-mcp-zakupki

MCP server for Russian government procurement data (44-FZ / 223-FZ / 615-PP) — find tenders, customer/supplier history, OKPD2 lookup directly from Cursor, Claude Desktop, Cline, Goose and any MCP-compatible client.

PyPI version License: MIT Python 3.11+ MCP

atomno-mcp-zakupki — это MCP-сервер (Model Context Protocol — открытый протокол подключения LLM-клиентов к внешним инструментам), который превращает портал ЕИС zakupki.gov.ru в набор тулзов для AI-ассистента.

Установили локально, прописали в конфиге 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 Hybrid-провайдеры: DaMIA, ГосПлан API v2, navodki; опц. ЕИС-токен
AI-агент не может прочитать тендер сам Копи-паст в чат get_tender(reg_number) отдаёт всю карточку как JSON

Что внутри (open-клиент, бесплатно)

5 инструментов, доступных любому MCP-клиенту:

Tool Что делает
search_tenders Поиск тендеров по 30+ фильтрам: 44-ФЗ / 223-ФЗ / 615-ПП, ОКПД2, КТРУ, регион, диапазон НМЦК, ЭТП, заказчик, статус, даты. До 100 объектов на вызов с пагинацией.
get_tender Полная карточка тендера по реестровому номеру: заказчик, документация, сроки, площадка, протоколы (если есть), победитель и итоговая цена.
get_customer_history История закупок заказчика (по ИНН/ОГРН): объём, средний контракт, топ-ОКПД2, доля СМП, топ-победителей.
get_supplier_stats Статистика поставщика: победы / поражения / РНП-статус / отрасли / регионы / средний дисконт от НМЦК.
lookup_okpd2 Поиск кода ОКПД2 / КТРУ по тексту запроса (полнотекстовый, локальный).

Pro-функции (summarize_tender_risks, predict_win_probability, subscribe_watchlist, ask_44fz_223fz, batch_search_tenders) требуют MCP_ZAKUPKI_API_KEY от api.atomno-mcp.ru/zakupki/. Запускаются после текущего спринта — открытая beta для пилотов.

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. Конфигурация (минимум — ключ одного API-провайдера)

По умолчанию atomno-mcp-zakupki использует только легальные API-источники (DaMIA, ГосПлан, navodki, опц. официальный ЕИС-токен). Без ключей работает только lookup_okpd2 (локальный справочник ОКПД2).

Для поиска тендеров и карточек добавьте ключ хотя бы одного провайдера в .env или переменные окружения. Полный список — в .env.example.

HTML-fallback (парсинг публичных страниц zakupki.gov.ru) не включён по умолчанию — только явный opt-in через MCP_ZAKUPKI_PROVIDERS=...,html_fallback. Используйте на свой риск и соблюдайте robots/ToS портала.

Переменная Описание Где взять
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-режима atomno https://app.atomno-labs.ru/zakupki (после публичного запуска)
MCP_ZAKUPKI_LOG_LEVEL DEBUG / INFO / WARNING / ERROR / CRITICAL по умолчанию INFO
MCP_ZAKUPKI_CACHE_DB Путь к SQLite-кэшу по умолчанию ./mcp_zakupki_cache.sqlite
MCP_ZAKUPKI_PROVIDERS Цепочка fallback'а через запятую по умолчанию damia,gosplan,navodki (без HTML)
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_DAMIA_KEY": "your-damia-key-here",
        "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), сроки, площадка...

Анализ заказчика

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

→ get_customer_history(inn="7449023800", period_from="2024-01-01")
← Сводка: 142 тендера, 312 млн ₽, 38.7% СМП, топ-ОКПД2, топ-победителей.

Подбор кода ОКПД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.

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

Провайдер Тариф Что покрывает Когда используется
DaMIA API-Закупки Free «Старт» ≈ 100/мес → per-request 44-ФЗ + 223-ФЗ + 615-ПП, методы zakupka, contract, zsearch, customer, eruz, rnp Default 1-й (если есть MCP_ZAKUPKI_DAMIA_KEY)
ГосПлан API v2 Free sandbox + платные планы 44-ФЗ (Beta), 615-ПП (Pre1), 223-ФЗ (Pre2) Fallback 2-й
navodki.ru Free 44-ФЗ + 223-ФЗ Fallback 3-й
HTML-fallback Free Публичные страницы printForm/viewXml.html?regNumber=... Opt-in only — добавьте html_fallback в MCP_ZAKUPKI_PROVIDERS
ЕИС-официальный (опц.) Free для физ.лица с токеном SOAP-сервис int.zakupki.gov.ru/eis-integration/services/getDocsIP Если есть MCP_ZAKUPKI_EIS_TOKEN + сертификат Минфина

Цепочка fallback'а настраивается через MCP_ZAKUPKI_PROVIDERS=damia,gosplan,navodki. Для HTML-парсинга явно добавьте ,html_fallback в конец цепочки. Если ни один не отвечает, тулза вернёт типизированную ошибку provider_unavailable.

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

AI-клиент (Cursor / Claude / Cline) ──MCP──▶ atomno-mcp-zakupki
                                              │
                                              ├──▶ SQLite cache (TTL 1 ч / 6 ч / 24 ч)
                                              ├──▶ DaMIA API
                                              ├──▶ ГосПлан API v2
                                              ├──▶ navodki.ru
                                              ├──▶ EIS SOAP (опц., через токен Минфина)
                                              └──▶ HTML-fallback (opt-in only)

Все провайдеры реализуют общий 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

  • Сервис не аффилирован с Министерством финансов РФ, ФАС, оператором ЕИС или конкретными ЭТП.
  • Данные ЕИС — общедоступные согласно 44-ФЗ ст. 4 ч. 1 и 223-ФЗ ст. 4 ч. 5. Мы получаем их через лицензированные API-провайдеры или официальный ЕИС-токен, а не через обход CAPTCHA или массовый scraping.
  • HTML-fallback (если явно включён) — экспериментальный режим; пользователь несёт ответственность за соблюдение ToS zakupki.gov.ru.
  • Используйте на свой риск. Решения о подаче заявок на тендеры — на ответственности пользователя.

Лицензия

MIT © 2026 atomno-labs.

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

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atomno_mcp_zakupki-0.1.0.tar.gz (54.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atomno_mcp_zakupki-0.1.0-py3-none-any.whl (62.6 kB view details)

Uploaded Python 3

File details

Details for the file atomno_mcp_zakupki-0.1.0.tar.gz.

File metadata

  • Download URL: atomno_mcp_zakupki-0.1.0.tar.gz
  • Upload date:
  • Size: 54.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for atomno_mcp_zakupki-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5cbd33c7063acdc600b918395756b61f72d208f1999bc26d2de40455c78669bb
MD5 ad105c58a3540bc5f4414d948b3c164d
BLAKE2b-256 383a753e8ae1ee8097e421683e060e8db8106f8066a0224b0af9eaf529412bea

See more details on using hashes here.

File details

Details for the file atomno_mcp_zakupki-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for atomno_mcp_zakupki-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e4a96c0a561c4c68eea0097f1c655e372f9439c179f6597ec3acd3a7c0f8453
MD5 aa0ca1415ec2ea3f355ccba359d20f96
BLAKE2b-256 f4c02e66005cd74b9c8758f4e10f6b15813b57c1df496944b51b64776d3ffba5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page