mcpField
P
pequod-mcp

pequod-mcp

ローカル
github.com/ABWerks金融データ011 週間前に更新

pequod-mcp について

pequod-mcpは、米国ETFの全保有銘柄と検証済みの証券識別子マッピングを必要とするエージェント向けのローカルMCPサーバーです。保有データはSEC EDGARのN-PORT提出書類、識別子対応はOpenFIGIとSEC参照データに基づきます。

主な機能

  1. 01N-PORTから米国ETFの全保有銘柄を取得
  2. 02ティッカー、CUSIP、SEDOL、FIGIをシンボルに対応
  3. 03SEC参照データによるマッピング検証
  4. 04提出日とソースURLを返却
  5. 05stdio経由の読み取り専用ツール

活用シーン

  1. 01ETFの全保有銘柄と比率の確認
  2. 02ETF間の保有銘柄の重複比較
  3. 0313Fにある識別子の特定
  4. 04保有データをSEC提出書類まで追跡

MCP 対応

ローカルstdio経由で、読み取り専用のETF保有銘柄検索と識別子解決ツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"abwerks-pequod": {
"command": "uvx",
"args": [
"pequod-mcp"
],
"env": {
"API_OpenFIGI": "<API_OpenFIGI>"
}
}
}
}
起動コマンドuvx pequod-mcp
設定が必要な環境変数
API_OpenFIGIシークレットOpenFIGI API key (optional — raises rate limits for the identifier-resolution tools; keyless tier works)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypipequod-mcp0.2.2

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
tickerstringはい株式または 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_cusipCUSIP(または SEDOL)→ シンボル。複数の情報源で照合OpenFIGI(一括リクエスト 1 回)+ SEC の名称/ティッカー一致
resolve_figiBloomberg FIGI → シンボル。複数の情報源で照合OpenFIGI + SEC の名称/ティッカー一致
get_etf_holdings任意の米国 ETF → 最新の月次 N-PORT 提出書類から全保有銘柄の一覧(名称、ティッカー、ISIN、FIGI、LEI、株式数、米ドル建て評価額、純資産に占める割合、国、通貨)SEC EDGAR N-PORT XML

すべてのツールは読み取り専用です。

検証の仕組み

クロスウォークの結果は、市場データベンダーを使わずに検証されます。

  1. SEC 登録情報の確認 — マッピングされたティッカーが米国の SEC 登録企業である場合、company_tickers.json の企業名が OpenFIGI の証券名と一致する必要があります。名称が大きく食い違う場合、もっともらしい誤ったシンボルを返すのではなく、マッピングを拒否します(verification: "name_veto")。
  2. 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_LEVELINFOサーバーログの詳細度

開発

pip install -e '.[dev]'
pytest            # fully offline — fixture filings, no live network

ライセンス

Apache-2.0 — LICENSE を参照してください。著作権 2026 AB Evergreen Analytics LLC。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。