Ares (czech Business Registry) Mcp — Ares Mcp について
ares-mcpは、MCPクライアントからチェコの公開企業登録機関ARESを利用し、企業確認やデューデリジェンスを行うサーバーです。構造化検索、企業間の人物関係、任意の署名付き出典情報に対応し、ローカルまたはHTTPで動作します。
主な機能
- 01IČOの検証と企業検索
- 02企業情報や住所による検索
- 03役員・営業許可・VAT・倒産状況の確認
- 04複数企業にまたがる人物の照合
- 05リスク表示付きデューデリジェンス報告
- 06請求システム向けデータの出力
活用シーン
- 01契約前のチェコ企業の確認
- 02住所に登録された事業者の検索
- 03複数企業で共通する法定役員の確認
- 04請求処理用の企業情報の準備
MCP 対応
stdioまたはStreamable HTTPを通じて、14種類のARES関連ツールをMCPクライアントに公開します。公開ARES APIを照会し、任意で署名と出典情報を含む結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @milos106/ares-mcpARES_PROVENANCE_PRIVATE_KEYシークレットOptional Ed25519 private key (base64 PKCS#8 DER) to enable signed provenance envelopes. Omit to run unsigned.ARES_PROVENANCE_KEY_IDシークレットOptional key id advertised in signed envelopes and the JWKS. Defaults to a thumbprint of the public key.ARES_BASE_URLOptional override of the ARES REST base URL (defaults to the public ares.gov.cz endpoint).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| ico | string | はい | チェコの IČO(Identifikační číslo osoby)。1~8 桁の数字を受け付けます。任意で 'CZ' 接頭辞、空白、ハイフン、ピリオドを含められます。例:'27074358'、'CZ27074358'、'270 743 58'。 |
詳細
ares-mcp
ARES(チェコの企業登録簿)向け MCP サーバーです。 Claude Desktop、Claude Code、Cursor、その他の MCP 互換クライアントから、IČO/DIČ の検証、企業、法定機関、営業許可、住所の検索を直接行えます。
オープンソース(MIT)、セルフホスト可能です。 公開 ARES API を利用して動作するため、検索内容がマシンの外に送信されることはありません。オプションで、誰でもオフラインで整合性と出所を検証できる Ed25519 署名付きの出典付き回答 を出力できます。
ホステッド版: icovazby.cz — 10 以上のチェコの登録簿(ARES、商業登記簿、営業許可、倒産情報、制裁情報など)を横断する、企業チェック用のウェブサービスです。
ARES(Administrativní registr ekonomických subjektů)は、チェコ財務省(MFČR)が運営するチェコ企業の公式公開登録簿です。このプロジェクトは、公開 ARES REST API を呼び出す独立したコミュニティ開発の MCP サーバーです。
チェコ財務省とは無関係です。 このプロジェクトは、MFČR または ARES の運営者と提携、承認、後援関係にありません。「ARES」は公開情報システムを指しており、この MCP サーバーはサードパーティー製ソフトウェアです。
- 無料の MIT ライセンスコードです。 API キーは不要です(ARES は公開 API です)。
- デューデリジェンスと請求書発行のワークフロー全体をカバーする 14 個の安定したツール:検証、検索、構造化検索、住所による検索(バーチャルオフィスの検出)、法定機関、営業許可、VAT チェック、住所の標準化、NACE 検索、RES 統計分類(規模区分、ESA 2010 部門)、倒産チェック、Mermaid と名義人検出用のオプションの履歴モードを備えた企業横断の人物関係グラフ、🟢🟡🔴 のリスクフラグ付きワンショット
ares_full_due_diligenceマクロ、そして POST 用の Fakturoid / iDoklad / Pohoda ペイロードを出力するエクスポートアダプター。 - 2 種類のトランスポートに対応しています。 ローカル AI クライアント向けの Stdio(デフォルト)と、リモート/ウェブ環境へのデプロイ向けの Streamable HTTP(
/mcp)です。 - 検証可能な来歴(オプション)です。 署名キーを設定すると、デューデリジェンス、法定機関、倒産情報の各ツールが署名付きエンベロープを返します。すべての事実に登録簿の出典と日付が含まれ、公開済み JWKS を使ってオフラインで検証できます。これは技術的な整合性と出所の証明であり、適格電子署名や公式な抄本ではありません。
- 防御を考慮した設計です。 レート制限に対応し(トークンバケット+指数バックオフと
Retry-After)、HTTP 版では IP ごとにリクエストをスロットリングし、構造化エラーを返します。デフォルトでは PII を保存も記録もしません。
セットアップ
ares-mcp の実行方法は 2 通りです。どちらかを選んでください。
オプション A — npx(インストール不要、推奨)
{
"mcpServers": {
"ares": { "command": "npx", "args": ["-y", "@milos106/ares-mcp"] }
}
}
オプション B — ソースから実行
git clone [email protected]:milos106/ares-mcp.git
cd ares-mcp
npm install
npm run build
npm test
次に、MCP クライアントで dist/index.js の絶対パスを指定します。以下のクライアントごとの例では、ソースから実行する方法を使っています。インストール不要のセットアップを希望する場合は、"command": "node", "args": ["…/dist/index.js"] を上記の npx 形式に置き換えてください。
Claude Desktop
claude_desktop_config.json を編集します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"ares": {
"command": "node",
"args": ["/absolute/path/to/ares-mcp/dist/index.js"]
}
}
}
Claude Desktop を再起動します。
Claude Code
claude mcp add ares -- node /absolute/path/to/ares-mcp/dist/index.js
Cursor
Cursor の設定 → MCP サーバー:
{
"ares": {
"command": "node",
"args": ["/absolute/path/to/ares-mcp/dist/index.js"]
}
}
すぐに貼り付けられるクライアント設定を取得する
npm run build の実行後、Claude Desktop、Cursor、Claude Code、ローカル HTTP トランスポート用の絶対パスを含む設定ブロックが出力されます。
npm run config
JSON ブロックをそのままクライアントの MCP 設定にコピーします。パスの編集は不要です。
MCP Inspector で対話的に試す
npm run inspector
(npx @modelcontextprotocol/inspector node dist/index.js と同等です。)
http://localhost:6274 でブラウザー UI が開きます。クライアントの設定は不要で、ツールの一覧表示、引数の入力、ライブ ARES に対する実行ができます。
ローカル HTTP サービスとして実行する
2 つ目のエントリーポイントでは、同じツールを MCP Streamable HTTP 経由で公開します。1 つの実行中インスタンスを複数のローカルクライアントで共有する場合に便利です。
PORT=3030 npm run start:http
エンドポイント:
POST /mcp— Streamable HTTP トランスポート(HTTP / SSE 上の JSON-RPC)GET /healthz— 稼働状況 + セッション数
環境変数による設定:
| 変数 | デフォルト | 説明 |
|---|---|---|
PORT | 3030 | リッスンポート |
ARES_HTTP_RATE_LIMIT | 60 | IP あたりの 1 分間のリクエスト数(トークンバケット) |
ARES_HTTP_MAX_BODY | 1000000 | リクエスト本文の最大バイト数 |
ARES_HTTP_SESSION_TTL_MS | 3600000 | アイドルセッションのタイムアウト |
ARES_HTTP_ALLOW_ORIGIN | (未設定) | 設定すると、Access-Control-Allow-Origin として送信されます(例:* または https://example.com) |
組み込みの認証機能はありません。公開する必要がある場合は、127.0.0.1 のみにバインドするか、前段にリバースプロキシを配置してください。
ツール
| ツール | 目的 |
|---|---|
ares_validate_ico | Mod-11 チェックサムの検証。ネットワーク呼び出しはありません。 |
ares_lookup_company | IČO による企業プロフィールの集約取得。 |
ares_search_companies | 名称、郵便番号、NACE、法人形態による構造化検索。 |
ares_get_statutory_bodies | 取締役、役員、パートナー(VR から取得)。 |
ares_get_trade_licenses | 営業許可(RŽP から取得)。 |
ares_check_vat_payer | VAT 納税者ステータスと、任意の DIČ 照合。 |
ares_standardize_address | RÚIAN を使って自由形式の住所を標準化します。 |
ares_lookup_cz_nace | CZ-NACE 分類の検索。 |
ares_cross_company_persons | 2~50 件の IČO を指定し、そのうち 2 社以上で有効な法定役職に就いている人物を検索します。JSON と Mermaid グラフを返します。 |
ares_search_by_address | 指定した住所にあるすべての事業体を検索します。バーチャルオフィスや住所上の集中を判定します。 |
ares_get_res_classification | RES による統計分類 — 事業規模区分、ESA 2010 セクター、NUTS 地域。 |
ares_check_insolvenci | 簡易的な危険信号チェック:事業体が現在、倒産手続き中(IR)か、破産として記録されているか(CEÚ)を確認します。 |
ares_full_due_diligence | ワンショットの DD レポート — プロフィール + 法定役員 + 許可 + VAT + 倒産情報 + 🟢🟡🔴 リスクフラグ + Markdown の要約。 |
ares_export_for_invoicing | ARES プロフィールを、請求システム向けの Fakturoid / iDoklad / Pohoda ペイロードに変換します。純粋な変換処理であり、対象システムへの呼び出しはありません。 |
プロンプトの例
「IČO 27074358 を検証し、VAT 納税者かどうか、どの地域に拠点があるかを教えてください。」
「プラハに登記されているチェコの IT 企業(CZ-NACE 620)を探してください。」
「IČO 26168685 の法定取締役は誰ですか?いつ任命されましたか?」
「この住所を標準化してください:『Za prachárnou 4962/45, Jihlava』。」
「ソフトウェア開発の CZ-NACE コードを調べてください。」
「IČO 26185610、46967851、46900411、27435148 があります。複数の会社の取締役会に名を連ねている人物はいますか?図にしてください。」
「IČO 45193258 について、契約に署名する前に完全なデューデリジェンスチェックを実施してください。」
DD プロンプトは ares_full_due_diligence を呼び出し、リスクフラグ付きの完全なレポートを返します。実例(Liberty Ostrava a.s.、2026-06-07 に取得):
# Due diligence: Liberty Ostrava a.s.
Risk level: 🔴 RED
Findings:
- 🚨 Active insolvency or bankruptcy on record.
## Identification
- IČO: `45193258`
- DIČ: `CZ45193258` (VAT payer: yes)
- Legal form: 121
- Founded: 1992-01-22
- Registered seat: Vratimovská 689/117, Kunčice, 71900 Ostrava
## Governance
- Active statutary members: 3
## Insolvency
- Insolvenční rejstřík: ACTIVE
- Centrální evidence úpadců: NONE
- Currently insolvent.
同じプロンプトを健全な企業(AGROFERT、IČO 26185610)に対して実行すると、有効な法定役員 12 名が確認され、指摘事項なしの 🟢 GREEN が返されます。
最後のプロンプトは ares_cross_company_persons を使用します。このツールが返す Mermaid グラフは、Claude Desktop、Claude Code、Cursor でインライン表示されます。上記の Agrofert 持株会社の例では、Michal Jedlička が 4 社中 3 社の取締役会に、Jaroslav Kurčík が 2 社の取締役会に名を連ねていると報告されます。これは典型的な持株会社グループの特徴です。
person→companies 検索に関する注意
ARES の公開 REST v3 API には、人物による検索エンドポイントはありません(AngazovanaOsobaFiltr スキーマは定義されていますが、使用されていません)。そのため、ares_cross_company_persons は、指定した既知の IČO の集合を対象に動作します。登記簿全体を列挙するものではありません。完全な逆引き検索(「Jan Novák はこれまでどの企業の役員を務めたか」など)には、ミラーリングされたグラフデータベースが必要であり、この MIT ライセンスのサーバーの対象範囲外です。
実例 — Agrofert ホールディング
Agrofert グループの IČO を4件(AGROFERT 自体と子会社3社)指定して ares_cross_company_persons を実行すると、ツールは役員の重複をすべて返します。2026-06-07 にライブ ARES 呼び出しから取得した内容です。
zpracovanoIco: 4
totalActivePersons: 29
sharedCount: 3
• Ing. MICHAL JEDLIČKA (1978-01-06)
AGROFERT, a.s. — člen představenstva
Kostelecké uzeniny a.s. — předseda představenstva
Vodňanské kuře, s.r.o. — Jednatel
• Ing. JAROSLAV KURČÍK (1969-08-24)
AGROFERT, a.s. — člen představenstva
PENAM, a.s. — předseda představenstva
• AGROFERT, a.s. (právnická osoba, IČO 26185610)
PENAM, a.s. — člen představenstva
Kostelecké uzeniny a.s. — člen představenstva
Mermaid として表示すると次のようになります(Claude Desktop/Claude Code/Cursor はこれをインラインでレンダリングします)。
graph LR
C_26185610["AGROFERT, a.s.<br/>26185610"]:::company
C_46967851["PENAM, a.s.<br/>46967851"]:::company
C_46900411["Kostelecké uzeniny a.s.<br/>46900411"]:::company
C_27435148["Vodňanské kuře, s.r.o.<br/>27435148"]:::company
P_0(["Ing. MICHAL JEDLIČKA"]):::person
P_0 ---|"člen představenstva"| C_26185610
P_0 ---|"předseda představenstva"| C_46900411
P_0 ---|"Jednatel"| C_27435148
P_1(["Ing. JAROSLAV KURČÍK"]):::person
P_1 ---|"člen představenstva"| C_26185610
P_1 ---|"předseda představenstva"| C_46967851
P_2["AGROFERT, a.s. (IČO 26185610)"]:::legal
P_2 ---|"člen představenstva"| C_46967851
P_2 ---|"člen představenstva"| C_46900411
classDef company fill:#e0f7fa,stroke:#006064,stroke-width:2px;
classDef person fill:#fff3e0,stroke:#bf360c,stroke-width:2px;
classDef legal fill:#f3e5f5,stroke:#4a148c,stroke-width:2px;
3つ目のつながりは、AGROFERT a.s. 自体が2つの子会社で法人役員として記載されているという、実際の持株会社のパターンです。企業ごとの一覧では見落とされますが、グラフヘルパーによって自動的に明らかになります。
設定
サーバーは、次の任意の環境変数を読み込みます。
| 変数 | デフォルト値 | 説明 |
|---|---|---|
ARES_BASE_URL | https://ares.gov.cz/ekonomicke-subjekty-v-be/rest | API のベース URL |
ARES_RATE_PER_SECOND | 5 | トークンバケット方式の予算です。MFČR が公表している上限は500リクエスト/分(約8リクエスト/秒)です。余裕を持たせるため、デフォルト値は5にしています。8を超えないでください。 |
ARES_TIMEOUT_MS | 15000 | リクエストごとのタイムアウト |
ARES_RETRIES | 3 | 再試行可能なエラーに対する再試行回数(初回の試行に加えて) |
エラー処理
エラーは、エージェントが内容を判断できるよう、ツールの結果内の JSON ペイロード(isError: true を含む)として返されます。コードは次のとおりです。
| コード | 発生条件 |
|---|---|
NOT_FOUND | IČO またはリソースが ARES に存在しません。 |
INVALID_INPUT | 入力の検証に失敗しました(例:IČO のチェックサム、検索フィルターの不足)。 |
RATE_LIMITED | ARES が 429 を返し、再試行を使い切りました。 |
UPSTREAM_ERROR | ARES が 5xx を返しました。 |
NETWORK_ERROR | リクエストがタイムアウトしたか、送信できませんでした。 |
データの帰属表示とライセンス
ARES のデータは、チェコ財務省がオープンデータとして、Creative Commons Attribution 4.0 (CC BY 4.0) ライセンスのもとで公開しています。これらのツールの出力を独自の製品、コンテンツ、分析に使用する場合は、出典を表示する必要があります。
推奨する帰属表示:
出典:ARES — Administrativní registr ekonomických subjektů, © Ministerstvo financí ČR, https://ares.gov.cz/, CC BY 4.0 ライセンスに基づき使用。
各ツールの結果には、便宜上、引用情報一式を含む _attribution フィールドが含まれています。
この MCP サーバーのコードは MIT ライセンスのもとで公開されています(LICENSE を参照)。上流のデータライセンス(CC BY 4.0)はこのコードライセンスとは独立しており、このコードライセンスの影響を受けません。
ARES API の適正な利用
MFČR は ARES 公開 API の運用規則を公開しています。この MCP サーバーを使用しても、それらの規則が免除されるわけではありません。クライアントは規則を遵守する必要があります。概要は次のとおりです。
- ユーザーあたり最大500リクエスト/分です。これを超える場合、MFČR はアクセスをブロックする権利を有します。
- 形式の誤ったクエリを繰り返し実行しないでください。
- 自動クエリを過剰に並行実行しないでください。
- 複数の IP アドレスを使用してレート制限を回避しないでください。
- データベースを無作為にクロールしないでください(例:IČO の大量列挙)。
- セキュリティ境界を調査しないでください。
このサーバーはデフォルトで5リクエスト/秒の予算を適用し、指数バックオフを使用します。複数のインスタンスを実行する場合は特に、MFČR の制限を合計で超えないようにする責任は利用者にあります。
運用条件の全文:wwwinfo.mfcr.cz/ares/ares_podminky.html.cz。
免責事項
- データは公開情報ですが、法的手続きにおける正式な証拠ではありません。 MFČRによると、ARESからのすべての情報は「pouze informativního charakteru」(参考情報のみ)です。裁判所で使用する場合は、justice.czの公開登記簿から正式な抄本を取得してください。
- ARESのVAT納税者ステータスは、最大24時間遅れることがあります。 正式な情報源は、adisspr.mfcr.czにあるMFČRのVAT登録簿です。将来のPremiumプランでは、MFČRへの直接確認が追加される可能性があります。
- GDPR。 ARESには法定代表者の個人データ(氏名、生年月日)が含まれています。このデータの公開は、MFČRにおける公的任務の遂行を法的根拠(GDPR第6条1項(e))としています。このデータを後続処理する場合(ご自身のLLMへの引き渡し、保存、エンドユーザーへの表示を含みます)、お客様がデータ管理者となり、ご自身でGDPRを遵守する必要があります。このサーバーは、デフォルトではリクエストを記録せず、レスポンスを保存しません。
ロードマップ
- v0.x(現行): 無料のMVPツール8種、MITライセンス、npmで配布。
- Premiumプラン(予定):
ares_subscribe_changes、ares_bulk_lookup、ares_due_diligence_report、ares_export_to_invoice_systems。
コントリビューション
バグ報告やPRを歓迎します。提出前に次を実行してください。
npm run lint
npm run typecheck
npm test
リンク
- icovazby.cz — ホスト型企業チェック
- ARESポータル
- ARES OpenAPI仕様
- ARES Swagger UI
- Model Context Protocol
- MCP TypeScript SDK
ライセンス
MIT © Miloš Pospíšil
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。