EdgarTools について
EdgarToolsは、SEC EDGARの提出書類を構造化データに変換するオープンソースのPythonライブラリです。金融リサーチ担当者や開発者向けに、型付きオブジェクト、標準化された財務諸表、書類テキストを一つのAPIで提供します。
主な機能
- 01SECフォームの型付きオブジェクト
- 02標準化された財務諸表
- 03提出書類の全文検索
- 04書類のセクションとMarkdown
- 05保有銘柄とインサイダー取引の解析
活用シーン
- 01企業の財務諸表の比較
- 02機関投資家の保有銘柄の調査
- 03インサイダー取引の確認
- 04RAG用の提出書類テキストの準備
MCP 対応
EdgarToolsは`ai`エクストラにローカルMCPサーバーを含み、MCPクライアントにSEC提出書類の機能を提供します。edgar.toolsから利用できるホスト型MCPサーバーもあります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx edgartoolsEDGAR_IDENTITYYour name and email for SEC EDGAR API identification (e.g. 'Your Name [email protected]')ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
13掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| annual | boolean | いいえ | 非推奨です。代わりに 'period' を使用してください。年次(true)または四半期(false)の財務情報 |
| period | enum | いいえ | 期間タイプ:'annual'、'quarterly'、または 'ttm'(直近 12 か月)annual | quarterly | ttm |
| include | array | いいえ | 含めるデータ。デフォルト:profile、financials、filings |
| periods | integer | いいえ | 財務期間数(デフォルトは 4) |
| identifier | string | はい | 企業のティッカー(AAPL)、CIK(320193)、または名称(Apple Inc) |
詳細
EdgarTools — SEC EDGAR 提出書類向け Python ライブラリ
EdgarTools は、SEC EDGAR の提出書類を構造化データとして扱うための Python ライブラリです。財務諸表、インサイダー取引、ファンドの保有銘柄、委任状説明書など、数十種類の提出書類を、統一された Python API で利用できます。SEC は1994年以降のすべての提出書類を無料で公開していますが、そのほとんどはすぐに使える形式ではありません。EdgarTools は提出書類を型付きの Python オブジェクトに変換します。無料のオープンソースで、MIT ライセンスです。
ドキュメント · チートシート · エージェント向け:スキル · MCP サーバー · ホステッドサービス:edgar.tools

クイックスタート
1. インストールします。 パッケージ名は edgartools、インポートするモジュールは edgar です。Python 3.11 以降が必要です。
uv add edgartools # or: pip install edgartools
2. SEC に連絡先を登録します。 EDGAR では、リクエストごとに連絡先メールアドレスが必要です。キーやサインアップ、レート制限のプランはありません。
from edgar import Company, set_identity
set_identity("[email protected]")
3. データを取得します。
# Five fiscal years of standardized income statement, from XBRL
Company("NVDA").income_statement(periods=5)
#> Total Revenue $215.9B $130.5B $60.9B
SEC の API を直接呼び出すだけでは不十分なのはなぜですか?
data.sec.gov で取得できるのは、JSON 形式のファクトと提出書類のインデックスです。それ以降の処理はすべて自分で実装する必要があります。EdgarTools がその部分を担います。
- セクションのテキストと Markdown。 10-K や 10-Q の Item 1A、Item 7、その他の Item をテキストで取得でき、RAG 向けに提出書類全体を Markdown にできます。生の HTML では、自作のパーサーがうまく動かなくなることがあります。
- XML ではなく、解析済みのフォーム。 13F の保有銘柄、Form 4 の取引、N-PORT のポートフォリオ、8-K の項目を、型付きオブジェクトや DataFrame として扱えます。
- 整合性のある財務諸表。 提出企業間で行項目が標準化されているため、銀行でも半導体メーカーでも「Total Revenue」は同じ意味になります。四半期単独の数値(Q4 は 10-K から算出)や直近12か月の数値にも対応しています。
- 検索と各種機能。 提出書類の内容を対象とした全文検索、リアルタイムの提出書類フィード、レート制限、キャッシュ、オフライン保存を利用できます。
自身のプロセス内で動作し、MIT ライセンスで、API キーやベンダーの利用枠は不要です。ただし、SEC のフェアアクセス制限である毎秒10リクエストは適用され、EdgarTools はその制限を守ります。
できること
SEC 提出書類を横断する全文検索
フォームの種類や日付だけでなく、2001年以降のすべての提出書類のテキストを検索できます。
from edgar import search_filings
# Every 10-K filed since 2025 that mentions tariffs
results = search_filings("tariff", forms="10-K", start_date="2025-01-01")
hit = results[0]
hit.accession_number, hit.form, hit.filed, hit.company # a hit's fields; filed is the filing date
hit.get_filing() # the Filing behind a hit, ready for .obj() or .markdown()
# Structured: 8-Ks that reported a cybersecurity incident (Item 1.05) in 2025
search_filings(forms="8-K", items="1.05", start_date="2025-01-01", end_date="2025-12-31")
#> 19 total
複数年にわたる財務諸表
Company("MSFT").income_statement(periods=10) # also .balance_sheet() and .cash_flow_statement()
企業間で共通の指標
位置ではなく、標準化されたラベルで行を選びます。損益計算書の先頭行が常に総収益とは限りません。
import pandas as pd
revenue = {
ticker: Company(ticker).income_statement(periods=3, as_dataframe=True)
.set_index("label").filter(like="FY").loc["Total Revenue"] / 1e9
for ticker in ["JPM", "PFE", "CAT"]
}
pd.DataFrame(revenue).round(1) # $ billions
#> FY 2025 182.4 62.6 67.6
四半期の数値と直近12か月
nvda = Company("NVDA")
nvda.get_ttm_revenue() # the last four quarters, summed
nvda.income_statement(period="quarterly", periods=8) # discrete quarters; Q4 is derived from the 10-K
RAG 向けのセクションと Markdown
filing = Company("NVDA").latest("10-K")
filing.markdown() # the whole filing as markdown
tenk = filing.obj()
tenk.risk_factors # Item 1A as text
tenk["Item 1C"] # any Item by number
あらゆる条件で提出書類を検索
from edgar import find, get_current_filings, get_filings
get_filings(2025, 4, form="10-K") # every 10-K filed in Q4 2025
get_current_filings() # the live feed, as SEC posts it
find("0000320193-25-000079") # an accession number, CIK or ticker


