mcp-fns-check
atomno-mcp-fns-check
ロシアの取引先(法人および個人事業主)を連邦税務局(FNS)の公開データ(EGRUL/EGRIP、EFRSB、「Transparent Business」、FSSP、KAD)を通じて検証するためのMCPサーバー。
Claude Desktop、Cursor、Claude Code、Cline、その他Model Context Protocol (MCP)互換クライアントに接続可能です。
目的
AIエージェント(Claude、Cursorなど)は通常、ロシアの取引先に関する情報を持ち合わせていません。EGRULは検索エンジンで適切にインデックスされておらず、FNSの「Transparent Business」のデータはPOSTリクエストとCAPTCHAの背後にあり、EFRSBはHTMLを返します。このMCPサーバーは、エージェントに7つのツールを提供し、1回の呼び出しで全体像を把握できるようにします:
基本情報:名称、住所、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を介して通信します。シェルから直接操作するのではなく、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-checkCline (VS Code)
cline_mcp_settings.json に以下を追加します:
{
"mcpServers": {
"fns-check": {
"command": "atomno-mcp-fns-check",
"disabled": false,
"autoApprove": []
}
}
}ツール
ツール | 用途 | 入力 | ソース |
| メイン。 識別子による完全な検証 + 確定的な判定と推奨事項 |
| 全5種 |
| EGRUL基本カード |
| egrul.nalog.ru |
| OGRN/OGRNIPによる基本カード |
| egrul.nalog.ru |
| 存続状況の取得(詳細情報付き) |
| EGRUL + EFRSB |
| OKVEDコードと解説 |
| EGRUL + OKVED-2辞書 |
| 現在の代表者(Open Dataに基づく履歴) |
| EGRUL |
| 8つのリスクチェック(基本4 + 拡張4) |
| 全5種 |
使用される公開ソース:
egrul.nalog.ru — EGRUL/EGRIP、取引先カード。
bankrot.fedresurs.ru — EFRSB(連邦破産情報登録簿)。
pb.nalog.ru — FNS「Transparent Business」(税務債務、報告書未提出)。
fssp.gov.ru — FSSP強制執行手続きデータベース。
kad.arbitr.ru — 仲裁事件カードインデックス。
FNSレジストリのローカルスライス — 大量登録住所、大量登録代表者、資格剥奪者(
atomno-mcp-fns-etlスクリプトによりFNS 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"
}ソース障害時の動作
EGRULは唯一の blocking(必須)ソースです。利用できない場合、
check_contractorはSourceUnavailableErrorを発生させます(エージェントは人間が読めるメッセージを受け取ります)。その他のソースは best-effort(可能な限り)で統合されます。FSSPのCAPTCHA、KADのアンチボット、pb.nalog.ruの5xxエラーなどはすべて
risks.errors[]に格納され、レポート自体は失敗しません。上位レベルの判定はmanual_review_requiredになります。
設定
すべての設定は環境変数を通じて行います。認証情報は不要です(ソースは公開されているため)。
変数 | 説明 | デフォルト |
| キャッシュ用SQLiteファイルのパス |
|
| レジストリ用SQLiteファイルのパス |
|
| キャッシュされたカードのTTL(時間) |
|
| HTTPタイムアウト(秒) |
|
| HTTPクライアントのUser-Agent |
|
| ログレベル (DEBUG/INFO/WARNING/ERROR) |
|
テンプレートは .env.example を参照してください。
FNSローカルレジストリ
大量登録住所/代表者/資格剥奪者のレジストリは、FNS Open Dataの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 --commitOpen 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 モードで動作します(解析してサンプルを表示)。書き込みには明示的な --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のOpen Dataスライスをロードした後に利用可能になります(v0.5以降で計画中)。
FSSP / KADのブロック — CAPTCHAやアンチボットによりブロックされることがあります。その場合、チェックは
errors[]に入り、全体的な判定はmanual_review_requiredになります。Transparent Business — 金額なしで事実(「債務あり」/「報告書未提出」)のみを提供します。金額はIFNS(税務署)への問い合わせが必要です。
Pro-tier(atomno-mcp-fns-check-server でのホスト型バックエンド)では、Redis 24時間キャッシュ、CAPTCHA回避のためのプロキシローテーション、EGRULの完全なOpen Dataスライス、最大100件のINNバッチチェック、LLMによるAI要約を通じてこれらの制限を解消します。バックエンド自体は公開されていません。
セキュリティと法的地位
すべてのソースは、FNSおよび関連レジストリの公開データです。連邦法第149号「情報、情報技術および情報保護について」に基づき合法的に使用されています。
法人および個人事業主は、第152号連邦法(個人情報保護法)の対象外です。
代表者の氏名はFNSによりEGRULで公開されています。アウトバウンドの応答では、代表者のINNはマスクされます(
XXX*****YY形式)。外部APIへの書き込み操作は一切行いません。
認証情報やトークンは不要です。ソースは完全に公開されています。
免責事項
本サービスは、FNSの公開データに対するアグリゲーターおよび便利なインターフェースです。ロシア連邦税務局、EFRSB、KAD、FSSPとは提携していません。自己責任でご利用ください。
本サービスの回答に含まれる情報は、完全な法的または財務的評価に代わるものではありません。取引先との契約締結の決定は、お客様自身が行ってください。
ライセンス
MIT — LICENSE を参照してください。
リンク
GitHub: atomno-labs/mcp-fns-check
atomnoブランドのその他のMCPサーバー: atomno.ruカタログ(近日公開)
MCP仕様: modelcontextprotocol.io
Maintenance
Related MCP Servers
- AlicenseAqualityAmaintenanceCentral 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.52MIT
- AlicenseAqualityAmaintenanceMCP 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.82MIT
- AlicenseAqualityFmaintenanceMCP 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.31192MIT
- AlicenseNot gradedqualityCmaintenanceMCP 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
Related MCP Connectors
Remote MCP server to enrich company profiles with structured B2B data and confidence scores.
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
Conformance checker for MCP servers. Free, no key, verdicts recomputable and re-measured daily.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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