mcp-fns-check

io.github.atomno-mcp由 GitHub 帳號 atomno-mcp 發布v0.1.12更新於 Oct 25, 2026

Russian tax authority (FNS) counterparty checks: status, debts, blocks. Due diligence MCP.

發布方自己的服務:check.tattoo: tattoo size and placement guide

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理依 INN 或 OGRN 查詢俄羅斯企業與個體經營者,並依公開登記資料給出盡職調查結論。

可以做什麼
依 INN 或 OGRN 執行完整交易對象查核,回傳含結論與建議的彙總報告,或單獨取得企業基本資料。查詢法律狀態(存續、清算、破產、重整)以及附說明的 OKVED 經營活動代碼。查詢現任負責人,並在開放資料允許時提供負責人異動歷史。執行七項風險紅旗檢查,涵蓋大量地址、大量負責人、喪失資格、破產、欠稅、強制執行程序與仲裁案件。
適用情境
適合助理在簽約前審查俄羅斯商業交易對象,或依據官方公開來源而非一般網頁搜尋來回答企業登記資訊、狀態、負責人或風險訊號相關問題。
執行需求
以 stdio 本機程序執行,透過 pip、uv 或 pipx 從 PyPI 安裝(需要 Python)。無需憑證或 API 金鑰,資料來源皆為公開資訊。需要連線至俄羅斯聯邦稅務局、Fedresurs、法警局與仲裁網站。可選環境變數用於設定快取與登記庫路徑、快取有效期、HTTP 逾時、User-Agent 與日誌等級。大量地址、大量負責人與喪失資格檢查需以獨立的 ETL 指令匯入本機登記資料切片。
安裝前請注意
唯讀:README 聲明不進行任何寫入操作,也不需要憑證。報告彙總公開資料,不能取代完整的法律或財務盡職調查。多個資料來源常被驗證碼或反機器人機制阻擋,檢查可能回傳錯誤、風險等級顯示為未知而非低風險。欠稅資料為定期快照,並非即時。負責人姓名公開,個人 INN 在回應中會被遮罩。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 mcp-fns-check,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

atomno-mcp-fns-check

MCP-сервер проверки российских контрагентов: ЕГРЮЛ, банкротство, налоговые долги, приставы и арбитражные дела. Для разведки компаний — подключается к Cursor, Claude и любому клиенту MCP.

Russian counterparty check for AI agents.

[build] [version] [license] [mcp] [tests] [coverage] [Glama]

[mcp-fns-check MCP server]

Готов к подключению в 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) и список конкретных рекомендаций.


Быстрый старт

Установка

bash
pip install atomno-mcp-fns-check

Или через uv / pipx:

bash
uv pip install atomno-mcp-fns-check# илиpipx install atomno-mcp-fns-check

Проверка работы

bash
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):

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

json
{  "mcpServers": {    "fns-check": {      "command": "atomno-mcp-fns-check"    }  }}

Перезапустите Claude Desktop.

Claude Code (CLI)

bash
claude mcp add fns-check atomno-mcp-fns-check

Cline (VS Code)

В cline_mcp_settings.json:

json
{  "mcpServers": {    "fns-check": {      "command": "atomno-mcp-fns-check",      "disabled": false,      "autoApprove": []    }  }}

Тулзы

ТулНазначениеВходИсточники
check_contractorГлавный. Полная проверка по одному идентификатору + детерминированный вердикт и рекомендацииidentifier: str (ИНН 10/12 или ОГРН 13/15)все 5
check_innБазовая карточка ЕГРЮЛinn: stregrul.nalog.ru
check_ogrnБазовая карточка по ОГРН/ОГРНИПogrn: stregrul.nalog.ru
get_legal_statusЖизненный статус с обогащениемinn или ogrnЕГРЮЛ + ЕФРСБ
get_okvedsКоды ОКВЭД с расшифровкойinn или ogrnЕГРЮЛ + словарь ОКВЭД-2
get_directors_historyТекущий руководитель (+ история по мере Open Data)inn: strЕГРЮЛ
check_for_red_flags7 проверок риска (4 базовые + 3 расширенные)inn: strвсе источники

Используемые публичные источники:

  • egrul.nalog.ru — ЕГРЮЛ/ЕГРИП, карточка контрагента.
  • bankrot.fedresurs.ru — ЕФРСБ (Единый федеральный реестр сведений о банкротстве).
  • Открытые данные ФНС, набор «debtam» — налоговая задолженность (локальная выгрузка).
  • service.nalog.ru — живой реестр дисквалифицированных лиц.
  • fssp.gov.ru — Банк данных исполнительных производств ФССП.
  • kad.arbitr.ru — Картотека арбитражных дел.
  • Локальные срезы реестров ФНС — массовые адреса, массовые руководители, дисквалифицированные лица (загружаются скриптом atomno-mcp-fns-etl из Open Data ФНС).

