mcpField
S
SEC EDGAR

SEC EDGAR

ローカル
codeberg.org金融データ03 日前に更新

SEC EDGAR について

SEC EDGAR は、米国 SEC の企業提出書類、財務データ、企業情報を検索する Rust 製 MCP サーバーです。ティッカーから CIK への変換やリクエスト識別情報、応答の整形を担い、Claude Desktop などのクライアントで利用できます。

主な機能

  1. 01企業および最近の提出書類の検索
  2. 02提出書類本文と添付資料の閲覧
  3. 03XBRL 財務概念の照会
  4. 04インサイダー取引と機関保有の確認
  5. 05提出書類全文の検索
  6. 06ティッカーから CIK への変換

活用シーン

  1. 01企業の最新 10-K や 8-K の確認
  2. 02複数企業の過去の売上高の比較
  3. 03インサイダー取引や 13F 保有銘柄の検索

MCP 対応

MCP クライアントに SEC EDGAR の検索・提出書類ツールを公開します。ティッカーと CIK の対応をキャッシュし、大きな SEC 応答を簡潔な JSON に整形します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
cargosec-mcp0.10.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

sec-mcp

audit

Claude Desktop から SEC EDGAR のデータ(企業の提出書類、財務諸表、企業情報)にアクセスできる Model Context Protocol サーバーです。API キーは不要です。Node、Python、Docker のランタイムに依存せず、単一のネイティブバイナリとして動作します。

この MCP が必要な理由

EDGAR は API キー不要の公開 REST エンドポイント群であり、sec.gov/search-filings/edgar-application-programming-interfaces のドキュメントも十分に整っています。そのため、厳密に言えば MCP は必要ありません。このラッパーでできることは次のとおりです。

  1. User-Agent の識別情報を保持します。 SEC の公正利用ポリシーでは、User-Agent ヘッダーに連絡先メールアドレスを含める必要があります。設定しないと、リクエストは速度制限されたり拒否されたりします。プロンプトのたびにメールアドレスを貼り直す必要はありません。MCP が設定ファイルに保存し、すべてのリクエストに設定します。

  2. ティッカーから CIK への変換をキャッシュします。 EDGAR のすべてのエンドポイントはティッカーではなく、ゼロ埋めされた10桁の CIK をキーとして使用します。ツールを使わない場合、クエリのたびに約1 MBの company_tickers.json を再取得し、一から解析することになります。MCP はこれを1時間キャッシュします。

  3. ドキュメントで詳しく説明されていない URL 構築上の注意点に対応します。 XBRL frames エンドポイントの CY{period} プレフィックス、instant コンセプトの末尾に付ける I、ゼロ埋めされた CIK、アーカイブ URL でハイフンを除いたアクセッション番号などです。実行時に間違えやすい点を、ツールに一度だけ組み込んでいます。

  4. レスポンスを整形します。 companyfacts のレスポンスは数十 MB に達し、filings.recent は列優先の並列配列形式です。どちらも利用可能ですが、言語モデルが形式を整えるだけで多くのコンテキストを消費してしまいます。MCP は項目を絞り込み、行形式にした JSON を返します。

  5. 機能を見つけやすくします。 MCP をインストールすると、ツール一覧から Claude が SEC の提出書類を検索できることや、よく使われるコンセプト名が分かります。インストールしていない場合、モデルはエンドポイントの存在を覚えている必要があります。

年に1〜2件の提出書類を取得するだけなら、これは必要ありません。Claude に URL を渡してください。それ以上の頻度で使うなら、「会話のたびに URL の書式を説明する」手間を「自然な質問をする」だけに変えられるため、このラッパーの導入は十分に価値があります。

インストール

Cargo でインストールします(Rust 1.88 以降)。

cargo install sec-mcp

これにより、rustls の暗号バックエンド(ring)がコンパイルされます。少量の C コードを含むため、ビルドホストには C コンパイラー が必要ですが、cmake やアセンブラーは不要です。 macOS(Xcode Command Line Tools)や、ほとんどのデスクトップ Linux ディストリビューションにはすでに含まれています。 最小構成の Linux イメージには含まれていない場合があるため、先にインストールしてください。たとえば Debian/Ubuntu では apt install build-essential を実行します。

