mcpField
P
pp-sec-edgar

pp-sec-edgar

github.com/mvanhornデータ・データベース2.1k204 回インストール今日更新
リポジトリ

pp-sec-edgar について

pp-sec-edgarは、SEC提出書類、XBRL財務データ、インサイダー取引、機関投資家の保有状況を調べるCLIスキルです。ローカルSQLiteを使った企業横断分析や提出書類シグナルの抽出に対応し、読み取り専用で動作します。

主な機能

  1. 01SEC提出書類とXBRLの検索
  2. 02Form 4と13Fの分析
  3. 03企業横断の財務データ集計
  4. 04提出書類の監視とイベント絞り込み
  5. 05ローカルSQLiteの同期と検索

活用シーン

  1. 01企業の期間別売上高を比較
  2. 02インサイダー取引の集積を検出
  3. 03指定した8-K項目を監視
  4. 04業種別に財務指標を比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-sec-edgar

インストール後、Claude Code で/pp-sec-edgarを入力して読み込まれたか確認します。

詳細

SEC EDGAR — Printing Press CLI

前提条件:CLI のインストール

このスキルは sec-edgar-pp-cli バイナリを使用します。**このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。**インストールされていない場合は、先にインストールしてください。

  1. Printing Press インストーラーを使ってインストールします。バイナリの既定の保存先は、macOS/Linux では $HOME/.local/bin、Windows では %LOCALAPPDATA%\Programs\PrintingPress\bin です。
    npx -y @mvanhorn/printing-press-library install sec-edgar --cli-only
    
  2. 確認します:sec-edgar-pp-cli --version
  3. スキルを実行するエージェント/ランタイムの $PATH に、報告されたインストールディレクトリが含まれていることを確認します。

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールする方法に切り替えてください(Go 1.26.6 以降が必要です)。

go install github.com/mvanhorn/printing-press-library/library/developer-tools/sec-edgar/cmd/sec-edgar-pp-cli@latest

インストール後に --version で「command not found」と表示される場合、ランタイムからバイナリディレクトリを $PATH 経由で参照できていません。確認に成功するまで、スキルのコマンドを実行しないでください。

この CLI を使う場合

多くの企業や期間にわたって、SEC 提出書類、XBRL 財務データ、インサイダー取引(Form 4)、または機関投資家の保有状況(13F)を照会する必要がある場合は、この CLI を選択してください。特に、呼び出しごとに API を往復するよりも、ローカルの SQLite ストアを利用するほうが適している場合に便利です。単一の提出書類を一度だけ読み取る場合は、型付きエンドポイントのミラー(filings get、facts get)を同期なしで利用できます。複数企業を横断した分析、インサイダーのクラスター分析、同業他社グループのベンチマーク、または提出書類のリアルタイム監視では、transcendence コマンドを使うことで、通常なら API 呼び出しを 10 回行い Python でループ処理するところを、CLI の呼び出し 1 回で実行できます。

この CLI を使わない場合

作成、更新、削除、公開、コメント、賛成票の投票、招待、注文、メッセージの送信、予約、購入、またはリモート状態の変更が必要なリクエストには、この CLI を使用しないでください。この印刷用 CLI が提供するのは、確認、エクスポート、同期、分析のための読み取り専用コマンドです。

独自の機能

この API のほかのツールでは利用できない機能です。