Проверки непредставления налоговой отчётности в наборе нет: публичного источника этих сведений не существует, а отвечать «отчётность сдаётся» без данных сервис не будет.

Пример ответа check_contractor

json
{  "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.

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

Все настройки — через переменные окружения. Никаких креденшелов не требуется (источники публичные).

ПеременнаяОписаниеПо умолчанию
MCP_FNS_CACHE_DBПуть к SQLite-файлу кэша карточеккаталог данных пользователя (%LOCALAPPDATA%/atomno/ или ~/.local/share/atomno/), не папка проекта
MCP_FNS_REGISTRIES_DBПуть к SQLite-файлу реестров (массовые адреса/руководители/дисквалификации)<cache>.registries.sqlite
MCP_FNS_CACHE_TTL_HOURSTTL кэшированных карточек, часов168 (7 суток)
MCP_FNS_HTTP_TIMEOUTТаймаут HTTP, секунд15
MCP_FNS_USER_AGENTUser-Agent HTTP-клиентаatomno-mcp-fns-check/0.1 (+https://github.com/atomno-mcp/mcp-fns-check)
MCP_FNS_LOG_LEVELУровень логирования (DEBUG/INFO/WARNING/ERROR)INFO

Шаблон — .env.example.


Локальные реестры ФНС

Реестры массовых адресов / руководителей — это CSV-выгрузки открытых данных ФНС. Без загруженной выгрузки эти проверки отвечают «не выполнена» и не влияют на вердикт так, будто источник ответил. В поставке есть учебный файл registries_seed.json только для тестов; сервер его в рабочую базу не подгружает.

Для рабочих проверок загрузите срезы через CLI atomno-mcp-fns-etl:

bash
atomno-mcp-fns-etl --registry mass_addresses --source ./fns_open_data/ulm.csv --commitatomno-mcp-fns-etl --registry mass_directors --source ./fns_open_data/uchredt.csv --commitatomno-mcp-fns-etl --registry disqualified --source ./fns_open_data/disqualified.csv --commit

Источники Open Data:

По умолчанию CLI работает в --dry-run (парсит и печатает sample); для записи нужен явный --commit. Meta-поля <registry>.last_etl, <registry>.last_etl_source, <registry>.last_etl_count сохраняются автоматически — используйте их для cron-мониторинга свежести данных.


Разработка

bash
git clone https://github.com/atomno-mcp/mcp-fns-checkcd mcp-fns-checkpython -m venv .venvsource .venv/bin/activate    # Linux/macOS# .venv/Scripts/activate     # Windowspip install -e ".[dev]"pytest -v --cov=src/atomno_mcp_fns_check

Внешние API в тестах никогда не вызываются напрямую — только через respx (мокинг httpx) + локальные фикстуры в tests/fixtures/.


Ограничения

  • Нет history для руководителей — ФНС не отдаёт историю смены через search-API; полная история появится после загрузки Open Data slice ЕГРЮЛ (планируется в v0.5+).
  • ЕФРСБ (банкротство юрлица) для программного запроса закрыт защитой Qrator (403 / проверка «человек или робот»). Автоматически эта проверка часто не выполняется; в отчёте это ошибка источника, а не «банкротства нет». Готового обхода нет — нужен официальный доступ Федресурса либо ручная проверка на bankrot.fedresurs.ru.
  • ФССП на публичном поиске отвечает окном с кодом с картинки. Код не разгадываем: проверка честно попадает в errors[] с причиной captcha_required.
  • КАД на программный поиск отвечает 451 (защита DDoS-Guard). Это не ошибка сертификата: сайт подписан Let's Encrypt. Официальный доступ — у оператора картотеки. В отчёте это «не проверено», не «судов нет».
  • Если часть проверок не ответила, итоговый уровень риска — «не определён» (unknown), а не «низкий». Пустой flags[] сам по себе не означает «чисто».
  • Налоговые долги берутся из открытых данных ФНС (набор «debtam»): суммы недоимки, пеней и штрафов есть, но данные публикуются срезом за отчётную дату, а не в реальном времени. Актуальную сумму подтверждайте справкой ИФНС.
  • Локальные реестры ФНС (массовые адреса, массовые руководители, дисквалифицированные) требуют регулярной загрузки. Если выгрузка пустая или устарела, проверка честно отвечает «не проверено» и попадает в errors[] — «совпадений нет» по устаревшим данным не выдаётся.
  • Непредставление налоговой отчётности не проверяется — публичного источника нет.

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.


Ссылки

來源:README.md,提交 4796a75

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.12最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Check 整合