Claude Desktop の設定

~/Library/Application Support/Claude/claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "sec-edgar": {
      "command": "sec-mcp",
      "args": []
    }
  }
}

Claude Desktop を再起動します。

初回の使用

SEC に関連するリクエストを初めて行うと、Claude は SEC EDGAR の公正利用ポリシーで連絡先メールアドレスが必要であることを説明し、続行する前に許可を求めます。メールアドレスはローカルの ~/Library/Application Support/sec-mcp/config.toml に保存され、SEC に送信される HTTP User-Agent ヘッダーでのみ使用されます。それ以外の場所に共有されることはありません。

プロンプトの例

  • 「Appleの最近のSEC提出書類を教えてください」
  • 「Teslaの過去5年間の年間売上高を表示してください」
  • 「前四半期のMicrosoftの純利益はいくらでしたか?」
  • 「SECによると、NVDAはどの業界に属していますか?」
  • 「Bridgewater AssociatesのCIKと、最近提出した書類を教えてください」
  • 「Sonosの株式を5%超保有しているのは誰ですか?そのうち13Dを提出した人はいますか?」
  • 「SpaceXは上場前に、非公開の資金調達ラウンドでいくら調達しましたか?」
  • 「前四半期におけるBridgewaterの保有銘柄上位10件を教えてください」
  • 「過去1時間に提出された8-Kはどれですか?また、どの項目が報告されましたか?」
  • 「先週提出されたSchedule 13Dをすべて一覧表示してください」
  • 「Amazonの最新の10-K提出書類を表示してください」
  • 「名称に『energy』が含まれる、NYSE上場の銘柄を教えてください」
  • 「AppleはSECにどのような財務指標を報告していますか?」
  • 「Airbnbは2025年第1四半期の決算発表で、どのような売上高見通しを示しましたか?」
  • 「Teslaの最新の10-Kに記載されたリスク要因を要約してください」
  • 「2024年に売上高が最も高かった企業はどこですか?」

利用可能なツール

ツール説明
sec_configure初回セットアップ — 連絡先メールアドレスを保存します
sec_lookup_cikティッカーをSEC CIK番号に対応付けます。または、ファンドマネージャー、非公開発行体、ティッカーのない個人を含む、EDGARのすべての提出者を名前で検索します
sec_company_infoSICコード、業種、設立州、会計年度末、住所
sec_recent_filings直接URL付きの最近の提出書類(10-K、10-Q、8-Kなど)。書式タイプのフィルターで必要な場合は、古い履歴も自動的にページをたどって検索します。ティッカーを指定しない場合は、リアルタイムでEDGAR全体から最新の提出書類をフォーム別に取得し、各提出書類の当事者と8-Kの項目も含めます
sec_filing_text提出書類または添付資料(10-K、10-Q、8-K、決算発表EX-99.1、委任状)のテキストを取得します。セクションの一覧、項目別のセクション、文書内検索、任意の箇所からのページ取得が可能です。提出書類を指定すると、文書を種類別に一覧表示します
sec_full_text_search2001年以降の提出書類の本文を検索します。ここにあるツールの中で、会社をあらかじめ指定せず、会社が 述べた内容 から企業を見つけられる唯一のツールです。フォーム、ティッカー、日付でフィルターできます(修正書類は指定がない限り除外されます)。検索結果にはすべて文書への直接URLが付いています。クエリを指定しない場合は、2001年以降の任意の期間について、フォームと日付で提出書類を一覧表示します
sec_insider_transactionsフォーム3、4、5 — 誰がいつ何株をいくらで購入または売却したかを、取引コードを平易な言葉で示し、脚注も解決して取得します。また、インサイダーによる売却予定通知であるフォーム144も対象とし、10b5-1プランの日付があれば含めます
sec_institutional_holdingsフォーム13F — 機関投資家マネージャー(Berkshire、Bridgewater、BlackRockなど)が各四半期に保有する銘柄を、発行体でフィルター可能なポジションとして取得します。評価額、ポートフォリオに占める割合、議決権限も含みます。13Fにはティッカーがないため、発行体名は提出書類の記載どおりです
sec_private_offeringsフォームD — 非公開企業、ファンド、公開企業が登録募集を行わずに調達した資金を取得します。募集額と販売額、投資家、申告された免除規定、支払われたブローカー報酬、記載された役員・取締役・プロモーターも含みます
sec_beneficial_ownershipスケジュール13Dおよび13G — 会社の5%超を保有する者について、議決権および処分権、種類別の保有割合、13Dの場合は保有者が表明した目的を取得します。保有者のCIKを指定すると、その保有者が5%超を保有する銘柄を取得できます
sec_financial_conceptXBRLから過去の財務データ(売上高、純利益、EPS、資産など)を取得します。デフォルトでは最新の20件の事実を取得し、ページをたどって古い履歴も参照できます
sec_list_tickersSEC登録済みのすべてのティッカーを取引所情報付きで検索・一覧表示します。1ページあたり50件で、ページをたどって表示できます
sec_company_facts企業が報告するすべてのXBRL概念(指標)を特定します
sec_xbrl_frames指定期間の財務指標を企業間で比較します