蓄積されるローカル状態
  • watchlist items — 保存済みの CIK ウォッチリスト全体を対象に、指定期間内に提出された 8-K を項目コード別に分類して表示します(2.05 は事業再編、5.02 は経営幹部の異動、4.02 は非依拠)。

    株式アナリストは企業別ではなく、項目コード別に提出書類を選別します。エージェントが項目別に企業横断で 8-K を絞り込む必要がある場合に選択してください。

    sec-edgar-pp-cli watchlist items --since 30d --item 2.05,5.02,4.02 --cik 0000320193,0000789019,0001652044 --json
    
  • insider-cluster — ローリング N 日間に、3 人以上の異なるインサイダーが同じ取引コード(市場での買い付けまたは売却)で Form 4 を提出した発行体を特定します。

    インサイダー売却の集中は、古典的なフォレンジック指標です。エージェントが生の Form 4 データから導出したシグナルを必要とする場合に選択してください。

    sec-edgar-pp-cli insider-cluster --within 5d --min-insiders 3 --code S --since 90d --json
    
  • industry-bench — 1 つの報告期間の XBRL コンセプトを取り上げ、SIC コード別に分類し、その SIC に該当するすべての上場企業の提出者を対象にパーセンタイル統計(p10/p50/p90)を出力します。

    クオンツ研究者や株式アナリストには、同業他社グループのベンチマークが必要です。エージェントが「X は同業他社と比べてどうか」という質問に答える場合に選択してください。

    sec-edgar-pp-cli industry-bench --tag us-gaap:Revenues --period CY2024Q4 --sic 7372 --stat p50,p90 --json
    
  • cross-section — 明示的に指定した企業リストと直近 N 期間を対象に、1 つの XBRL コンセプトをピボットします。幅広のピボットテーブルとして出力します(企業ごとに 1 行、期間ごとに 1 列)。

    比較対象企業セットの分析は、アナリストが最も頻繁に行う作業の 1 つです。エージェントが明示的なティッカーリストに含まれる企業のファンダメンタルズを比較する場合に選択してください。

    sec-edgar-pp-cli cross-section --tag us-gaap:Revenues --ticker AAPL,MSFT,GOOGL --periods last8 --json
    
  • holdings delta — ある機関投資家の 13F 保有状況を、連続する 2 四半期間で比較します。各発行体を ADD/EXIT/INCREASE/DECREASE に分類し、株式数の差分を示します。

    機関投資家の資金フローの追跡は、典型的なファクターシグナルです。エージェントが四半期ごとにファンドの保有ポジションを比較する場合に選択してください。

    sec-edgar-pp-cli holdings delta --filer-cik 0001067983 --period 2024Q4 --vs 2024Q3 --json
    
エージェント向けのネイティブな仕組み
  • watch — SEC Atom の getcurrent フィードを、多次元フィルタリング(フォーム種別、8-K 項目、CIK ウォッチリスト、キーワードの正規表現)でストリーミングします。一致する項目ごとに NDJSON の 1 行を出力します。

    特定の提出イベントを監視するエージェントは、CIK ごとに提出書類をポーリングするのではなく、このストリームを購読してください。

    sec-edgar-pp-cli watch --form 8-K --item 2.05 --cik 0000320193,0000789019 --keyword 'going concern' --one-shot --json
    
SEC 固有のシグナル
  • restatements — 期間内に提出された 8-K の項目 4.02(過去の財務情報に依拠できない旨)と、すべての 10-K/A および 10-Q/A 修正報告書を表示します。典型的な会計不正のシグナルです。

    フォレンジック会計エージェントは、問題の先行指標として修正報告書を探します。エージェントが会計品質のシグナルを必要とする場合に選択してください。

    sec-edgar-pp-cli restatements --since 90d --json
    
  • late-filers — 期間内に NT 10-K、NT 10-Q、または NT 20-F を提出した発行体を検索します。SEC に対する「報告期限に間に合わない」という通知です。

    提出の遅延は、業務上または会計上の問題を示す先行指標です。エージェントがリスクのある企業にフラグを付ける必要がある場合に選択してください。

    sec-edgar-pp-cli late-filers --since 90d --form 10-K --json
    
委任状と所有権
  • ownership — ティッカー、名称、または CIK を解決し、会社の最新の DEF 14A 委任状を探して文書を取得し、「Security Ownership of Certain Beneficial Owners」セクションを読み取り可能なテキストとして抽出します。

    実質的所有者の表は、ほぼ同じ見出しの下にすべての委任状で掲載されていますが、そこにたどり着くには、提出書類の検索 → 文書の取得 → HTML セクションの抽出を連鎖させる必要があります。この一連の処理を提供する SEC エンドポイントはありません。エージェントが委任状自体から会社の所有者を知る必要がある場合に選択してください。

    sec-edgar-pp-cli ownership MSFT --json
    

コマンドリファレンス

companies — 企業ディレクトリ(ティッカー → CIK → 名称)

  • sec-edgar-pp-cli companies tickers — 上場ティッカーを持つすべての株式公開発行体の、完全なティッカーから CIK への対応表(約 1 万件)
  • sec-edgar-pp-cli companies tickers_exchange — 取引所(Nasdaq、NYSE など)ごとのティッカーから CIK への対応表
  • sec-edgar-pp-cli companies tickers_mf — 投資信託のティッカーから CIK への対応表(1 株式クラスにつき 1 行)