13Fの機関投資家保有状況
thirteenf = Company("BRK.A").get_filings(form="13F-HR").latest().obj()
thirteenf.holdings # one row per security: Issuer, Cusip, Ticker, SharesPrnAmount, Value, ...

Form 4によるインサイダー取引
form4 = Company("TSLA").get_filings(form="4").latest().obj()
form4.to_dataframe() # buys, sells, grants and exercises

N-PORTによるファンド保有状況
from edgar import Fund
Fund("VOO").get_portfolio() # the latest N-PORT holdings as a DataFrame
8-Kのイベントと決算発表
eightk = find("0001045810-26-000073").obj() # NVIDIA, 2026-08-26
eightk.items # ['Item 2.02', 'Item 9.01']
eightk.earnings # the EX-99.1 press release tables, parsed
ライブラリかホストサービスか?
EdgarToolsはこのライブラリです。無料でMITライセンスが適用され、独自のPythonプロセスで実行できます。**edgar.tools**は、このライブラリを基盤に構築されたホスト型プラットフォームです。同じ解析機能を、常に稼働させて最新の状態に保ち、すべての回答に提出書類の出典を付けて提供します。料金は解析機能に対してではなく、その機能を実行し、質問に答えられる状態にしておくことに対して発生します。プラットフォームを販売するために、ライブラリの機能が削除されることはありません。
| こんな場合は… | こちらをお使いください |
|---|---|
| パイプライン、バックフィル、バックテスト、モデル用コーパス、ノートブック、カスタム結合など、動作するものを構築する場合。数百の銘柄に対して繰り返し実行するものや、独自のネットワーク内で実行するもの | ライブラリ |
| 構築するのではなく質問する場合:担当している企業が提出した書類と前回からの変更点、売却した人物、保有者、関与したすべての企業を横断した特定人物、全銘柄を対象にしたスクリーニング、アラート、チームに転送・共有できる出典付き回答など。ブラウザー、スマートフォン、Excel、Claude、ChatGPT、またはPythonを実行できないエージェントから利用する場合 | edgar.tools。無料アカウントですぐに始められます |
| パイプラインを実行せずに、すべての行を提出書類まで追跡できる、維持管理されたデータセット(インサイダー取引、13F、BDCポートフォリオ、重要イベント)を所有する場合 | edgar.toolsのデータライセンス |
| スクリプトから既知の提出書類またはJSONドキュメントを1つだけ取得する場合 | どちらでもありません:EDGARを直接呼び出してください |
どちらにもMCP サーバーがあります。ライブラリのMCP サーバーはローカルで実行され(「AI連携」を参照)、edgar.toolsのMCP サーバーはapp.edgar.tools/mcpでホストされています。クライアントごとに接続するのはどちらか一方にしてください。機能が重複しているため、両方接続するとアシスタントの振り分け先が分散します。
AI連携
EdgarToolsには、aiエクストラにエージェントスキルとローカルMCP サーバーが含まれています。Pythonを実行できないアシスタントには、上記のセクションにあるホスト型コネクターをお使いください。
pip install "edgartools[ai]"
python -c "from edgar.ai import install_skill; install_skill()" # the skill, for Claude Code and Claude Desktop
MCP サーバーは、あらゆるMCPクライアントで動作します。Claude Desktopの場合は、claude_desktop_config.jsonに追加してください。
{
"mcpServers": {
"edgartools": {
"command": "uvx",
"args": ["--from", "edgartools[ai]", "edgartools-mcp"],
"env": {
"EDGAR_IDENTITY": "Your Name [email protected]"
}
}
}
}
uvxにはuvが必要です。利用できない場合は、pip install "edgartools[ai]"を実行してから、python -m edgar.aiを実行してください。その他のクライアントの設定方法:MCP サーバーガイド · スキルガイド。
プロジェクトを支援する
SECは毎年、提出書類の形式を変更し、新しいXBRLタクソノミーを公開しています。スポンサーからの支援によってパーサーを最新の状態に保ち、新たな開示が登場した際に新しいパーサーを開発できます。
- GitHub Sponsors:月額または一度限りの支援です。企業は既存のGitHub請求に支援額を加算できます。
- Buy Me a Coffee:一度限りのお礼として支援できます。
- コンサルティング:SECデータパイプラインや、それを基盤とした金融AIについて、ライブラリの作者が支援します。
ドキュメント、サポート、コントリビュート
- ドキュメント · チートシート · ノートブック · ブログ
- 質問はディスカッションへ、バグ報告や機能リクエストはイシューへお寄せください。
- AIを活用したコントリビュートを含め、貢献を歓迎します。コントリビューションガイドを読み、アシスタントにAGENTS.mdを参照させてください。
EdgarToolsはMITライセンスに基づいて配布されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。