ティッカーを受け取るツールでは、CIK(1163302、0001163302、または CIK0001163302)も指定できます。SECのティッカー一覧には現行のティッカーのみが掲載されているため、 買収、上場廃止、または社名変更された企業にはCIKでのみアクセスできます。sec_lookup_cikに nameを指定すると企業を見つけられ、全文検索のヒットとフレームの行にもCIKが含まれます。

修正報告(10-K/A など)

末尾が /A のフォームは、以前に提出されたフォームを修正するものです。10-K/A は、完全な年次報告書ではないことがよくあります。規則 12b-15 で求められるのは、変更対象となる各項目の全文だけです。そのため、最も一般的な修正報告書は Part III(取締役、報酬、所有権)のみで、委任状説明書が 120 日の期限に間に合わなかった場合に提出されます。その他には、添付書類を追加または修正するものもあります。残りは、元の数値を置き換える修正再表示です。たとえば、Apple は 2010 年 1 月の 10-K/A で、新しい収益認識規則に基づく 2009 会計年度の報告書を再提出しました。

そのため、sec-mcp では、明示的に指定されない限り修正報告書を除外します。

  • sec_financial_concept の annual/quarterly 期間フィルターは、基本フォームのみを対象にします。修正対象の期間は元の提出書類ですでにカバーされており、両方を含めると、1 つの期間について 2 つの数値が報告されてしまいます。修正再表示された数値が必要な場合は、include_amendments: true を渡して対象に含めてください。Apple の 2009 会計年度の売上高は、元の 10-K では 365 億ドル、10-K/A では 429 億ドルです。その場合、amended_facts がその件数をカウントします。
  • フォームフィルターを指定した sec_full_text_search では、修正報告書が除外されます。EDGAR 自体は除外しません。提出書類の root フォームでフィルタリングするため、forms=10-K は 10-K/A も返します。修正報告書を取得するには、フォームを直接指定する(10-K/A)、両方を指定する(10-K,10-K/A)、または include_amendments: true を渡してください。返された修正報告書には amendment: true のマークが付きます。

この検索フィルタリングは EDGAR による処理の後に行われるため、レスポンスの次の 2 つの部分は通常の検索とは異なる動作をします。

  • total は、除外された修正報告書も含む EDGAR の件数のままです。total_is_upper_bound が付与されます。さらに 10000 件で上限に達した場合は、total_is_approximate が付与されます。各ページには amendments_excluded が表示されます。
  • ページ送りには next_offset を使用する必要があります。修正報告書がスキップされるため、ページのヒット件数は limit 未満になる場合があります。そのため、offset + returned を使うと、修正報告書を再度取得してしまいます。