facts — XBRL 財務情報(data.sec.gov)

  • sec-edgar-pp-cli facts company — すべての報告期間にわたる、企業の全 XBRL ファクトを取得します
  • sec-edgar-pp-cli facts frame — 1 期間について、すべての公開提出者が報告した 1 つの XBRL 概念の値を取得します(企業横断スライス)
  • sec-edgar-pp-cli facts get — 1 社の 1 つの XBRL 概念の時系列を取得します(すべての提出書類にわたる 1 つのタグ)

submissions — 提出者(企業)の提出履歴

  • sec-edgar-pp-cli submissions <cik> — 10 桁のゼロ埋め CIK を指定して、提出者の完全な提出履歴を取得します
適切なコマンドを見つける

実行したい内容は分かっているものの、どのコマンドを使うか分からない場合は、CLI に直接問い合わせてください。

sec-edgar-pp-cli which "<capability in your own words>"

which は、自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最も一致するコマンドに解決します。終了コード 0 は 1 つ以上の一致があることを意味し、終了コード 2 は確かな一致がないことを意味します。その場合は --help にフォールバックするか、より絞り込んだ問い合わせを使用してください。

レシピ

Apple の損益計算書の推移(エージェント向け)
sec-edgar-pp-cli facts statement --cik 0000320193 --kind income --periods last8 --agent --select 'facts.us-gaap.Revenues,facts.us-gaap.OperatingIncomeLoss,facts.us-gaap.NetIncomeLoss'

XBRL のレスポンスは深くネストされています。--select とドット区切りのパスを使うと、過去 8 期間についてエージェントに必要な 3 つの概念だけを選択できます。

インサイダーの集団買い監視リストのスキャン
sec-edgar-pp-cli insider-cluster --within 14d --min-insiders 3 --code P --since 90d --json

過去 90 日間における、14 日以内に 3 人以上のインサイダーが行った公開市場でのインサイダー買い(Form 4 のコード P)。ストアを利用した JOIN によって、1 つのコマンドで実行できます。

四半期別の比較企業セット売上高ピボット
sec-edgar-pp-cli cross-section --tag us-gaap:Revenues --cik 0000320193,0000789019,0001652044 --periods last8 --json

Apple、Microsoft、Alphabet の過去 8 四半期の売上高を、1 つのピボットとして表示します。両方の軸を制約しています。edgartools と frames エンドポイントのどちらも、この形式には対応していません。

監視リストの月曜トリアージ
sec-edgar-pp-cli watchlist items --since 30d --item 2.05,5.02,4.02 --cik 0000320193,0000789019,0001652044 --json --agent

CIK を横断した 8-K 項目のピボットです。Maya が毎週月曜日に行う手順そのものです。監視リストファイルには、1 行につき 1 つの CIK を記述します。

提出遅延企業のコンプライアンススキャン
sec-edgar-pp-cli late-filers --since 60d --form 10-K --json

NT 10-K 提出書類(報告期限に間に合わないと警告した企業)を表示します。ローカルの提出書類テーブルに対する単一の SELECT です。

認証の設定

SEC EDGAR には API キーは不要です。すべてのリクエストには、人名と連絡先メールアドレスを含む User-Agent ヘッダーが必要です(例:'Alex Researcher [email protected]')。環境に SEC_EDGAR_USER_AGENT を設定してください。設定がない場合、CLI は実行されません。SEC はホストごとに 1 秒あたり 10 リクエストのレート制限を適用します。この CLI はジッターを加え、1 秒あたり 8 リクエストに制限しています。

sec-edgar-pp-cli doctor を実行して、設定を確認してください。

エージェントモード

任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。

  • パイプ可能 — stdout に JSON、stderr にエラーを出力します

  • フィルタ可能 — --select でフィールドの一部を保持します。ドット区切りのパスはネストされた構造をたどり、配列は各要素を順に処理します。出力量の多い API でコンテキストを小さく保つうえで重要です:

    sec-edgar-pp-cli facts get --cik example-value --taxonomy example-value --tag example-value --agent --select id,name,status
    
  • プレビュー可能 — --dry-run で送信せずにリクエストを表示します

  • オフライン対応 — sync/search コマンドは、利用可能な場合にローカルの SQLite ストアを使用できます

  • 非対話型 — プロンプトは表示されず、すべての入力をフラグで指定します

  • 読み取り専用 — 作成、更新、削除、公開、コメント、賛成票、招待、注文、送信、その他の変更を伴うリクエストには、この CLI を使用しないでください

