FNS Check MCP Server
atomno-mcp-fns-check
MCP-сервер для проверки российских контрагентов (юридические лица и ИП) через публичные данные ФНС: ЕГРЮЛ/ЕГРИП, ЕФРСБ, «Прозрачный бизнес», ФССП, КАД.
Готов к подключению в Claude Desktop, Cursor, Claude Code, Cline и любой другой клиент, совместимый с Model Context Protocol (MCP).
Зачем
AI-агент (Claude, Cursor, etc.) обычно ничего не знает о российских контрагентах: ЕГРЮЛ не индексируется поисковиками нормально, данные в Прозрачном бизнесе ФНС — за POST-запросами и CAPTCHA, ЕФРСБ отдаёт HTML. Этот MCP-сервер даёт агенту семь тулзов, через которые он за один вызов получит полную картину:
Кто это: наименование, адрес, ОКВЭД, руководитель.
Жив ли: действующее, в ликвидации, банкротство, ликвидировано, реорганизация.
Безопасно ли с ним работать: массовый адрес, массовый руководитель, дисквалификация, банкротство, налоговые долги, непредставление отчётности, исполнительные производства, арбитражные дела.
Главный тул — check_contractor(identifier) — принимает ИНН или ОГРН и возвращает агрегированный отчёт с вердиктом (safe_to_proceed / manual_review_required / high_risk_do_not_proceed / impossible_contractor_defunct) и список конкретных рекомендаций.
Быстрый старт
Установка
pip install atomno-mcp-fns-checkИли через uv / pipx:
uv pip install atomno-mcp-fns-check
# или
pipx install atomno-mcp-fns-checkПроверка работы
atomno-mcp-fns-check --version
# → atomno-mcp-fns-check 0.1.1
atomno-mcp-fns-check --help
# → полный список флагов: --transport / --host / --port / --log-levelПо умолчанию пакет запускается как stdio-MCP-сервер: агент общается с ним через stdin/stdout JSON-RPC. Напрямую из шелла вы его не «потыкаете» — подключите к MCP-клиенту. Для сетевых сценариев доступен флаг --transport {http,sse,streamable-http} с --host/--port.
Подключение к MCP-клиентам
Cursor
Отредактируйте mcp.json (Cursor → Settings → Cursor Settings → MCP):
{
"mcpServers": {
"fns-check": {
"command": "atomno-mcp-fns-check"
}
}
}Перезапустите Cursor. В чате спросите: «Проверь контрагента ИНН 7707083893» — агент сам вызовет check_contractor.
Claude Desktop
Отредактируйте claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"fns-check": {
"command": "atomno-mcp-fns-check"
}
}
}Перезапустите Claude Desktop.
Claude Code (CLI)
claude mcp add fns-check atomno-mcp-fns-checkCline (VS Code)
В cline_mcp_settings.json:
{
"mcpServers": {
"fns-check": {
"command": "atomno-mcp-fns-check",
"disabled": false,
"autoApprove": []
}
}
}Тулзы
Тул | Назначение | Вход | Источники |
| Главный. Полная проверка по одному идентификатору + детерминированный вердикт и рекомендации |
| все 5 |
| Базовая карточка ЕГРЮЛ |
| egrul.nalog.ru |
| Базовая карточка по ОГРН/ОГРНИП |
| egrul.nalog.ru |
| Жизненный статус с обогащением |
| ЕГРЮЛ + ЕФРСБ |
| Коды ОКВЭД с расшифровкой |
| ЕГРЮЛ + словарь ОКВЭД-2 |
| Текущий руководитель (+ история по мере Open Data) |
| ЕГРЮЛ |
| 8 проверок риска (4 базовые + 4 расширенные) |
| все 5 |
Используемые публичные источники:
egrul.nalog.ru — ЕГРЮЛ/ЕГРИП, карточка контрагента.
bankrot.fedresurs.ru — ЕФРСБ (Единый федеральный реестр сведений о банкротстве).
pb.nalog.ru — Прозрачный бизнес ФНС (налоговые долги, непредставление отчётности).
fssp.gov.ru — Банк данных исполнительных производств ФССП.
kad.arbitr.ru — Картотека арбитражных дел.
Локальные срезы реестров ФНС — массовые адреса, массовые руководители, дисквалифицированные лица (загружаются скриптом
atomno-mcp-fns-etlиз Open Data ФНС).
Пример ответа check_contractor
{
"identifier": "7707083893",
"identifier_type": "inn",
"inn": "7707083893",
"ogrn": "1027700132195",
"card": {
"name": {"full": "ПАО СБЕРБАНК", "short": "СБЕРБАНК"},
"status": "active",
"address": {"full": "117997, Г.Москва, УЛ. ВАВИЛОВА, Д. 19", "is_mass_address": false},
"director": {"full_name": "Греф Г. О.", "position": "Президент"},
"okved_main": {"code": "64.19", "name": "Денежное посредничество прочее"}
},
"legal_status": {"status": "active", "status_label_ru": "Действующее", "sources_checked": ["egrul", "efrsb"]},
"risks": {"overall_risk_level": "low", "overall_risk_score": 0, "flags": [], "errors": []},
"verdict_action": "safe_to_proceed",
"verdict_reason_ru": "Статус «Действующее», уровень риска — low (score 0/100). Препятствий к заключению сделки по открытым источникам не найдено.",
"recommendations": [
"По открытым источникам препятствий к заключению сделки не обнаружено. Соблюдайте стандартные меры должной осмотрительности (ст. 54.1 НК РФ): копия устава, приказ на руководителя, договор."
],
"sources": {"sources_queried": ["efrsb", "egrul", "fssp", "kad", "pb_fns", "registries"]},
"tier": "open",
"checked_at": "2026-04-24T20:15:00Z"
}Поведение при сбоях источников
ЕГРЮЛ — единственный blocking-источник. Если он недоступен,
check_contractorподнимаетSourceUnavailableError(агент получит человекочитаемое сообщение).Остальные источники подмешиваются best-effort: CAPTCHA на ФССП, antibot на КАД, 5xx на pb.nalog.ru — всё складывается в
risks.errors[]и НЕ валит отчёт. Верхнеуровневый вердикт становитсяmanual_review_required.
Конфигурация
Все настройки — через переменные окружения. Никаких креденшелов не требуется (источники публичные).
Переменная | Описание | По умолчанию |
| Путь к SQLite-файлу кэша карточек |
|
| Путь к SQLite-файлу реестров (массовые адреса/руководители/дисквалификации) |
|
| TTL кэшированных карточек, часов |
|
| Таймаут HTTP, секунд |
|
| User-Agent HTTP-клиента |
|
| Уровень логирования (DEBUG/INFO/WARNING/ERROR) |
|
Шаблон — .env.example.
Локальные реестры ФНС
Реестры массовых адресов / руководителей / дисквалифицированных лиц — это CSV/XML-выгрузки Open Data ФНС. Пакет идёт со встроенным мини-сидом (registries_seed.json, синтетические тестовые записи) — его достаточно, чтобы тулзы работали «из коробки» и показывали флаги на тестовых ИНН.
Для production-проверок обновите реестры полными срезами через CLI atomno-mcp-fns-etl:
atomno-mcp-fns-etl --registry mass_addresses --source ./fns_open_data/ulm.csv --commit
atomno-mcp-fns-etl --registry mass_directors --source ./fns_open_data/uchredt.csv --commit
atomno-mcp-fns-etl --registry disqualified --source ./fns_open_data/disqualified.csv --commitИсточники Open Data:
mass_addresses→ nalog.gov.ru/opendata/7707329152-massreg/mass_directors→ nalog.gov.ru/opendata/7707329152-massuchredt/disqualified→ service.nalog.ru/disqualified.do
По умолчанию CLI работает в --dry-run (парсит и печатает sample); для записи нужен явный --commit. Meta-поля <registry>.last_etl, <registry>.last_etl_source, <registry>.last_etl_count сохраняются автоматически — используйте их для cron-мониторинга свежести данных.
Разработка
git clone https://github.com/atomno-labs/mcp-fns-check
cd mcp-fns-check
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv/Scripts/activate # Windows
pip install -e ".[dev]"
pytest -v --cov=src/atomno_mcp_fns_checkВнешние API в тестах никогда не вызываются напрямую — только через respx (мокинг httpx) + локальные фикстуры в tests/fixtures/.
Ограничения
Нет history для руководителей — ФНС не отдаёт историю смены через search-API; полная история появится после загрузки Open Data slice ЕГРЮЛ (планируется в v0.5+).
ФССП / КАД иногда блокируют CAPTCHA / antibot. В этом случае проверка падает в
errors[], а общий вердикт становитсяmanual_review_required.Прозрачный бизнес отдаёт только факт («есть задолженность» / «нет отчётности»), без суммы. Сумму надо запрашивать в ИФНС.
Pro-tier (hosted backend в atomno-mcp-fns-check-server — закрытый бэк) убирает эти ограничения через: кэш Redis 24h, ротация прокси для обхода CAPTCHA, полный срез Open Data ЕГРЮЛ, batch-проверки до 100 ИНН, AI-summary через LLM. Сам backend не опубликован.
Безопасность и юридический статус
Все источники — публично открытые данные ФНС и связанных реестров. Использование легально по 149-ФЗ «Об информации».
Юридические лица и ИП не подпадают под 152-ФЗ (О персональных данных).
ФИО физических лиц-руководителей публикуются ФНС в ЕГРЮЛ открыто; в outbound-ответах ИНН физлица-руководителя маскируется (формат
XXX*****YY).Никаких write-операций ни в один внешний API.
Никаких credential'ов / токенов не требуется — источники полностью публичные.
Дисклеймер
Сервис — агрегатор и удобный интерфейс над публичными данными ФНС. Не аффилирован с ФНС России, ЕФРСБ, КАД, ФССП. Используется на ваш риск.
Информация в ответах сервиса не заменяет полноценной юридической или финансовой оценки. Решение о заключении договора с контрагентом принимаете вы.
Лицензия
MIT — см. LICENSE.
Ссылки
GitHub: atomno-labs/mcp-fns-check
Больше MCP-серверов под брендом atomno: каталог atomno.ru (скоро)
MCP-спецификация: modelcontextprotocol.io
Maintenance
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-labs/mcp-fns-check'
If you have feedback or need assistance with the MCP directory API, please join our Discord server