Skip to main content
Glama

atomno-mcp-fns-check

用于通过俄罗斯联邦税务局 (FNS) 公开数据验证俄罗斯交易对手(法人实体和个体工商户)的 MCP 服务器:EGRUL/EGRIP、EFRSB、“透明商业”、FSSP、KAD。

build version license mcp tests coverage

可随时连接至 Claude Desktop、Cursor、Claude Code、Cline 以及任何其他兼容模型上下文协议 (MCP) 的客户端。


目的

AI 代理(Claude、Cursor 等)通常不了解俄罗斯的交易对手:EGRUL 未被搜索引擎正常索引,FNS“透明商业”中的数据位于 POST 请求和 CAPTCHA 之后,EFRSB 提供的是 HTML。此 MCP 服务器为代理提供了七个工具,通过这些工具,代理可以在一次调用中获得完整的概况:

  • 身份信息:名称、地址、OKVED 代码、负责人。

  • 存续状态:正常、清算中、破产、已注销、重组。

  • 合作安全性:虚假地址、虚假负责人、取消资格、破产、税务债务、未提交报告、执行程序、仲裁案件。

主要工具 check_contractor(identifier) 接受 INN 或 OGRN,并返回带有结论safe_to_proceed / manual_review_required / high_risk_do_not_proceed / impossible_contractor_defunct)的汇总报告以及具体的建议列表。


Related MCP server: mcp-egrul

快速入门

安装

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 与其通信。您无法直接从 shell 中“测试”它——请将其连接到 MCP 客户端。对于网络场景,可以使用带有 --host/--port--transport {http,sse,streamable-http} 标志。


连接到 MCP 客户端

Cursor

编辑 mcp.json (Cursor → Settings → Cursor Settings → MCP):

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

重启 Cursor。在聊天中询问:“检查交易对手 INN 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-check

Cline (VS Code)

cline_mcp_settings.json 中:

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

工具

工具

用途

输入

数据源

check_contractor

主要工具。 通过单个标识符进行全面检查 + 确定性结论和建议

identifier: str (INN 10/12 或 OGRN 13/15)

全部 5 个

check_inn

EGRUL 基础卡片

inn: str

egrul.nalog.ru

check_ogrn

基于 OGRN/OGRNIP 的基础卡片

ogrn: str

egrul.nalog.ru

get_legal_status

带有丰富信息的生命周期状态

innogrn

EGRUL + EFRSB

get_okveds

带有说明的 OKVED 代码

innogrn

EGRUL + OKVED-2 词典

get_directors_history

当前负责人(+ 开放数据中的历史记录)

inn: str

EGRUL

check_for_red_flags

8 项风险检查(4 项基础 + 4 项扩展)

inn: str

全部 5 个

使用的公共数据源:

  • egrul.nalog.ru — EGRUL/EGRIP,交易对手卡片。

  • bankrot.fedresurs.ru — EFRSB(联邦破产信息统一登记处)。

  • pb.nalog.ru — FNS 透明商业(税务债务、未提交报告)。

  • fssp.gov.ru — FSSP 执行程序数据库。

  • kad.arbitr.ru — 仲裁案件档案。

  • FNS 登记处的本地切片 — 虚假地址、虚假负责人、被取消资格人员(通过 atomno-mcp-fns-etl 脚本从 FNS 开放数据加载)。

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"
}

数据源故障处理

  • EGRUL 是唯一的 阻塞 (blocking) 数据源。如果它不可用,check_contractor 将引发 SourceUnavailableError(代理将收到人类可读的消息)。

  • 其他数据源以 尽力而为 (best-effort) 方式混合:FSSP 上的 CAPTCHA、KAD 上的反机器人机制、pb.nalog.ru 上的 5xx 错误——所有这些都会被记录在 risks.errors[] 中,且不会导致报告失败。顶层结论将变为 manual_review_required


配置

所有设置均通过环境变量进行。无需凭据(数据源为公开数据)。

变量

描述

默认值

MCP_FNS_CACHE_DB