レスポンスエンベロープ

ローカルストアまたは API から読み取るコマンドは、出力を出所情報のエンベロープでラップします:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

データには .results を解析し、ライブデータかローカルデータかを確認するには .meta.source を参照してください。人間が読める N results (live) というサマリーは、stdout がターミナルの場合に限り stderr に出力されます。パイプやエージェントの利用者には、stdout に純粋な JSON が渡されます。

エージェントへのフィードバック

あなた(またはエージェント)がこの CLI の気になる点に気づいたら、記録してください:

sec-edgar-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
sec-edgar-pp-cli feedback --stdin < notes.txt
sec-edgar-pp-cli feedback list --json --limit 10

エントリーは ~/.sec-edgar-pp-cli/feedback.jsonl にローカル保存されます。SEC_EDGAR_FEEDBACK_ENDPOINT が設定され、さらに --send が渡されるか SEC_EDGAR_FEEDBACK_AUTO_SEND=true が設定されている場合を除き、POST されることはありません。デフォルトの動作ではローカルにのみ保存されます。

バグ報告ではなく、意外に感じたことを書いてください。短く、具体的に、1 行で書きます。積み重なるのはその部分です。

出力の配信

すべてのコマンドで --deliver <sink> を指定できます。出力は stdout に加えて、または stdout の代わりに、指定したシンクへ送られます。これにより、エージェントは手動でパイプをつながなくてもコマンドの結果を振り分けられます。次の 3 つのシンクに対応しています:

シンク動作
stdoutデフォルト。stdout のみに書き込みます
file:<path>出力を <path> にアトミックに書き込みます(tmp + rename)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

未対応のスキームは、対応するスキームの一覧を示す構造化エラーとともに拒否されます。Webhook の失敗時はゼロ以外の終了コードを返し、URL と HTTP ステータスを stderr に記録します。

名前付きプロファイル

プロファイルは、保存して呼び出しのたびに再利用するフラグ値のセットです。スケジュールされたエージェントが毎回同じ設定で同じコマンドを呼び出す場合に使います。これは HeyGen の「Beacon」パターンです。

sec-edgar-pp-cli profile save briefing --json
sec-edgar-pp-cli --profile briefing facts get --cik example-value --taxonomy example-value --tag example-value
sec-edgar-pp-cli profile list --json
sec-edgar-pp-cli profile show briefing
sec-edgar-pp-cli profile delete briefing --yes

明示的に指定したフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-context は、実行時にプロファイルを検出できるよう、利用可能なすべてのプロファイルを available_profiles に一覧表示します。

終了コード

コード意味
0成功
2使用方法のエラー(引数が不正)
3リソースが見つかりません
4認証が必要です
5API エラー(上流の問題)
7レート制限中(待ってから再試行してください)
10設定エラー

引数の解析

$ARGUMENTS を解析します:

  1. 空、help、または --help → sec-edgar-pp-cli --help の出力を表示
  2. install で始まる → mcp で終わる場合は MCP のインストール。それ以外の場合は上記の前提条件を参照
  3. その他すべて → 直接使用(CLI コマンドとして --agent を付けて実行)

MCP サーバーのインストール

  1. MCP サーバーをインストールします:
    go install github.com/mvanhorn/printing-press-library/library/developer-tools/sec-edgar/cmd/sec-edgar-pp-mcp@latest
    
  2. Claude Code に登録します:
    claude mcp add sec-edgar-pp-mcp -- sec-edgar-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

  1. インストールされているか確認します:which sec-edgar-pp-cli 見つからない場合は、インストールを提案します(このスキルの先頭にある前提条件を参照)。
  2. ユーザーのクエリに最適なコマンドを、上記の独自の機能とコマンドリファレンスから選びます。
  3. --agent フラグを付けて実行します:
    sec-edgar-pp-cli <command> [subcommand] [args] --agent
    
  4. あいまいな場合は、サブコマンドのヘルプを確認します:sec-edgar-pp-cli <command> --help。

コメント