Sec Nport について
Sec Nportは、SECのN-PORT保有銘柄とN-CENファンド情報を検索するMCPサーバーです。証券から保有ファンドを逆引きでき、データ範囲と報告時点も明示します。
主な機能
- 01証券を保有するファンドの検索
- 02ファンドの申告保有銘柄の取得
- 03N-CENファンド情報の取得
- 04データ範囲と日付の確認
- 05OpenFIGIによるティッカー解決
活用シーン
- 01株式や債券を保有するファンドの特定
- 02ファンドの申告ポートフォリオの確認
- 03手数料、資産、運用会社の確認
MCP 対応
証券保有者の検索、ファンドのポートフォリオ、プロフィール、データ範囲を調べるSECデータツールをMCPクライアントに公開します。Pipeworxのエンドポイントまたは単独のstdioサーバーとして利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/sec-nport/mcpclaude mcp add --transport http pipeworx-io-sec-nport https://gateway.pipeworx.io/sec-nport/mcp{"mcpServers":{"pipeworx-io-sec-nport":{"type":"http","url":"https://gateway.pipeworx.io/sec-nport/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-sec-nport":{"type":"http","url":"https://gateway.pipeworx.io/sec-nport/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-sec-nport":{"type":"http","url":"https://gateway.pipeworx.io/sec-nport/mcp"}}}{"mcpServers":{"pipeworx-io-sec-nport":{"serverUrl":"https://gateway.pipeworx.io/sec-nport/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/sec-nport
SEC Form N-PORT および Form N-CEN に基づく、投資信託と ETF のポートフォリオ保有銘柄およびファンド概要です。キーは不要です。
Pipeworx の一部です。AI エージェントを 1831 以上の稼働中のデータソースに接続する MCP ゲートウェイです。これは独立した非公式の連携であり、上流プロバイダーとは提携関係になく、承認を受けておらず、公開もされていません。
ツール
nport_fund_owners(security, quarter?, limit?)— 株式または債券を保有するファンドや ETF を、保有額の大きい順に表示します。ティッカー、企業名、CUSIP を指定します。nport_fund_portfolio(fund, quarter?, limit?)— 1 つのファンドが報告した保有銘柄を、保有額の大きい順に表示します。nport_fund_profile(fund)— ETF/インデックス/マネー・マーケット・ファンドの区分、運用資産、経費率、運用報酬、1 株あたりの NAV/市場価格、投資顧問会社など、ファンドの概要を表示します。SEC Form N-CEN(年次ファンド調査)に基づきます。詳しくは「ファンド概要」をご覧ください。nport_holdings_coverage()— 読み込み済みの N-PORT および N-CEN のリリース、そのデータの最新性、データがカバーしない範囲を表示します。
このパックの要点は、方向を逆転させたことです
「NVDA を最も多く保有する ETF は?」という質問は、この機能がリリースされるまで no_match になり、ルーターは ETF を 1 つずつ確認する必要があると説明していました。
edgar_fund_holdings はファンドから保有銘柄を調べます。証券から保有ファンドを調べる方法はありませんでした。SEC の N-PORT はファンド単位で公開されており、それを利用するすべての API も同様だからです。これはレート制限の問題ではなく、データの構造上の問題です。
これは 13F の焼き直しではありません。13F の対象は、1 億ドルを超える機関投資家の運用者で、米国のロング株式に限られます。N-PORT の対象は、投資信託と ETF である登録ファンドで、債券の保有銘柄も含まれます。「この社債を保有するファンドは?」という質問には、13F ではまったく答えられません。
対象範囲について。部分的な読み込みを完全なものと誤解すると、誤った回答になるため明記します
四半期アーカイブは、32 テーブルで 441MB あります。読み込み済みなのは株式、優先株、債券のポジションで、四半期あたり 535 万件の保有行のうち約 360 万件、ファンド数にして 14,416 件です。**未読み込み:**デリバティブ、ローン、レポ、仕組商品です。スワップの想定元本は原資産の保有ではありません。それを保有として報告するのは、正解のふりをした誤答です。すべての応答に、この情報が scope フィールドとして含まれます。
さらに、すべての回答に付随する注意点が 2 つあります。
- **N-PORT は毎月提出されますが、公開されるのは四半期ごとで、公開までにおよそ 60 日かかります。**応答には
as_of_periodが含まれます。リアルタイムの情報であるかのように示す回答は誤りです。 - **N-PORT に ETF のフラグはありません。**登録ファンドが対象で、ETF と投資信託の両方が含まれます。ファンドシリーズ名だけが手がかりです。この提出書類から ETF のみに絞った回答を正直に示すことはできないため、このパックは分類を捏造せず、その旨を伝えます。
データの保存場所と、R2に保存しない理由
データはすべてPostgresにあります。 本番データベースで測定したところ、1リリース分を読み込むと次のとおりでした。
| テーブル | 行数 | ディスク上のサイズ |
|---|---|---|
sec_nport_holdings | 3,614,371 | 1,123 MB |
sec_nport_funds | 14,416 | 8.9 MB |
1パックとしては、Postgresにかなりの容量を使います。そのため、午前3時に誰かが同じことを調べ直すことにならないよう、この選択について明記しておく価値があります。
理由はクエリにあります。 このパックが解決する逆引き、つまりこの証券を保有しているファンドはどれかというクエリは、cusipとissuer_nameを使った選択的な検索で、360万行の中から数十行を返します。これはまさにB-treeインデックスが得意とする処理です。ミリ秒単位で回答でき、1.1GBのうちほとんどに触れずに済みます。R2にはインデックスがありません。同じ検索をオブジェクトストレージから提供するには、オブジェクトをすべて走査するか、オブジェクト内の位置を示すサイドインデックスを構築する必要がありますが、どちらも既存のデータベースより劣ります。
アクセスパターンが一括処理の場合、R2を使う価値があります。たとえば、ファイル全体の読み込み、対話的にクエリされない過去の四半期データ、または有用なインデックスを作成するには大きすぎるペイロードです。将来的には、直近の四半期分をPostgresに、古い四半期分をR2に保存するという分割が妥当ですが、その効果が出るのは複数の四半期分を読み込んでからです。現時点では、読み込まれているのはちょうど1四半期分です。今分割しても、何も節約できず、ストレージ層が増えるだけです。
次の担当者が推測しなくて済むよう、境界を明確にしておきます。 四半期ごとに約1.1GBを消費します。読み込み済みの四半期が4~6件ほどになると、データベース内で最大の単一データセットになるため、古い四半期を分離する仕組みは議論するのではなく、構築すべきです。比較対象のsec_13f_holdingsは380万行です。このパックも同じ桁の規模であり、新たな種類の問題ではありません。
別の提出書類(N-PORTではなくN-CEN)から取得するファンドのプロフィール
nport_fund_profile が答えるのは、ほかの3つのツールとは異なる質問です。「このファンドは何を保有しているか」ではなく、「このファンドはどのようなファンドか」です。このツールは、SEC Form N-CEN(年次ファンド調査書)を読み取ります。N-CENには、N-PORTの保有銘柄に関する提出書類にはない次のフィールドが含まれています。
- ETF/上場運用型ファンド/インデックス/マネー・マーケット/ターゲットデートの明示的なフラグ — N-PORTにはこれらのフラグがなく、手がかりはシリーズ名しかありません。
- 経費率(純資産に対する純年間運営費用の割合)とアドバイザリー手数料 — 主にクローズドエンド型ファンドで値が入力されています。大半のオープンエンド型ファンドとETFでは、これらのN-CEN項目は空欄のため、ツールは
0ではなくnullを返します。 - 投資顧問会社(サブアドバイザーを含む)— 名称、CRD番号、LEIが含まれます。
- 運用資産額(AUM)(月次平均純資産。マネー・マーケット・ファンドの場合は日次平均)と1口当たり純資産価値(NAV)/市場価格。
回答できない項目は設定日です。 N-CENの構造化データセットにはそのフィールドがありません。このツールの構築前にSEC独自の53テーブルのスキーマ(ncen_readme.pdf)を照合して確認しており、推測ではありません。すべての応答で、フィールドを省略せず、その旨を明示しています。
1年近く古いデータになることがある理由。 N-CENの提出は年1回で、ファンドごとに会計年度ごとに1回です。ファンドの会計年度末が暦年を通じて分散しているため、SECは構造化データを四半期ごとに公開しています。1回の公開四半期に含まれるのは、その期間に会計年度が終了したファンドだけです(現在の2026q3の公開データで見ると、活動中の約9,000~10,000ファンドのうち2,330ファンドです)。取り込みスクリプトは、単一年度をほぼ完全に網羅するため、直近4四半期分を読み込みます。各応答のreport_ending_periodは現在の日付ではなく、そのファンド自身の会計年度末を示します。
ユニット型投資信託(UIT)として設立されたETF(SPY、QQQ、DIA)も、別のN-CENセクションを通じて対象となります。 UITは、Part C/DのFUND_REPORTED_INFO.tsvではなく、N-CENのPart F/UIT.tsvテーブル(EXISTING_SERIES_CNT、TOTAL_ASSET_FOR_ALL_SERIES。アクセッション番号のみでキー付けされ、シリーズごとの行はありません)を通じてファンドレベルのデータを報告します。nport_fund_profileはまずPart C/Dを検索し、そこに一致するデータがなければUITテーブルを検索します。これはSPDR S&P 500 ETF Trust(SPY、CIK 884394)の実データで確認済みです。2026年の提出書類(アクセッション番号0001410368-26-023904)にはFUND_REPORTED_INFOの行が0件ですが、UIT.tsvにはTOTAL_ASSET_FOR_ALL_SERIESが712,072,540,255.17ドルと記載された行があります。UITのプロフィールが返すのは、fund_type: "unit investment trust"、総資産、administratorsです(通常の意味での投資顧問会社はありません。受動的に管理されるためです)。ただし、Part Fには経費率、アドバイザリー手数料、NAV/市場価格が一切報告されていないため、これらは返しません。すべてのUITの応答で、uit_profile_noteがその旨を示します。N-PORTの保有銘柄は、別途nport_fund_portfolio/nport_fund_ownersで完全に網羅されています(実データで確認済みです。SPYは、登録者名「State Street(R) SPDR(R) S&P 500(R) ETF Trust」でsec_nport_fundsに登録されています)。
名前の照合結果は段階評価され、無断で最善と思われる候補を選ぶことはありません。 クエリはfund_nameに対してILIKE '%query%'で広く候補を検索し、その後クライアント側で順位付けします。句読点と「ETF」「Trust」「Fund」などの一般的な接尾辞を正規化した完全一致が、前方一致より上位になり、前方一致は単純な部分一致より上位になります。応答には必ずname_matchが含まれ、exact以外の場合はname_match_noteとother_candidates(各候補の評価付き)も含まれます。そのため、部分一致の候補を、明示せずに対象ファンドそのものとして提示することはありません。以前は、順位付けでreport_ending_periodが最も新しいILIKE候補を選んでいました。そのため、実際に意図されたファンドではなく、同じファミリーに属する無関係なファンドが選ばれることがありました。
ティッカーの解決
保有銘柄テーブルはCUSIPをキーにしています。CUSIPはCUSIP Global Servicesの独自規格であるため、このパックではCUSIP↔ティッカーの一括対応表を作成したり、キャッシュしたりしません。ティッカー形式の入力は、オープンライセンスのBloomberg FIGIを提供するOpenFIGIを通じてリアルタイムで解決され、正規化された企業名に変換されます。その後、その企業名を、すでに取り込んであるデータ内のissuer_nameと照合します。ETFやオプションのラッパーではない候補を優先するため、そうしないと「NVDA」がNVIDIAと並んでDirexion Daily NVDA Bull 2Xにも一致し、両者が同じ順位になってしまいます。意図的に、13Fパックと同じ方針を採用しています。
ソース
SEC Form N-PORTの構造化データ(保有銘柄)とSEC Form N-CENの構造化データ(ファンドプロフィール)。どちらも米国証券取引委員会が公開しています。
クイックスタート
MCPクライアント(Claude Desktop、Cursor、Windsurfなど)に追加します。
{
"mcpServers": {
"sec-nport": {
"url": "https://gateway.pipeworx.io/sec-nport/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/sec-nport/mcpのtools/listは、上の表のツールに加え、共有Pipeworxメタツール(ask_pipeworx、discover_tools、search_within、remember/recallなど、ゲートウェイ全体で利用できるツール一式)も返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、パック固有のツールに加えて、共有ツールがおよそ30個表示されます。接続のinitialize応答には正確なスコープが示されており、当日の状況を確認する際の正式な情報源となります。
これは意図的な設計であり、偶発的な多重化ではありません。メタツールを使えば、このパックが扱わない質問にも、カタログ全体を横断してルーティングするask_pipeworxを通じて回答できます。そのため、MCPサーバーをもう1つ追加する必要はありません。現時点では、メタツールを含めずにパックのエンドポイントをマウントする方法はありません。追加のスキーマがもたらすコンテキストコストがルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、Pipeworxのフルゲートウェイに接続すると、このパックのツールだけでなく、すべてのパックのツールが直接一覧表示されます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらのURLも同じゲートウェイと同じ1831以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworxを通じてすべてのツールを利用できます。
MCPクライアントをお持ちでない場合は?HTTPで呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/nport_fund_owners \
-H 'Content-Type: application/json' \
-d '{"security":"NVDA","limit":10}'
最初の呼び出しにはアカウントは不要です。ツールの詳細を確認するには、GET https://gateway.pipeworx.io/v1/tools/nport_fund_ownersを使用します。ツールを検索するには、{"query":"..."}を指定してPOST https://gateway.pipeworx.io/v1/tools/search_packsを呼び出します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルのstdio MCPサーバーとしても実行できます。Pipeworxアカウントも、ゲートウェイへの往復通信も必要ありません。
{
"mcpServers": {
"sec-nport": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-sec-nport"]
}
}
}
または、起動することを確認するために直接実行します。
npx -y @pipeworx/mcp-sec-nport
stdin/stdout経由でMCPを使用し、このパックのツールのみについて、initialize/tools/list/tools/callに応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。ソースもツールも同じですが、ask_pipeworxによるルーティングはありません。
ask_pipeworxを使う
ツールを直接呼び出す代わりに、自然な英語で質問できます。この方法は、上記のパックエンドポイントとフルゲートウェイの両方で利用できます。
ask_pipeworx({ question: "your question about Sec Nport data" })
ゲートウェイが適切なツールを選択し、引数を自動で入力します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。