卡片缓存 SQLite 文件路径

./atomno_mcp_fns_check_cache.sqlite

MCP_FNS_REGISTRIES_DB

登记处 SQLite 文件路径(虚假地址/负责人/取消资格)

<cache>.registries.sqlite

MCP_FNS_CACHE_TTL_HOURS

缓存卡片的 TTL(小时)

168 (7 天)

MCP_FNS_HTTP_TIMEOUT

HTTP 超时(秒)

15

MCP_FNS_USER_AGENT

HTTP 客户端 User-Agent

atomno-mcp-fns-check/0.1 (+https://github.com/atomno-labs/mcp-fns-check)

MCP_FNS_LOG_LEVEL

日志级别 (DEBUG/INFO/WARNING/ERROR)

INFO

模板为 .env.example


FNS 本地登记处

虚假地址/负责人/被取消资格人员的登记处是 FNS 开放数据的 CSV/XML 导出文件。该包内置了一个小型种子 (registries_seed.json,合成测试记录)——足以让工具“开箱即用”并在测试 INN 上显示标志。

对于生产环境检查,请通过 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

开放数据源:

默认情况下,CLI 在 --dry-run 模式下运行(解析并打印样本);写入需要明确的 --commit。元字段 <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/ 中的本地固定装置调用。


限制

  • 没有负责人的历史记录 — FNS 不通过搜索 API 提供变更历史;完整历史将在加载 EGRUL 开放数据切片后出现(计划在 v0.5+ 中实现)。

  • FSSP / KAD 有时会阻止 CAPTCHA / 反机器人机制。在这种情况下,检查会落入 errors[],总结论变为 manual_review_required

  • 透明商业 仅提供事实(“有债务”/“未提交报告”),不提供金额。金额需要向税务局查询。

Pro-tier(atomno-mcp-fns-check-server 中的托管后端——闭源)通过以下方式消除了这些限制:24 小时 Redis 缓存、绕过 CAPTCHA 的代理轮换、完整的 EGRUL 开放数据切片、最多 100 个 INN 的批量检查、通过 LLM 进行 AI 总结。后端本身未发布。


安全与法律地位

  • 所有数据源均为 FNS 及相关登记处的公开数据。根据第 149-FZ 号联邦法《关于信息、信息技术和信息保护》使用是合法的。

  • 法人实体和个体工商户 不属于 第 152-FZ 号联邦法(关于个人数据)的范畴。

  • 负责人个人的姓名由 FNS 在 EGRUL 中公开;在出站响应中,负责人个人的 INN 会被掩码处理(格式为 XXX*****YY)。

  • 不会对任何外部 API 进行写操作。

  • 不需要任何凭据/令牌——数据源完全公开。


免责声明

本服务是 FNS 公开数据的聚合器和便捷接口。与俄罗斯联邦税务局、EFRSB、KAD、FSSP 无关联。使用风险自负。

服务响应中的信息 不能替代 全面的法律或财务评估。与交易对手签订合同的决定由您自行做出。


许可

MIT — 见 LICENSE


链接

A
license - permissive license
A
quality
B
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
2wRelease cycle
7Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Central Bank of Russia (CBR) data for AI agents — daily and historical currency rates, key rate, inflation, and macro statistics. Five typed MCP tools, in-memory TTL cache, MIT-licensed, no API key required.
    5
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Russian state registries EGRUL (legal entities) and EGRIP (individual entrepreneurs), built on official Federal Tax Service open-data dumps. Self-hosted via local SQLite.
    8
    2
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    MCP server that provides 31 tools for the DaData API, enabling address autocomplete, company lookup, bank details, phone/email/passport validation, car recognition, geocoding, and reference directory queries.
    31
    19
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for verifying Polish business entities from the National Court Register (KRS) and VAT White List. Allows querying by KRS, NIP, or REGON to retrieve official company data including name, address, board, and capital.
    Apache 2.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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-mcp/mcp-fns-check'

If you have feedback or need assistance with the MCP directory API, please join our Discord server