pequod-mcp について
pequod-mcpは、米国ETFの全保有銘柄と検証済みの証券識別子マッピングを必要とするエージェント向けのローカルMCPサーバーです。保有データはSEC EDGARのN-PORT提出書類、識別子対応はOpenFIGIとSEC参照データに基づきます。
主な機能
- 01N-PORTから米国ETFの全保有銘柄を取得
- 02ティッカー、CUSIP、SEDOL、FIGIをシンボルに対応
- 03SEC参照データによるマッピング検証
- 04提出日とソースURLを返却
- 05stdio経由の読み取り専用ツール
活用シーン
- 01ETFの全保有銘柄と比率の確認
- 02ETF間の保有銘柄の重複比較
- 0313Fにある識別子の特定
- 04保有データをSEC提出書類まで追跡
MCP 対応
ローカルstdio経由で、読み取り専用のETF保有銘柄検索と識別子解決ツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| ticker | string | はい | 株式または ETF のティッカーシンボル(例:'SCHD'、'QQQ'、'AAPL')。 |
詳細
pequod-mcp — 「the Gam」
エージェント向けの、SEC の一次情報に基づく ETF 保有銘柄と識別子のクロスウォークです。
AI エージェントに、SEC EDGAR の N-PORT 提出書類から直接、米国登録 ETF の全保有銘柄を提供する MCP(Model Context Protocol)サーバーです。上位 10 銘柄だけを取得するのではありません。また、OpenFIGI と SEC の参照データを利用した識別子のクロスウォークツール群(ティッカー、CUSIP/SEDOL、FIGI → 解決済みシンボル)も提供します。stdio 経由でローカル実行でき、市場データベンダーとの契約は不要です。
ツール
| ツール | 機能 | データソース |
|---|---|---|
lookup_cik | ティッカー → SEC CIK +企業メタデータ(名称、SIC、取引所、会計年度末) | SEC company_tickers.json + submissions API |
resolve_ticker | ティッカーと任意の取引所コード → 検証済みの Yahoo 方式のシンボル | 取引所サフィックスのマップ(純粋な文字列マッピング)+ SEC + OpenFIGI |
resolve_cusip | CUSIP(または SEDOL)→ シンボル。複数の情報源で照合 | OpenFIGI(一括リクエスト 1 回)+ SEC の名称/ティッカー一致 |
resolve_figi | Bloomberg FIGI → シンボル。複数の情報源で照合 | OpenFIGI + SEC の名称/ティッカー一致 |
get_etf_holdings | 任意の米国 ETF → 最新の月次 N-PORT 提出書類から全保有銘柄の一覧(名称、ティッカー、ISIN、FIGI、LEI、株式数、米ドル建て評価額、純資産に占める割合、国、通貨) | SEC EDGAR N-PORT XML |
すべてのツールは読み取り専用です。
検証の仕組み
クロスウォークの結果は、市場データベンダーを使わずに検証されます。
- SEC 登録情報の確認 — マッピングされたティッカーが米国の SEC 登録企業である場合、
company_tickers.jsonの企業名が OpenFIGI の証券名と一致する必要があります。名称が大きく食い違う場合、もっともらしい誤ったシンボルを返すのではなく、マッピングを拒否します(verification: "name_veto")。 - OpenFIGI によるマッピング — SEC の登録情報に含まれない米国外のシンボルは、OpenFIGI のマッピング自体を検証に使用し、
verification: "openfigi"と表示します。これにより、確信度の違いを見分けられます。
Yahoo Finance のシンボル表記(.SW、.T、.L などのサフィックス)は、純粋な文字列規則として適用されます。デフォルトの処理では、Yahoo へのネットワークリクエストは発生しません。
インストール
# with uv
uv pip install pequod-mcp
# or with pip
pip install pequod-mcp
直接実行する場合(stdio):
pequod-mcp
任意:OpenFIGI API キー
キーがなくてもサーバーは動作します(OpenFIGI の匿名利用時のレート制限が適用されます)。より多く利用する場合は、https://www.openfigi.com/api で無料のキーを取得して設定します。
export API_OpenFIGI="your-key-here"
任意:Yahoo エンリッチメント用追加機能
オプトインの追加機能を有効にすると、クロスウォーク結果にリアルタイムの Yahoo 株価情報ブロックが追加されます。デフォルトでは無効で、それ以外の用途には使われません。有効にする場合は、Yahoo Finance の利用規約にご自身で同意したものとみなされます。
pip install 'pequod-mcp[yahoo]'
export PEQUOD_YAHOO_VERIFY=1
Claude で設定する
Claude Desktop(claude_desktop_config.json)または stdio トランスポートを使用する MCP クライアント:
{
"mcpServers": {
"pequod": {
"command": "pequod-mcp",
"env": {
"API_OpenFIGI": "your-key-here"
}
}
}
}
Claude Code:
claude mcp add pequod -e API_OpenFIGI=your-key-here -- pequod-mcp
エージェントのワークフロー例
1. 「SCHD の実際の保有銘柄は?」
Agent: lookup_cik("SCHD")
→ { cik: "0000884394", entity_name: "SCHWAB STRATEGIC TRUST", found: true }
Agent: get_etf_holdings("SCHD", cik="0000884394")
→ { fund_name, report_date, source_url (the actual EDGAR filing),
total_holdings: ~100, holdings: [ { name, ticker, isin, figi,
balance, value_usd, pct_val, ... } ] }
エージェントは各保有銘柄とそのウェイトに加えて、引用用の EDGAR URL を取得します。一次情報まで遡って監査できます。
2. 「13F から取得した CUSIP があるのですが、どの株式ですか?」
Agent: resolve_cusip("594918104")
→ { yahoo_symbol: "MSFT", verified: true, verification: "openfigi+sec",
company_name: "MICROSOFT CORP", cik: "0000789019",
openfigi: { figi: "BBG000BPH459", ... } }
OpenFIGI のマッピングが、ティッカーの所属企業について SEC の登録情報と一致しない場合、誤ったシンボルを返さず、ツールは結果の返却を拒否します(verification: "name_veto")。
3. 「2 つの配当 ETF の保有銘柄の重複を比較して。」
Agent: get_etf_holdings("SCHD") → complete holdings A
Agent: get_etf_holdings("VYM") → complete holdings B
Agent: joins on isin (or ticker), computes overlap weight, reports the
shared names — all from two tool calls, both citing SEC filings.
データの出所
- すべての保有データは、SEC EDGAR の一次情報源(Form N-PORT の提出書類、submissions API、
company_tickers.json)から取得しています。識別子の対応付けには、OpenFIGI API(FIGI はオープンな OMG 標準)を使用しています。 - 出力に CUSIP は含まれません。 ツールの出力には ticker、ISIN、FIGI、LEI が含まれます。基になる提出書類に存在する CUSIP フィールドは、意図的に削除しています。
- SEC の公正なアクセス方針を遵守しています。 すべてのリクエストで User-Agent を明示し、EDGAR が公表しているレート制限を十分に下回る頻度に制限しています。また、
company_tickers.json(24 時間)と N-PORT 文書(30 日間。提出済み文書は変更されないため)をディスク上にキャッシュします(モジュールと同じ場所の.cache/。PEQUOD_CACHE_DIRで変更できます)。 - エラーを明示する方針です。 EDGAR に接続できない場合、または提出書類を解析できない場合、ツールはエラーを返します。縮退時や部分的な場合に使用する代替情報源はありません。提出書類に基づくデータを取得できるか、明確なエラーが返されます。
- N-PORT の提出書類は遅れて公開されます(保有状況は通常、約 1~2 か月前のものです)。
report_dateフィールドとsource_urlフィールドで、どの期間の情報かを正確に確認できます。 - 投資助言ではありません。 このサーバーは、公開されている規制当局への提出書類とオープンな識別子の対応付けを提供します。投資判断を行う前に、必ずご自身で確認してください。
環境変数
| 変数 | デフォルト | 用途 |
|---|---|---|
API_OpenFIGI | (未設定) | OpenFIGI API キー(より高いレート制限) |
PEQUOD_CACHE_DIR | モジュールと同じ場所の .cache/ | ディスク上のキャッシュ場所 |
PEQUOD_YAHOO_VERIFY | (オフ) | Yahoo の情報拡充をオプトインで有効化([yahoo] エクストラが必要) |
LOG_LEVEL | INFO | サーバーログの詳細度 |
開発
pip install -e '.[dev]'
pytest # fully offline — fixture filings, no live network
ライセンス
Apache-2.0 — LICENSE を参照してください。著作権 2026 AB Evergreen Analytics LLC。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。