disclosures について
disclosuresは、企業の提出書類、インサイダー、所有者、財務、所有権チェーンを調べるオープンソースのMCPサーバー兼TypeScriptライブラリです。公式情報を21の管轄ルートから取得し、結果を原資料に結び付けます。AIエージェントやTypeScript開発者向けです。
主な機能
- 01安定した調査ツール10種類
- 0221の管轄ルートをカバー
- 03公式資料へのリンクと明示的な対象範囲の説明
- 04stdioとステートレスなStreamable HTTPに対応
- 05TypeScriptライブラリとNode 18+ランタイム
活用シーン
- 01取締役やインサイダー開示の確認
- 02大株主や所有権チェーンの調査
- 03企業提出書類や財務概要の取得
- 04提出書類の本文確認や範囲限定PDFの保存
MCP 対応
企業の特定、提出書類、インサイダー、所有権、財務、文書などを調べる10種類のツールをMCPクライアントに提供します。stdioとステートレスなStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y disclosuresDISCLOSURES_USER_AGENTDescriptive User-Agent with contact info, required only for SEC-backed US operations (e.g. 'Your Org [email protected]'). SEC_EDGAR_USER_AGENT is also accepted.COMPANIES_HOUSE_API_KEYシークレットUK Companies House API key. Required only for GB operations.OPENDART_API_KEYシークレットSouth Korea OpenDART API key. Required only for KR operations.EDINET_API_KEYシークレットJapan EDINET API key. Required only for JP document search; JP resolution is keyless.DBD_API_KEYシークレットThailand DBD API key. Required only for company-name search; exact 13-digit juristic-person lookups are keyless.DISCLOSURES_ACKNOWLEDGE_ASX_TERMSSet to 1 only after reviewing ASX's restrictive terms and confirming you have the rights to use ASX data. ASIC open-data routes remain available without it.DISCLOSURES_ACKNOWLEDGE_PSE_TERMSSet to 1 only after reviewing PSE EDGE's restrictive terms and confirming you have the rights to use PSE data.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
10掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| company | string | はい | 会社名または管轄区域固有の識別子:ティッカー/CIK(US)、Companies House 会社番号(GB)、OpenDART の 8 桁 corp code または 6 桁の株式コード(KR)、EDINET コード(E + 5 桁)、4/5 桁の証券コードまたは 13 桁の法人番号(JP)、6 桁の A 株コードまたは 5 桁の香港株コード(CN、cninfo 経由)、6 桁の BSE scrip code(IN)、4 桁の TWSE 上場コード(TW)、数値の CVM コード(BR)、8 桁の BaFin-Id または ISIN(DE)、SIREN/ISIN/LEI(FR)、4/5 桁の HKEX 株式コード(HK)、シンガポール UEN(SG)、13 桁の法人登録番号(TH)、AFM 登録の発行体名または LEI(NL)、4 文字の IDX ティッカー/kode emiten(ID)、4 桁の Bursa 株式コードまたは発行体名(MY)、BIST 株式コード(TR)、DFM 発行体シンボル(AE)、PSE ティッカーシンボルまたは数値の PSE 会社 ID(PH)、ASX 上場コード/9 桁の ACN/11 桁の ABN(AU)、または 20 文字の LEI |
| jurisdiction | enum | いいえ | 管轄区域ルート。US がデフォルトのため省略できます。使用前に disclosures://jurisdictions/{code} を読み、識別子、認証情報、対応する意図、ソースライセンス、アクセス上の注意事項を確認してください。PH/PSE および AU/ASX のネットワーク経路では、規約への明示的な同意が必要です。AU/ASIC のオープンデータ経路では不要です。US | GB | EU | KR | JP | CN | IN | TW | BR | DE | FR | HK | SG | TH | NL | ID | MY | TR | AE | PH | AU |
詳細
disclosures
AI エージェントと TypeScript 向けの企業開示調査 — 21 の管轄ルート(20 の国別ルートと EU 集約)にわたる 26 の公式情報源から、届出書類、インサイダー、所有者、財務情報、所有権の連鎖を取得します。
disclosures は、無料のオープンソースの Model Context Protocol サーバーであり、TypeScript ライブラリでもあります。「NVIDIA の取締役は誰ですか?」、「Samsung Electronics の株式を 5% 保有しているのは誰ですか?」、「Vale の直近 3 年分の年次決算を見せてください」 といった質問に回答し、すべての回答を公式の原資料にリンクします。
- 安定した 10 個のツール、21 の管轄ルート — 中核となる 6 つのツールは
jurisdictionを介して振り分けられます。OwnershipChainはグローバルに対応し、専門ツール 3 つで届出書類、担保権、個人単位の検索を扱います。対応範囲が拡大しても、ツール名は変わりません。 - 公式情報源のみ — SEC EDGAR、GLEIF、Companies House、FCA NSM、filings.xbrl.org、OpenDART、EDINET、cninfo、SZSE、BSE、TWSE、CVM、BaFin、info-financiere、recherche-entreprises、HKEXnews、ACRA、DBD、AFM、IDX、Bursa Malaysia、KAP、DFM、PSE EDGE、ASX、ASIC。
- 誠実さを設計に反映 — 実際の情報源へのリンクのみを提示し、空の結果や捏造した結果ではなく「ここでは未対応」と明示して回答し、「届出がないことは、存在しない証拠にはならない」という注意事項も明確に示します。
- ランタイムをバンドル — Node 18 以降で使える JavaScript ファイル 1 つ。MCP SDK と Zod はパッケージ依存関係として宣言されているため、TypeScript の利用者はパブリック API で使用される型を受け取れます。
クイックスタート
Node 18 以降が必要です。SEC を利用する米国向けの呼び出しでは、EDGAR の公平なアクセスに関するポリシーに従い、内容が分かる User-Agent が必要です。API キー不要の米国以外のルートでは、User-Agent がなくても実行できます。
npx -y disclosures
Claude Code
claude mcp add --transport stdio disclosures \
--env DISCLOSURES_USER_AGENT="Your Organization [email protected]" \
-- npx -y disclosures
Claude Desktop
claude_desktop_config.json に追加します(Settings → Developer → Edit Config):
{
"mcpServers": {
"disclosures": {
"command": "npx",
"args": ["-y", "disclosures"],
"env": {
"DISCLOSURES_USER_AGENT": "Your Organization [email protected]"
}
}
}
}
Cursor
Claude Desktop と同じ mcpServers ブロックを ~/.cursor/mcp.json(またはプロジェクトごとの .cursor/mcp.json)に追加します。
VS Code(Copilot / MCP)
.vscode/mcp.json に追加します:
{
"servers": {
"disclosures": {
"type": "stdio",
"command": "npx",
"args": ["-y", "disclosures"],
"env": {
"DISCLOSURES_USER_AGENT": "Your Organization [email protected]"
}
}
}
}
その他のクライアント — Windsurf、Codex CLI、Gemini CLI、およびすべての stdio MCP クライアント
Windsurf(~/.codeium/windsurf/mcp_config.json)では、Claude Desktop と同じ mcpServers JSON を使用します。
Codex CLI(~/.codex/config.toml):
[mcp_servers.disclosures]
command = "npx"
args = ["-y", "disclosures"]
env = { DISCLOSURES_USER_AGENT = "Your Organization [email protected]" }
Gemini CLI(~/.gemini/settings.json)では、Claude Desktop と同じ mcpServers JSON を使用します。
その他すべてのクライアント: DISCLOSURES_USER_AGENT 環境変数を設定して、npx -y disclosures を stdio コマンドとして実行します。サーバーは stdout で改行区切りの JSON-RPC を使用します。また、公式 MCP レジストリに io.github.carrotly-ai/disclosures として登録されています。
同じサーバーは、ホスト型またはネットワーク経由のデプロイ向けに、MCP のストリーマブル HTTPトランスポートにも対応しています。--http を渡してください(フラグを指定しない場合は、引き続き stdio がデフォルトです)。
disclosures --http --port 8080 # or: node dist/server.mjs --http
- デフォルトでは
127.0.0.1にバインドします。ポートは--port、それがなければPORT環境変数、どちらもなければ8080が使用されます。ホストと、指定された Origin ヘッダーは、サーバーの許可リストと一致している必要があります。ループバック以外にバインドするには、ベアラートークンと明示的に許可されたホストが必要です。 - MCP エンドポイント:
POST /mcp(トランスポートはストリーマブル HTTP のGET/DELETEハンドシェイクにも応答します)。ステートレスで実行されます。セッション ID はなく、リクエストごとに新しいサーバーインスタンスが作成されます。 - ヘルスチェック:
GET /healthz→200 {"name","version","tools"}。 - stdio モードと同様に、診断情報は stderr のみに出力されます。
ストリーマブル HTTP 対応の MCP クライアントから http://127.0.0.1:8080/mcp に接続してください。
ホスト型サービスでは、デプロイ環境のシークレット設定を通じて DISCLOSURES_HTTP_TOKEN を指定し、次のように設定してください。
DISCLOSURES_HTTP_ALLOWED_HOSTS="disclosures.example.com" \
DISCLOSURES_HTTP_ALLOWED_ORIGINS="https://disclosures.example.com" \
DISCLOSURES_DOWNLOAD_DIR="/var/lib/disclosures/downloads" \
disclosures --http --host 0.0.0.0 --port 8080
リバースプロキシで TLS を終端し、設定済みの Host ヘッダーを保持して、クライアントが Authorization: Bearer <token> を送信するようにしてください。許可するホストはポートを含む正確なオーソリティで、クライアントがポートを送信する場合はポートも含める必要があります。カンマ区切りの値に対応しています。Origin はデフォルトで、許可されたホストに対する http:// の Origin になります。TLS 終端の背後では、HTTPS の Origin を明示的に設定してください。ブラウザー以外のクライアントでは、Origin を指定しないリクエストもサポートされます。ヘルスエンドポイントは Host/Origin をチェックしますが、トークンは必要ありません。
ライブラリとしてデプロイする場合は、同じポリシーを適用する runHttpServer({ bearerToken, allowedHosts, allowedOrigins, downloadDirectory }) を使用してください。HTTP ダウンロードは常にサーバー管理下のディレクトリに保存されます(デフォルトではプライベートな一時ディレクトリ)。output_path に指定できるのはファイル名のみです。stdio/ライブラリのダウンロードでは、明示的なローカルパスを使用できます。すべてのモードで、既存のファイルやシンボリックリンクへの上書きは拒否されます。パスを省略すると、一意のプライベートな一時ファイルが作成されます。
クライアントの設定を変更した後、クライアントを再起動して、次のように試してください。
「disclosures を使って、Apple の取締役一覧と最新の Form 4 の取引状況を確認してください。」 「NVIDIA の株式を 5% 以上保有しているのは誰ですか?届出書へのリンクを表示してください。」 「韓国の Samsung Electronics を特定し、最新の年次財務情報を表示してください。」 「Apple Operations India の上位にある GLEIF の所有関係チェーンは何ですか?」
10 個のツール
| ツール | 回答できる質問 | 対応範囲 |
|---|---|---|
CompanyResolve | 「この会社はどこですか?」 — 正式名称と、グローバルおよび各地域の登録識別子。 | 21 の全ルート |
CompanyFilings | 「どのような届出をしていますか?」 — 日付、種類、説明、識別子、公式リンク。 | US、GB、EU、KR、JP、CN、IN、TW、BR、FR、HK、ID、MY、AE、PH;AU は直近 5 件のみ一部対応 |
CompanyInsiders | 「誰が経営している、または取引を報告していますか?」 — ルートごとの役員、取締役、管理者、または内部関係者の開示情報。 | US、GB、KR、CN は一部、TW、BR、DE、NL、MY、PH |
CompanyOwners | 「誰が所有または支配していますか?」 — 大株主、支配関係登録簿、保有比率の基準値超過、または名義保有者の開示情報。 | US、GB、KR、JP、CN は一部、TW、BR、DE、FR は一部、HK は一部、NL、MY、PH |
CompanyFinancials | 「財務数値はどうなっていますか?」 — 構造化 XBRL または対象を限定した届出書解析による、届出時点の主要な事実。 | US、GB、EU、KR、JP、CN は一部、TW、BR、HK は一部、ID、PH は一部 |
OwnershipChain | 「どの企業が連結していますか?」 — GLEIF による直接および最終の会計上の連結親会社と子会社。 | 🌐 グローバル(任意の LEI または法人名) |
PrivateRaises | 「非公開で資金調達していますか?」 — Form D の適用除外募集、金額、投資家数、氏名が明記された関連当事者。 | US のみ |
CompanyDocument | 「届出書には実際に何が書かれていますか?」 — メタデータ、ページ分割された抽出テキスト、またはディスクに保存された範囲限定の PDF。 | US、GB、JP、KR、FR、HK、CN、IN、TR、AE、PH、AU |
CompanyCharges | 「どのような債権が担保になっていますか?」 — 登録済みの担保権・抵当権とその詳細。 | GB |
PersonAppointments | 「この人物は他にどこで役職に就いていますか?」 — 人物検索、企業をまたぐ役職、資格停止・執行措置の照会。 | US、GB、DE、FR、AU は一部(disqualifications のみ) |
6 つのコアツールは、jurisdiction を介してすべての管轄区域ルートに振り分けられます。OwnershipChain はグローバル対応で、管轄区域に依存しません。CompanyDocument が受け付けるのは US、GB(デフォルト)、JP、KR、FR、HK、CN、IN、TR、AE、PH、AU です。PersonAppointments が受け付けるのは US、GB(デフォルト)、DE、FR、AU です。CompanyCharges は Companies House 専用で、jurisdiction は受け付けません。
company 入力はすべて、会社名または各地域の識別子を受け付けます。ティッカー、CIK、LEI、ISIN(US/グローバル)、Companies House 番号(GB — スコットランドおよび北アイルランドの SC/NI 接頭辞を含む)、OpenDART の corp/stock code(KR)、EDINET/証券/法人コード(JP)、A 株または HK コード(CN)、BSE scrip(IN)、TWSE 上場コード(TW)、CVM 登録コード(BR)、BaFin-Id または ISIN(DE)、SIREN/ISIN/LEI(FR)、4 桁または 5 桁の HKEX 株式コード(HK)、シンガポール UEN(SG)、13 桁の法人登録番号(TH)、AFM 登録簿の発行体名または LEI(NL)、4 文字の IDX ティッカー/kode emiten(ID)、4 桁の Bursa 株式コードまたは発行体名(MY)、BIST 株式コード(TR)、DFM 発行体シンボル(AE)、PSE ティッカーシンボルまたは数値の PSE 企業 ID(PH)。jurisdiction: "US" | "GB" | "EU" | "KR" | "JP" | "CN" | "IN" | "TW" | "BR" | "DE" | "FR" | "HK" | "SG" | "TH" | "NL" | "ID" | "MY" | "TR" | "AE" | "PH" | "AU" を指定します(デフォルトは US)。
対応範囲一覧
| 意図 | US | GB | EU | KR | JP | CN | IN | TW | BR | DE | FR | HK | SG | TH | NL | ID | MY | TR | AE | PH | AU |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CompanyResolve | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
CompanyFilings | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ | — | — | — | ✅ | ✅ | — | ✅ | ✅ | ⚠️ |
CompanyInsiders | ✅ | ✅ | — | ✅ | — | ⚠️ | — | ✅ | ✅ | ✅ | — | — | — | — | ✅ | — | ✅ | — | — | ✅ | — |
CompanyOwners | ✅ | ✅ | — | ✅ | ✅ | ⚠️ | — | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | — | — | ✅ | — | ✅ | — | — | ✅ | — |
CompanyFinancials | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | — | ✅ | ✅ | — | — | ⚠️ | — | — | — | ✅ | — | — | — | ⚠️ | — |
PrivateRaises | ✅ | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
OwnershipChain | 🌐 GLEIF を通じたグローバル対応 — 法域に依存しません |
✅ 対応 · ⚠️ 部分対応(FR CompanyOwners:しきい値を超えた際の通知に対応。PDF のテキストレイヤーから、保有者、方向、しきい値、通知後の保有率をベストエフォートで構造化抽出します。最新の数件のみが対象です。スキャンされた PDF、標準外の PDF、古い通知はリンクのみのリストになります · HK CompanyOwners:キー不要の CCASS 株式保有検索で取得できるのは、参加者/カストディアンレベルの保有情報(カストディアン銀行、ブローカー、HKSCC Nominees、CSDC)であり、受益者情報ではありません。SFO Part XV Disclosure of Interests 登録簿は CAPTCHA で保護されているため、手動検索用のリンクを掲載します · HK CompanyFinancials:発行体の最新の決算発表 PDF から主要数値を抽出します。最新発表のみが対象です。標準的な発行体は問題なく抽出できますが、複雑なセグメント別/複数列の財務諸表は部分的に解析され、ページ数不足や財務諸表の欠落がある場合は PDF リンクに切り替わります · CN CompanyFinancials:発行体の最新の定期報告書 PDF にある「主要会計データ」表から主要数値を抽出し、報告書に記載された単位(元/千元/万元/百万元)から人民元の整数値に正規化します。最新の報告書のみが対象です。文字化け(オブジェクトストリーム)した報告書、上限を超えるサイズの PDF、主要データ表の欠落がある場合は PDF リンクに切り替わります · CN CompanyOwners:発行体の最新の定期報告書から「上位10名の株主」表を解析します。実際の大株主データですが、列の順序が不規則で発行体によって異なるため、値をヒューリスティックに判定し、確実に照合できた行のみを出力します。公表時点のスナップショットであり、最新の登録簿ではなく、UBO の追跡にも対応しません · CN CompanyInsiders:取引所によって対応が異なります。SZSE のコード(0/3xxxxx)では、キー不要の SZSE 構造化 董監高 株式変更フィードを使用します。一方、SSE のコード(6xxxxx)では、最新の年次報告書に掲載された公表時点の 董監高 役員名簿に切り替わり、氏名と役職のみを返します) · ID はボット対策で保護されたホスト(www.idx.co.id)経由で提供されます。アダプターはブラウザー相当のヘッダーを送信し、それらが通過する環境では動作します。エッジ側で拒否された場合は、「ホストがこのリクエストをブロックしました — ブラウザー経由の fetchFn を注入してください」という明示的な注記を返します。発行体の結果が空であることを示すものではなく、結果がない場合も黙って見落とすことはありません · TR CompanyFilings は意図的に非対応(—)としています。KAP は BIST のディレクトリとすべての開示ページ/PDF をキー不要で提供していますが、Next.js の再構築によってデータレイヤーが kapsitebackend.mkk.com.tr に移動し、このホストは公開インターネットから名前解決できません。開示 ID で指定できるものは動作しますが、一覧の取得はできません(企業ごとの通知ページは 200 を返しますが、サーバー側でレンダリングされるのは空のシェルで、通知一覧は到達不能なホストから取得されます)。そのため、このツールは理由を説明し、一覧を捏造するのではなく発行体の KAP ページを案内します · PH CompanyFinancials は部分対応です。PSE EDGE が提供するのは、独自の 17-A フォームに含まれる主要な財務諸表(貸借対照表+損益計算書、通貨は PHP)であり、完全な監査済み財務諸表はレポートの PDF 添付ファイルに記載されています · — 対応していない法域であることを正直に説明し、空の結果や捏造した結果は返しません
NL CompanyOwners/CompanyInsiders は完全にサポートされていますが、ファイル全体の AFM 登録簿エクスポートを読み込みます(サーバー側のフィルタリングはありません。実質的持株エクスポートは約 108 MB です)。セッション中の最初の呼び出しには約 20~30 秒かかりますが、その後は発行体ごとに 24 時間キャッシュされるダイジェストにより、残りの呼び出しは数ミリ秒で処理されます。リクエストごとにデプロイする場合は、AdapterOptions.cache(例:FileCache)を指定してください。
⚠️ ASX と PSE EDGE は制限付きの情報源であり、デフォルトではネットワークアクセスの前に無効化されています。 利用規約により使用や再配布が制限されており、自動開示サービスと相容れない場合があります。AU.md と PH.md を確認し、ご利用の状況で当該情報源を使用する権利がある場合に限り、
DISCLOSURES_ACKNOWLEDGE_ASX_TERMS=1および/またはDISCLOSURES_ACKNOWLEDGE_PSE_TERMS=1を設定してください。ASIC の CC-BY オーストラリア企業登録簿および資格剥奪登録簿は、ASX の利用規約への同意なしで引き続き利用できます。有効化した場合、応答には情報源固有の利用規約に関する通知が含まれます。法的助言ではありません。
各管轄区域の詳細なリファレンスページ(データソース、認証情報、受け付ける識別子、インテントごとの動作、注意事項)は docs/jurisdictions/ にあります。
データソースと認証情報
米国およびグローバルの検索は、User-Agent だけで利用できます。上流で許可されている場合、米国以外の情報源はキーなしで利用できます。キーが必要なものも少数ありますが、すべて無料です。検索する管轄区域に必要なキーだけを指定してください。それ以外はキーがなくても引き続き動作します。また、認証情報が不足している場合は、設定すべき変数名を明示したわかりやすいエラーが返されます。
| ソース | 管轄区域 | 必要なキー | 備考 |
|---|---|---|---|
| SEC EDGAR | US(デフォルト) | なし — DISCLOSURES_USER_AGENT を設定 | 提出書類、インサイダー、13D/13G の保有者、XBRL 財務情報、Form D。 |
| GLEIF | 🌐 グローバル | なし | LEI/ISIN の解決、所有権チェーン。 |
| Companies House | GB | COMPANIES_HOUSE_API_KEY(無料) | 解決、提出書類、役員、PSC — ECCTA の本人確認状況を含みます。 |
| FCA NSM | GB | なし — 注入専用 | CompanyOwners 内の DTR5/TR-1 に基づく約 3%以上の大口保有。fetchFn を注入した場合にのみ有効です(公開読み取り API はありません)。 |
| filings.xbrl.org | GB、EU | なし | ESEF/UKSEF に基づく正規化済みの IFRS 年次財務情報(FY2020 以降)。 |
| DART / OpenDART | KR | OPENDART_API_KEY(無料) | 解決、報告書、役員保有情報、5%大量保有、財務情報。 |
| EDINET | JP | EDINET_API_KEY(無料、検索のみ) | 解決にキーは不要です。書類検索にはキーが必要です。 |
| cninfo | CN | なし | SSE/SZSE(および HKEX ミラー)の解決、公告 PDF、CompanyDocument、CompanyFinancials(主要会計データの主要データ表)、CompanyOwners(前十名股东の上位 10 名)、SSE の CompanyInsiders 董監高名簿 — PDF 由来の各モードはすべて範囲が限定され、ベストエフォートです。 |
| SZSE disclosure API | CN | なし | 深圳上場企業(0/3xxxxx)の CompanyInsiders を支える、董監高及び関連人員の株式変動に関するキー不要の構造化フィードです。 |
| BSE India | IN | なし | 解決、ページ分割された企業公告、CompanyDocument の PDF メタデータ/テキスト/ダウンロード。NEWSID と添付ファイルの取引 ID は別個のものです。書類は AttachHis を優先し、最大 30 MiB まで処理されます。ボット対策のある API ホストです。スロットリングされた場合は fetchFn を注入してください。 |
| TWSE OpenAPI | TW | なし | 解決、重要情報、取締役/監査役、10%超の株主。 |
| CVM open data | BR | なし | 解決、IPE 開示インデックス、BRL 建ての DFP 年次財務情報、FRE 株主保有情報(項目 15)、管理者登録簿(項目 12)。 |
| BaFin AnteileInfo + DealingsInfo | DE | なし | 解決、WpHG §33 以下に基づく大口保有、MAR 第 19 条に基づく取締役の取引。 |
| info-financiere.gouv.fr(OAM) | FR | なし | PDF への直接リンクを含む規制対象提出書類のインデックス、基準値超過の通知、提出書類。 |
| recherche-entreprises | FR | なし | 解決(SIREN)、役員(dirigeants)、個人から企業への検索。 |
| HKEXnews | HK | なし | 解決、キー不要の PDF を含むタイトル検索による提出書類、FILE_LINK パスによる CompanyDocument、CompanyFinancials(最新の決算公告 PDF から取得した主要数値 — 範囲限定)。 |
| ACRA(data.gov.sg) | SG | なし | 解決のみ — UEN、ステータス、設立日、旧社名、監査人(Singapore Open Data Licence)。 |
| DBD(タイ) | TH | 法人番号による検索では不要。名称検索には DBD_API_KEY(無料)が必要 | 解決のみ — 上場企業と非上場企業の両方を対象とする全国登録簿:タイ語と英語の法人名、法人種別、ステータス、登録資本金/払込資本金、TSIC コード、登録日。 |
| ASX の企業公告 | AU | DISCLOSURES_ACKNOWLEDGE_ASX_TERMS=1 | 利用制限のあるソースです。デフォルトではネットワークアクセス前に無効化されています。利用条件を確認した場合:上場企業の解決、最新の公告 5 件のみ(提出履歴ではありません)、および documentKey による公告 PDF。ASX の利用規約では、利用、再配布、自動アクセスが制限されています。必要な権利を有していることは運営者の責任です。ACN/ABN の正確な解決は ASIC のみで可能です。AU.md を参照してください。 |
| ASIC on data.gov.au | AU | なし | CC BY 3.0 AU — 帰属表示を行えば自由に再配布できます。 Company Dataset(ACN/ABN/名称で検索可能な、上場・非上場のオーストラリア企業 440 万社)が CompanyResolve を支え、Banned and Disqualified Persons 登録簿が PersonAppointments の disqualifications を支えます。CKAN datastore_search を介した実際の企業ごとのクエリ API として提供されるため、399 MB の一括 CSV がダウンロードされることはありません。 |
| IDX(インドネシア) | ID | なし(ホストにボット対策あり。ブロックされる場合はブラウザー経由の fetchFn を注入してください) | 解決(上場企業約 965 社すべて — ティッカー、セクター/サブセクター、市場区分、上場日)、添付 PDF 付きの開示公告、実際の XBRL インスタンス(instance.zip、IDX 2020 idx-cor タクソノミー)から解析した IDR 建て財務情報。インサイダー/所有者情報は報告書 PDF と KSEI の保管チャネルに記載されています — 正直に未対応としています。取引所 ©:リンクを優先し、オンデマンドで提供。大量再配布は行いません。 |
| AFM の開示登録簿 | NL | なし | 解決、Wft 第 5.3 章に基づく大口保有、MAR 第 19 条に基づく管理職の取引と取締役の保有情報。キー不要の全ファイルエクスポートで、サーバー側のフィルタリングはありません — 保有情報の登録簿は約 108 MB あるため、セッション中の最初の CompanyOwners 呼び出しには約 20~30 秒かかります。AdapterOptions.cache(24 時間のダイジェスト)を指定してください。AFM は © を主張しています:リンクを優先し、オンデマンドで提供。大量再配布は行いません。 |
| Bursa Malaysia の企業公告 | MY | なし(キー不要)— ただしホストは Cloudflare のチャレンジがあるため、ブラウザー経由の fetchFn を注入してください | 解決、取引所独自のカテゴリ分類を備えた公告フィード、s.219 の取締役利害関係に関するインサイダー情報、s.138 の大口株主に関する保有情報 — どちらも、リンクされた公告書類に記載された日付付き取引、株式数、取引後の直接/間接保有を解析します。チャレンジが発生した場合は、空の結果ではなく、AdapterOptions.fetchFn を使うよう明示するメッセージを返します。SSM(全国登録機関)の利用は有料です。取引所 ©:リンクを優先し、オンデマンドで提供します。 |
| KAP(Kamuyu Aydınlatma Platformu) | TR | なし | サーバーでレンダリングされた BIST ディレクトリからの解決、および KAP ID による任意の開示情報の取得(メタデータ、PDF、抽出テキスト)。企業ごとの一覧取得は非公開のバックエンドを利用するため、CompanyFilings は正直に未対応(ダッシュ)としています。KAP/MKK ©:リンクを優先し、オンデマンドで提供。大量再配布は行いません。 |
| DFM(Dubai Financial Market) | AE | なし | ドバイのみで、UAE 全域ではありません — ADX、DIFC、ADGM はサーバーからのアクセスがボット対策で遮断されます。解決、発行体ごとの efsah 開示フィード、および r_path による各開示 PDF の取得。取引所 ©:リンクを優先し、オンデマンドで提供します。 |
| PSE EDGE(Philippine Stock Exchange) | PH | DISCLOSURES_ACKNOWLEDGE_PSE_TERMS=1 | 利用制限のあるソースです。デフォルトではネットワークアクセス前に無効化されています。利用条件を確認した場合:解決、提出書類、書類、Form 13-1 のインサイダー、POR-1/17-7 の保有者、部分的な 17-A 財務情報。PSE の利用規約では、個人利用/商用利用および再配布が制限されています。必要な権利を有していることは運営者の責任です。PH.md を参照してください。 |
# Required (SEC fair-access policy — your name/org and contact email)
export DISCLOSURES_USER_AGENT="Your Organization [email protected]"
# Optional, per jurisdiction
export COMPANIES_HOUSE_API_KEY="..." # GB
export OPENDART_API_KEY="..." # KR
export EDINET_API_KEY="..." # JP document search
export DBD_API_KEY="..." # TH company-name search (by-number is keyless)
# Restricted sources: set only after reviewing the source terms.
export DISCLOSURES_ACKNOWLEDGE_ASX_TERMS=1
export DISCLOSURES_ACKNOWLEDGE_PSE_TERMS=1
互換性のため、SEC_EDGAR_USER_AGENT をフォールバックとして使用できます。DISCLOSURES_USER_AGENT が優先されます。
TypeScript ライブラリとして使用する
同じパッケージを stdio を起動せずにインポートできます。各アダプターは { fetchFn?, env?, cache? } を注入できるため、組み込みや決定論的なテストが可能です。
import { createTools } from "disclosures";
const tools = createTools({
env: { DISCLOSURES_USER_AGENT: "Your Organization [email protected]" },
});
const resolve = tools.find((tool) => tool.name === "CompanyResolve")!;
const result = await resolve.handler({ company: "NVDA" });
ハンドラーが例外をスローすることはありません。すべての失敗は、読みやすい MCP 形式の結果として返されます。Markdown ではなく正規化済みの生レコードを使いたい場合は、個々のアダプターも名前空間(secEdgar、gleif、companiesHouse、openDart、edinet、cninfo、szse、bseIndia、fcaNsm、xbrlFilings、twseOpenApi、cvmOpenData)としてエクスポートされています。
永続キャッシュ — 再起動時に KR/JP の参照アーカイブを再ダウンロードしない
OpenDART の企業コード一覧(KR)と EDINET のコード一覧(JP)は、数メガバイトのアーカイブで、ほぼ毎日更新されます。キャッシュを指定しない場合は TTL 対応のプロセスキャッシュが使用されます。再起動後もキャッシュを保持するには、キャッシュを指定してください。
import { FileCache, createTools } from "disclosures";
const tools = createTools({
env: { OPENDART_API_KEY: process.env.OPENDART_API_KEY },
cache: new FileCache("/var/cache/disclosures"), // TTL-aware, survives restarts
});
cache には任意の DisclosuresCache(get/set)を指定できます。InMemoryCache と FileCache が付属しています。エントリーが破損、期限切れ、または存在しない場合は通常の再取得に切り替わります。キャッシュが原因で検索が失敗することはありません。FileCache はアトミックなリネームによって完全なエントリーを公開します。プロセス内の完了済みの値は通常どおり期限切れになり、同時に行われる取得では進行中の処理のみが共有されます。
ISIN ↔ LEI の相互参照 — GLEIF を介して証券と発行体を相互に対応付ける
import { gleif } from "disclosures";
gleif.isIsin("US0378331005"); // true — validates the check digit
const issuer = await gleif.resolveLeiByIsin("US0378331005"); // → issuer's GLEIF Entity (with .lei)
const isins = await gleif.getIsinsForLei("HWUPKR0MPOU8FGXBT394"); // → every ISIN for that LEI
CompanyResolve はすでに単独の ISIN を受け付け、この相互参照を通じて処理します。ヘルパーは独自の識別子マップを作成する場合に使用できます。
MCP サーバーファクトリー — サーバーを独自のプロセスに組み込む
import { createDisclosuresServer } from "disclosures";
const server = createDisclosuresServer(); // McpServer with all ten tools registered
パッケージをインポートしても stdio は開かれません。トランスポートに接続するのは CLI エントリーポイントのみです。
AI クライアント向けに設計
レスポンスは、MCP クライアントが実際に利用する方法を考慮して設計されています。
- Markdown を優先したレンダリング。 すべての結果は GitHub Flavored Markdown のテキストブロック 1 つで構成されます。見出し、コンパクトなパイプテーブル(JSON のように行ごとに繰り返さず、ヘッダーは一度だけ記載)、実際のソースリンク、補足事項が含まれます。LLM リーダーにとってトークン効率のよい形式です。
- 連鎖処理のための構造化出力。 データを含むツールは、Markdown の事実情報を反映した MCP の
structuredContentも返します。そのためクライアントは文章を解析せずに呼び出しを連鎖できます。CompanyResolveは識別子一式を含む候補を順位付けして返し、CompanyFilingsと登記情報はすぐに使えるtransactionIdを、PersonAppointmentsはofficerIdを持つ人物を返します。また、CompanyInsiders、CompanyOwners、CompanyFinancials(会計期間末でラベル付けされた概念ごとの事実情報)、OwnershipChain、PrivateRaises、CompanyChargesも対象です。いずれにもsourceJurisdictionが付与されています。OwnershipChainは MCP のoutputSchemaも宣言します。一方、複数管轄を扱うツールは正直な検索不一致をテキストのみで返す経路を維持しているため、宣言済みスキーマなしで構造化データを追加で出力します。 - 次のステップを示す末尾のヒント。 連鎖可能な出力は、次に呼び出すツールとパラメーターを示す一行の
_Next: …_ヒントで終わります。 - ツールアノテーション。 すべてのツールが
openWorldHintとidempotentHintを宣言します。ローカルファイルに書き込むpdfモードを持つCompanyDocumentを除き、すべてreadOnlyHintも宣言するため、クライアントは並列処理を行い、確認プロンプトを省略できます。 - ページ分割された文書テキスト。
CompanyDocumentのxhtmlモードでは、text_offsetを使って 50,000 文字単位で読み込みます。長い開示書類も先頭で切り詰められることなく、最後まで読み取れます。 - 信頼できない内容のフェンス処理。 提出者が作成した抽出テキストは、固定の
<<<BEGIN/END UNTRUSTED DOCUMENT TEXT>>>センチネルで囲まれます(文書内にある類似文字列は無効化されます)。これにより、クライアントはプログラムで隔離できます。 - 管轄リソース。 サーバーは
disclosures://jurisdictionsとdisclosures://jurisdictions/{code}の MCP リソースを公開し、各管轄の情報源、認証情報、受け付ける識別子、注意事項を説明します。ツール呼び出しを失敗させずに要件を確認できます。
誠実性と対象範囲
これらのツールが正確に報告するのは公開情報です。KYC、UBO、または株主構成表を扱う製品ではありません。
- 情報がないことは、存在しない証拠ではありません。 Form Dが見つからなくても、その企業が非公開で資金調達をしたことがないとは限りません。PSCが見つからなくても、支配者が存在しない証拠にはなりません。ECCTAの本人確認フィールドが空欄でも、役員の本人確認が未実施である証拠にはなりません。
- GLEIFの親会社情報が示すのは会計上の連結関係であり、議決権による支配、市場開示上の所有権、または最終受益所有権ではありません。
- Schedule 13D/13Gは、5%の基準値に達した届出者を特定するものであり、完全かつ常に最新の資本構成表ではありません。
- Section 16のインサイダー情報は、最近のForms 3/4/5を反映したもので、現在の全員を網羅していない場合があります。
- 届出書は修正、再提出、遅延、または別のXBRL概念でタグ付けされる場合があります。リンク先の原資料で確認してください。
- ここに記載された情報は、法律、投資、会計、または財務に関する助言ではありません。
解決できなかった場合は、「Could not find…」というプレーンテキストが返されます。設定、上流サービス、レート制限に関するエラーは、修正方法を示すフラグ付きエラーとして返されます。すべてのリンクは実際にアクセス可能なソースURLです。
ドキュメント
| ページ | 内容 |
|---|---|
docs/jurisdictions/ | 国・地域ごとのリファレンス:ソース、認証情報、受け付ける識別子、インテントごとの動作、注意事項、対応状況マトリクス。 |
docs/TESTING.md | オフラインテストの分離と、認証情報を使用する別個のライブエンドツーエンドテストスイート。 |
PUBLISHING.md | npmの信頼された公開とMCPレジストリのリリース自動化。 |
CHANGELOG.md | リリース履歴。 |
開発
開発にはBunが必要です。公開済みの成果物はNode 18+で実行されます。
bun install --frozen-lockfile
bun audit # complete dependency graph
bun --no-env-file run typecheck # pinned TypeScript compiler
bun --no-env-file run test # full offline suite — no live HTTP
bun --no-env-file run build # bundle and declarations
bun --no-env-file run test:stdio # freshly built stdio integration
bun --no-env-file run test:runtime # stdio and HTTP on the active Node runtime
bun --no-env-file run test:package # isolated npm install and strict consumer compilation
ローカルの環境ファイルを読み込んではならない自動化では、クリーンなチェックアウトでパッケージマネージャーのコマンドを実行してください。Bunのインストール/監査コマンドは、実行時の--no-env-fileフラグを無視します。PRではNode 22でオフラインゲート全体を実行します。リリース検証ではさらに、Node 18/20/22/24とライブプロバイダーを確認します。バージョン、セキュリティ、公開の各ゲートについては、公開手順を参照してください。
デフォルトのテストスイートはネットワークに一切接続しません。ルーティングされたfetchスタブは、一致しないリクエストがあると例外をスローします。別個のライブエンドツーエンドテストスイートでは、実際のNode成果物をビルドし、MCP stdio経由で実行して、.env.localに設定されている認証情報を使用します。
bun run test:live # missing jurisdiction keys are reported as skips
bun run test:live:all # strict: require User-Agent + GB/KR/JP keys
ライブテストのアサーションは、変動しやすい件数や日付ではなく、識別情報、識別子の形式、ソースホスト、レスポンス構造を確認するため、データの変化に対応できます。一時的な失敗は1回再試行され、呼び出しには時間制限が設けられ、診断情報からは設定済みのキーがマスキングされます。ライブテストのファイルには.live.tsというサフィックスを付けているため、通常のbun testでは検出されません。詳しくはテストの方針を参照してください。簡易チェック用に、小規模なbun run smoke:live SEC/GLEIF診断も引き続き利用できます。
stdioのルール: サーバーはJSON-RPC用にstdoutを確保します。console.logはMCPトランスポートを破損させるため、コントリビューター向けの診断情報はstderrに出力してください。
現在の未対応範囲
対応範囲は既存のツールセットに追加する形で拡大します。インドで今後深掘りする対象は、直近四半期のBSE株式保有状況iXBRL/XMLからのCompanyOwnersです。年次報告書PDFの所有者一覧表は、対象文書の形式が不規則すぎるため、意図的に解析していません。10月20日のソース確認では、最新情報の探索が現在ブロックされており、旧エンドポイントからは古いデータが提供されることが確認されました。そのため、最新のデータ群が検証されるまで、所有者情報には対応しません。その他の未対応範囲は、空のデータとして表すのではなく、国・地域ごとに記載しています。提案や問題の報告はGitHubで歓迎します。
ライセンス
Apache-2.0。Copyright Carrotly AI.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。