sec_financial_concept でよく使われる XBRL の概念

概念内容
Revenues総収益
NetIncomeLoss純利益/損失
EarningsPerShareBasic基本 EPS
EarningsPerShareDiluted希薄化後 EPS
Assets総資産
Liabilities総負債
StockholdersEquity株主資本
OperatingIncomeLoss営業利益/損失
CashAndCashEquivalentsAtCarryingValue現金および現金同等物
CommonStockSharesOutstanding発行済普通株式数

開発

cargo test          # offline; hits no network

また、オプトイン方式のライブテストスイートもあります。ビルド済みサーバーを stdio 経由で実際の SEC EDGAR API に接続してテストするもので、レスポンス形式の変更や URL 構築上の予期しない問題など、オフラインテストでは検出できない事象を確認できます。SEC_MCP_LIVE_EMAIL が設定されていない場合はスキップされます。この変数を設定すると、テストが有効になると同時に、公正利用ポリシーで必要とされる連絡先メールアドレスも指定されます(アドレスは環境変数から読み取られ、コミットされることはありません)。

SEC_MCP_LIVE_EMAIL="[email protected]" cargo test --test live_smoke -- --nocapture

このテストスイートは、1 つのサーバープロセスを通じて順次実行されるため、EDGAR のレート制限を十分に下回ります。

ライセンス

MIT — 詳細は LICENSE.md を参照してください。

MCP レジストリ

MCP レジストリの所有権確認トークン(crates.io にレンダリングされたこのクレートの README から読み取られます)。

レジストリ所有権トークン:mcp-name: io.github.brechanbech/sec-mcp

リリース

バージョンは公開後に変更できません。crates.io では取り下げはできますが削除はできず、バージョン番号を再利用することもできないため、順序が重要です。

  1. cargo test と cargo clippy --all-targets が問題なく完了することを確認します。

  2. Cargo.toml の version を更新します。

  3. server.json の version を更新します。トップレベルのものと packages[] の下にあるものの、両方です。これを強制するものは何もありません。スクリプトも、CI も、このファイルを読むテストもなく、抜け落ちるのはこの手順です。このマニフェストは正しいままでしたが、レジストリのエントリーは正しくありませんでした。手順 6 が実行されなかったため、0.5.0、0.5.1、0.5.2 は crates.io に公開された一方、レジストリには 0.4.4 と掲載されたままでした。

  4. コミットしてプッシュし、公開後ではなく公開前に CI が成功するのを待ちます。

  5. cargo publish --dry-run を実行します。パッケージ化されたコピーからコンパイルするため、クレートが同梱されていないファイルに依存している場合に検出できます。その後、cargo publish を実行します。どちらにも --target-dir target/package-verify を指定してください。指定しない場合、検証ビルドは通常のビルドと同じユニットハッシュで target/debug を共有するため、バイナリのフィンガープリントは、手元のものではなくパッケージ化された src/main.rs を追跡するようになります。その後に変更を加えても target/debug/sec-mcp は再ビルドされず、tests/live_smoke.rs のオフラインの stdio テストは、公開済みのコードを気付かずに実行します。そうなった場合は、cargo clean -p sec-mcp で修復できます。

  6. crates.io への公開後に、MCP レジストリへ公開します。順序を逆にしてはいけません。レジストリは crates.io 上のこのクレートのレンダリング済み READMEから mcp-name を読み取って名前空間を検証し、server.json には、すでにそこで公開されている必要がある cargo のバージョンが記載されているためです。

    mcp-publisher validate      # checks server.json against the live registry
    mcp-publisher login github  # interactive, for the io.github.brechanbech/* namespace
    mcp-publisher publish
    
  7. Codeberg と GitHub ミラーの両方でタグのリリースを作成し、そのバージョンの CHANGELOG セクションをリリースノートとして使います。タグだけではリリースになりません。Glama は GitHub ミラーを読み取るため、すべてのタグがありながらリリースがなかった際に「安定版リリースが見つかりません」と報告しました。

コメント

MCP は初めてですか?

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

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