mcp-borme について
mcp-borme は公開 OpenMercantil API を基盤とする読み取り専用サーバーで、AI アシスタントにスペインの商業登記公報 BORME の情報を提供します。企業、人、業種、入札、商事法を扱い、結果の省略や情報源の制約も示します。
主な機能
- 01企業検索と登記履歴の確認
- 02役員、関係、企業活動の照会
- 03日刊 BORME 公報の閲覧
- 04CNAE による業種・企業の検索
- 05入札と商事法規範の検索
- 06出典表示付きの読み取り専用ツール
活用シーン
- 01スペイン企業と登記事項の調査
- 02企業役員と関係グラフの確認
- 03業種や県による企業の絞り込み
- 04公共調達と関連法令の検索
MCP 対応
MCP クライアント向けに、OpenMercantil の企業登記、公報、業種、入札、法律情報を照会する 37 個の読み取り専用ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @nubiia/mcp-bormeOPENMERCANTIL_API_KEYシークレットOptional OpenMercantil API key (omk_...). Without it the server uses the anonymous free tier (60 requests/min, 200/day per IP).OPENMERCANTIL_MAX_REQUESTS_PER_MINUTELocal cap on requests per minute across all tools. Defaults to 60 (the anonymous tier limit); raise it for paid plans.OPENMERCANTIL_MAX_RESPONSE_CHARSMaximum size of a tool response in characters; larger results are cut with a notice. Defaults to 60000.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
37掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | はい | 会社名(またはその先頭部分)、別名、正確な CIF。例:"Telefónica de España" または "A82018474"。自然人識別子(DNI/NIE)は常に結果が 0 件になります。 |
| limit | integer | いいえ | 返す結果数。1~100(デフォルト 10)。 |
| offset | integer | いいえ | ページネーションのオフセット。0~1000(デフォルト 0)。 |
詳細
MCP BORME
スペインの商業登記公報である BORME(Boletín Oficial del Registro Mercantil)向けの Model Context Protocol(MCP)サーバーです。公開 OpenMercantil API を基盤として構築されています。Claude などの AI アシスタントを使って、スペイン企業の検索、登記履歴や役員の確認、日刊公報の閲覧、CNAE による業種のマッピング、公共調達の確認、各登記事項の根拠となる商法規範の参照ができます。
Nubiia が構築・保守しています — ビジネス向けの自動化と AI 連携(MCP、Holded、Pipedrive など)。貴社でもこのようなものをご希望ですか? nubiia.es までお問い合わせください。
独立した情報提供サービスです。 OpenMercantil は BOE、BORME、Registro Mercantil ではなく、そのデータは公式証明書や登記簿謄本の 代わりにはなりません。BORME の情報は Ley 37/2007 に基づいて再利用されています。公式版は boe.es に掲載されています。ツールの応答には出典の帰属情報 (
_attributions)が含まれ、ツールの説明にも資料に関する注意事項と、法的助言ではない旨が記載されています。
アカウント不要
OpenMercantil API は公開されているため、このサーバーは匿名の無料枠(IP ごとに毎分 60 リクエスト、1 日 200 リクエスト)ですぐに利用できます。任意の API キー
(OPENMERCANTIL_API_KEY、omk_...、openmercantil.es から取得)を設定すると、アカウントのより大きな利用枠が適用されます。
| プラン | 毎分 | 1 日あたり |
|---|---|---|
| Free(匿名、IP ごと) | 60 | 200 |
| Profesional(API キー) | 120 | 5,000 |
| MAX(API キー) | 600 | 50,000 |
| Enterprise(契約) | 1,200 | 500,000+ |
プランは変更される場合があります。openmercantil.es と
docs/api-notes.md をご覧ください。1 日 200 リクエストの枠でも利用できるよう、このサーバーはリクエストを節約する設計になっています。
- すべての入力を OpenAPI の制約に照らしてローカルで検証するため、不正な呼び出しでリクエストを消費することはありません。
- 結果件数は少なめ(結果 10 件、イベント 10 件、州ごとに登記事項 10 件)に設定されています。また、大きなペイロードは明示的な通知付きで切り詰められます(
events_total、events_truncated、total_actsなど)。これにより、アシスタントは表示されなかった情報と、残りを取得するためのページング用ツールを把握できます。完全な企業レポート(約 60 KB)は約 6 KB で返され、公報の 1 日分(約 340 KB)は州ごとの要約として返されます。 OPENMERCANTIL_MAX_RESPONSE_CHARS(デフォルトは 60,000)を超える応答は、切り詰められたことを示す有効な JSON エンベロープに置き換えられます。- 応答には API のレート制限の状態が含まれます。
429が返された場合は、プラン、再試行のタイミング、より大きな利用枠を得る方法が示されます。短いRetry-After値は自動的に遵守されます。長い値(1 日の利用枠)は処理をブロックせず、すぐに通知されます。
機能
読み取り専用ツールを37個提供します。すべて readOnlyHint: true としてマークされており、このサーバーから
OpenMercantilやその他の場所に書き込みが行われることはありません。
- 企業(11):
borme_search_companies、borme_get_company、borme_compare_companies、borme_get_company_events、borme_get_company_facts、borme_get_company_timeline、borme_get_company_officers、borme_get_company_relationships、borme_get_company_graph、borme_get_company_activity、borme_get_similar_companies - 企業ごとのその他の公開情報源(7):
borme_get_company_contracts、borme_get_company_grants、borme_get_company_ted、borme_get_company_cnmv、borme_get_company_wikidata、borme_get_company_bde、borme_get_company_sources - 日次公報(1):
borme_get_daily_summary - 人物(3):
borme_search_persons、borme_get_person、borme_get_person_graph - セクター/CNAE(4):
borme_list_sector_companies、borme_get_sector_ratios、borme_get_cnae、borme_get_cnae_tree - 商法(4):
borme_list_legal_norms、borme_get_legal_norm、borme_get_legal_article、borme_get_act_map - 公共調達(4):
borme_search_tenders、borme_get_tender、borme_get_tender_stats、borme_list_tender_suppliers - サービス(3):
borme_get_health、borme_get_stats、borme_get_sources_freshness
意図的に対象外としているもの
OpenMercantilの公開読み取り機能に含まれないものはすべて対象外です。ユーザーアカウント、リスト、
メモ、セグメント、API認証情報とWebhookの管理、請求、サポートチケット、法律レポートの購入フローが該当します
(いずれもデータを書き込むか、ブラウザーセッションが必要です)。また、バルク
export/* とCSVダウンロード、レガシーエイリアス、集計ダッシュボード
(ccaa/stats、sectores/stats、datasets/public、integrations)、企業ごとの
リスクシグナルエンドポイント(制裁、差し押さえ、AEAT債務者、スコア)も対象外です。これらは、
公開APIの許可リストに登録された認証情報スコープに含まれていません。
インストール
前提条件
- Node.js 22.14以降
- 任意で、openmercantil.es のOpenMercantil APIキー
npmからインストール
npm install -g @nubiia/mcp-borme
ソースからインストール
git clone https://github.com/nubiia-dev/mcp-borme.git
cd mcp-borme
npm install
npm run build
設定
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
OPENMERCANTIL_API_KEY | いいえ | OpenMercantil APIキー(omk_...)。シークレットです。絶対にコミットしないでください。指定しない場合は、匿名の無料プランが使用されます。X-API-Key ヘッダーで送信され、URLには含まれません。また、エラーメッセージからは除去されます。 |
OPENMERCANTIL_MAX_REQUESTS_PER_MINUTE | いいえ | すべてのツールを通じた、1分あたりのリクエスト数のローカル上限です。デフォルトは60(匿名利用の上限)です。有料プランでは上限を引き上げられます。 |
OPENMERCANTIL_MAX_RESPONSE_CHARS | いいえ | 1つのツールレスポンスの最大サイズです。デフォルトは60000です。これを超える結果は、通知を付けて切り詰められます。 |
OPENMERCANTIL_BASE_URL | いいえ | APIホストを上書きします(ミラー、ローカルモック用)。http://localhost を除き、https のみ使用できます。 |
export OPENMERCANTIL_API_KEY=omk_your_key # optional
Claude Desktopの設定
Claude Desktopの設定ファイルに追加します。
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"borme": {
"command": "npx",
"args": ["-y", "@nubiia/mcp-borme@latest"],
"env": {
"OPENMERCANTIL_API_KEY": "omk_your_key"
}
}
}
}
キーを使用しない場合は、env ブロック全体を削除してください。ソースからインストールした場合は、次のようにします。
{
"mcpServers": {
"borme": {
"command": "node",
"args": ["/path/to/mcp-borme/dist/index.js"]
}
}
}
Claude Codeの設定
# anonymous free tier
claude mcp add borme -- npx -y @nubiia/mcp-borme@latest
# with an API key
claude mcp add borme --env OPENMERCANTIL_API_KEY=omk_your_key -- npx -y @nubiia/mcp-borme@latest
トラブルシューティング
- このリポジトリ内から起動すると
sh: mcp-borme: command not foundが表示されます。 クローンしたリポジトリのディレクトリから Claude Code(または別の MCP クライアント)を起動すると、npx @nubiia/mcp-bormeは公開済みパッケージではなく、ローカルのpackage.jsonを参照するため、mcp-bormeバイナリがPATH上に見つかりません。上記の例のように@latestを指定してレジストリのバージョンを固定するか、別のディレクトリからクライアントを起動してください。 - 最近の日付や企業が見つからないようです。 OpenMercantil のデータセットは定期的に再構築されるため、公式公報の情報より遅れていることがあります。
borme_get_health(latest_borme_processed、status)を呼び出して、データの鮮度を確認してください。 - 助成金/TED/CNMV/Wikidata/sources で
503 projection_unavailableが表示されます。 これらのツールは、OpenMercantil がオフラインにする場合のある統合プロジェクションを参照します。これはサーバー側の状態であり、その企業に該当する記録がないことを示すものではありません。
ツール
推奨される流れ:borme_search_companies → borme_get_company → 詳細ツール。
企業ツールには、検索結果で返される slug を指定します(例:telefonica-de-espana-sa)。
borme_search_companies · 読み取り専用
名前の先頭部分、別名、または完全一致する CIF で検索します。slug、CIF、県、CNAE、資本金(セント単位)、BORME への初回/最終掲載日、行為の件数を返します。DNI/NIE は一致しません。
{ "q": "Telefónica de España", "limit": 5 }
borme_get_company · 読み取り専用
BORME の完全なレポートです。基本情報、KPI、活動のタイムライン、主なイベント種別、最新のイベント(events_limit、デフォルトは 10。レスポンスには events_total が含まれます)、現任および過去の役員を確認できます。履歴全体をページごとに取得するには、borme_get_company_events を使用してください。
borme_get_company_events · 読み取り専用
1 社の暦年ごとの BORME 行為を、ページネーション付きで取得します(year、デフォルトは現在の年。page、page_size ≤ 100)。total と pages を確認してください。
{ "slug": "telefonica-de-espana-sa", "year": 2025, "page_size": 20 }
borme_get_company_facts、borme_get_company_timeline、borme_get_company_officers、borme_get_company_relationships、borme_get_company_graph、borme_get_company_activity、borme_get_similar_companies、borme_compare_companies
行為種別ごとの構造化された事実情報、登記と調達を統合したタイムライン、役員、文書上の関係(type/confidence で絞り込み可能)、企業グループのグラフ、月ごとの活動系列、同じ県および CNAE 区分の同業企業、2 社の比較を取得します。いずれも文書に基づく情報です。記載があっても、現在の状況を証明するものではありません。
borme_get_company_contracts、_grants、_ted、_cnmv、_wikidata、_bde、_sources
公共調達(PLACSP)、補助金(BDNS)、EU の入札(TED)、株式市場への上場(CNMV)、Wikidata の識別子、Banco de España の業種別比率、およびこれらの情報源のカバレッジマップを取得します。結果が空でも、該当情報が存在しないことを証明するものではありません。
borme_get_daily_summary · 読み取り専用
日付ごとに、セクションおよび県別に BORME の公示内容を取得します。1 日に数千件の行為が掲載されることがあるため、レスポンスには正確な件数と、県ごとの最初の limit 件の行為(デフォルトは 10)が含まれます。province/section("1" は登記された行為、"2" は告示)で絞り込めます。日曜日と祝日は公報が発行されないため、404 が返されます。
{ "date": "2026-07-07", "province": "Madrid", "limit": 20 }
borme_search_persons、borme_get_person、borme_get_person_graph
人物は文書上の名前の記載としてのみ表示されます(通常は役員)。同姓同名の人物は同じ slug を共有し、本人確認は行われません。また、DNI、住所、連絡先情報は公開されません。
borme_list_sector_companies、borme_get_sector_ratios、borme_get_cnae、borme_get_cnae_tree
CNAE セクターの企業(任意で県による絞り込み可)、2 桁区分ごとの Banco de España の集計比率、コードのメタデータ、コード階層を取得します。
borme_list_legal_norms、borme_get_legal_norm、borme_get_legal_article、borme_get_act_map
統合版の商事法規(BOE の本文)と、各 BORME 行為種別を適用法に対応付ける情報を取得します。情報提供のみを目的としており、法律上の助言ではありません。
borme_search_tenders, borme_get_tender, borme_get_tender_stats, borme_list_tender_suppliers
CPV/フェーズ/県/発注者/サプライヤー/金額/日付で絞り込める公共調達の公告と、カーソルページネーションに対応しています。API では一部のフィルターの組み合わせ(フリーテキストと構造化フィルター、cpv と日付以外の条件)が拒否され、422 エラーがそのまま返されます。
borme_get_health, borme_get_stats, borme_get_sources_freshness
データセットの規模と鮮度を確認できます。「公開されていない」と断定する前に確認しておくと便利です。
レート制限
ローカルのガード機能により、エージェントのループが暴走して1日の上限を使い切るのを防ぎます。
| 対象 | 上限 |
|---|---|
| すべてのツールの合計 | OPENMERCANTIL_MAX_REQUESTS_PER_MINUTE(デフォルトは60回/分) |
| 各ツール | 30回/分 |
429/502/503/504 の応答と、接続拒否/DNS エラーはバックオフ付きで再試行されます(3回)。タイムアウトと接続リセットは、割り当てを無駄にしないよう再試行されません。各試行は30秒でタイムアウトします。
エラーメッセージ
エラーには対処方法が記載されます。429 にはプラン、再試行時刻、匿名利用時の上限が含まれます。401/403 では OPENMERCANTIL_API_KEY が案内されます。企業または個人に関する 404 では、OpenMercantil が非公開情報や個人の身元を確認しないことが説明されます。すべてのエラーメッセージで API キーは伏せられます。
開発
npm install
npm run build
npm test # runs entirely against mocks — no network, no API key
npm run test:coverage
npm run lint
node scripts/smoke.mjs # live smoke test against the real API (about 10 requests)
詳しいワークフローについては CONTRIBUTING.md、ライブサービスで検証した API の動作については docs/api-notes.md を参照してください。
ライセンス
MIT。OpenMercantil が提供するデータには、各レスポンスおよび openmercantil.es/terminos-de-uso に記載された、データソース固有の利用規約が適用されます。
関連
@nubiia/mcp-newsapi— NewsAPI.ai(Event Registry)ニュース API 用の MCP サーバー。@nubiia/mcp-holded— Holded の請求書/会計 API 用の MCP サーバー。@nubiia/mcp-signaturit— Signaturit の電子署名 API 用の MCP サーバー。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。