mcpField
M
mcp-fns-check

mcp-fns-check

本地服务
github.com/atomno-mcp商业与营销158 周前更新

关于 mcp-fns-check

mcp-fns-check 是一款 MCP 服务,使用公开登记数据核查俄罗斯公司和个体经营者。其工具可提供企业资料、状态、风险检查,以及附带建议的汇总判定。

主要功能

  1. 01按 INN 或 OGRN 汇总核查
  2. 02查询企业资料与法律状态
  3. 03查询 OKVED 代码和负责人信息
  4. 04检查风险指标
  5. 05提供判定结果和建议
  6. 06使用公开登记数据

适用场景

  1. 01签约前审查俄罗斯交易对手
  2. 02核查企业状态和登记经营活动
  3. 03识别潜在税务、执行或仲裁风险

MCP 相关

它向 MCP 客户端提供七种尽职调查工具,包括 `check_contractor`、`check_inn` 和 `check_for_red_flags`。可通过 stdio 运行,也可选择 HTTP、SSE 或 streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fns-check": {
"command": "uvx",
"args": [
"atomno-mcp-fns-check"
]
}
}
}
启动命令uvx atomno-mcp-fns-check

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiatomno-mcp-fns-check0.1.12

工具

9

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

atomno-mcp-fns-check

用于核查俄罗斯交易对手方的 MCP 服务:统一国家法人登记簿(ЕГРЮЛ)、破产、税务欠款、司法执行人员和仲裁案件。适用于公司背景调查,可连接到 Cursor、Claude 和任何 MCP 客户端。

面向 AI Agent 的俄罗斯交易对手方核查工具。

build version license mcp tests coverage Glama

mcp-fns-check MCP server

可连接到 Claude Desktop、Cursor、Claude Code、Cline 以及任何其他兼容 Model Context Protocol(MCP)的客户端。


用途

AI Agent(Claude、Cursor 等)通常不了解俄罗斯交易对手方:统一国家法人登记簿(ЕГРЮЛ)无法通过搜索引擎正常检索;联邦税务局“透明经营”服务的数据藏在 POST 请求和 CAPTCHA 之后;统一联邦破产信息登记簿(ЕФРСБ)返回的是 HTML。此 MCP 服务为 Agent 提供七种工具,让它一次调用即可获取完整信息:

  • 对方是谁:名称、地址、全俄经济活动分类代码(ОКВЭД)、负责人。
  • 是否仍在经营:正常经营、清算中、破产、已清算、重组。
  • 与其合作是否安全:批量注册地址、批量负责人、取消资格、破产、税务欠款、执行程序、仲裁案件。

主要工具 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 服务形式运行:Agent 通过 stdin/stdout JSON-RPC 与其通信。无法直接在 shell 中“试用”,请将其连接到 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 的交易对手方”——Agent 会自动调用 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-check
Cline(VS Code)

编辑 cline_mcp_settings.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 响应示例
{
  "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"
}
来源故障时的行为
  • ЕГРЮЛ 是唯一的 阻塞性来源。如果无法访问,check_contractor 会引发 SourceUnavailableError(Agent 会收到易于理解的消息)。
  • 其他来源以 尽力而为的方式合并:ФССП 的 CAPTCHA、КАД 的 antibot、pb.nalog.ru 的 5xx 错误——都会写入 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_HOURS缓存信息卡片的 TTL,小时168(7 天)
MCP_FNS_HTTP_TIMEOUTHTTP 超时时间,秒15
MCP_FNS_USER_AGENTHTTP 客户端的 User-Agentatomno-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 加载数据切片:

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 来源:

默认情况下,CLI 以 --dry-run 运行(解析并打印 sample);写入数据需要显式指定 --commit。Meta 字段 <registry>.last_etl、<registry>.last_etl_source、<registry>.last_etl_count 会自动保存——可用它们通过 cron 监控数据的新鲜度。


Разработка

git clone https://github.com/atomno-mcp/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+).
  • ЕФРСБ (банкротство юрлица) для программного запроса закрыт защитой 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.


Ссылки

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。