MCP(Model Context Protocol)サーバーを AI クライアントにつなぐと、チャットの裏側では個々のツール呼び出しが走っています。この記事では、EDINET の有価証券報告書を返す MCP サーバー(Kabuken)を例に、自動車メーカー4社の比較がクライアント側から見てどう組み立てられているかを分解します。どのツールが、どの引数で、何回呼ばれるか。応答のどのフィールドを見れば数値の出どころが分かるか。そして、XBRL 財務データを横並びにするときに踏みやすい落とし穴です。
比較の結果(4社の全表と解説)は intellics.ai ブログの記事にまとまっています。この記事では結果ではなく仕組みを扱うので、数値は説明に必要な範囲でしか引きません。
対象と前提
- 企業:トヨタ自動車(EDINET コード E02144)、本田技研工業(E02166)、スズキ(E02167)、SUBARU(E02152)
- 書類:各社の 2026年3月期の有価証券報告書。EDINET の書類管理番号は S100Y8NY(トヨタ)、S100YDD9(ホンダ)、S100YFG2(スズキ)、S100YFKZ(SUBARU)
- データ:すべて EDINET に提出された書類の XBRL から読んだもの。単位は百万円
- クライアント:この記事では Claude のウェブ版と Claude Code を使っています。ほかの MCP クライアントの接続手順はドキュメント(後述)を参照してください
本記事は MCP の利用方法の解説であり、投資助言ではありません。株価は扱いませんし、特定の企業への投資を勧めるものでもありません。
1. 接続
エンドポイントは1つです。
https://kabuken.intellics.ai/mcp
Claude Code では次のコマンドで登録し、/mcp から kabuken を選んでブラウザでサインインします。API キーを設定ファイルに書く必要はありません。
claude mcp add --transport http kabuken https://kabuken.intellics.ai/mcp
Claude のウェブ版では「カスタマイズ」>「コネクタ」>「+ 追加」>「カスタムコネクタを追加」に同じ URL を入れ、サインイン後に「認証する」を選びます。API キーで接続する方法と他クライアントの設定はドキュメントにあります:https://kabuken.intellics.ai/docs/ja/clients/claude-ai/?utm_source=qiita&utm_medium=article&utm_campaign=sector_compare_auto
2. 比較は何回のツール呼び出しでできているか
チャットで5つの質問をすると、クライアントは次の順でツールを呼びます。呼び出し回数と主な引数は、Claude のウェブ版で元記事の5つのプロンプトを実行したときに、ツール呼び出しの許可の表示に出たものです。
| 段階 | ツール | 呼び出し | 主な引数 |
|---|---|---|---|
| 書類を特定する | search_companies |
1回(4社名をまとめて) | 企業名 |
| 〃 | list_documents |
企業ごとに1回、計4回 | 企業の識別子 |
| 主要項目を横並びにする | compare_companies |
1回 | 4社の EDINET コード |
| 3期分を取る | get_company_financials |
企業ごとに1回、計4回 |
period_type: ANNUAL, periods: 3
|
| セグメントに分ける | get_segment_breakdown |
書類ごとに1回、計4回 |
doc_id。SUBARU では軸 jpcrp_cor:OperatingSegmentsAxis で絞り込み、limit 100
|
| 大量保有報告書を引く | get_major_shareholders |
1回 |
E02152, limit 50
|
つまり、横並びの表1枚は compare_companies の1回で返りますが、「その年の書類から取った値」や「セグメントの内訳」が欲しくなると、企業ごと・書類ごとの呼び出しに分かれます。自分のクライアントからスクリプトで呼ぶなら、list_documents で doc_id を確定させてから後段を回すのが自然です。
3. 応答のどこを見るか
各ツールの応答で、数値の出どころを追うために見るフィールドです。入れ子の形はここでは省きます。実際のキー構造は、クライアントで1回呼んで応答をそのまま保存して確認してください。
| ツール | 応答で見るフィールド | 用途 |
|---|---|---|
list_documents |
doc_type_code |
120 が有価証券報告書、130 が訂正報告書。一覧には臨時報告書や大量保有報告書も混ざる |
compare_companies |
各項目の concept_id、期間、連結・個別の区分、accounting_standards、operating_margin_denominator
|
どの XBRL 概念を読んだか、どの基準か。比率計算の分母 |
get_company_financials |
期ごとの doc_id と accounting_standards
|
各期がどの年の書類から来たか、その年の基準 |
get_segment_breakdown |
軸(jpcrp_cor:OperatingSegmentsAxis)、セグメントごとの概念(RevenueFromExternalCustomersIFRS または OperatingRevenueFromExternalCustomersIFRS、OperatingProfitLossIFRS、ImpairmentLossesPLIFRS など) |
外部売上収益・営業利益・減損損失をセグメント別に取る |
get_major_shareholders |
1件ごとの保有割合、報告日、doc_id、change_type(new / change)、purpose
|
大量保有報告書・変更報告書の1件が1行 |
| 全ツール共通 |
attribution ブロック |
出典表示。計算値には「Figures are calculated by Kabuken from EDINET filings, not reported directly by EDINET.」の一文が入る |
個別の XBRL 項目を文脈ごとに読みたいときは get_financial_facts に doc_id を渡します。訂正報告書 S100YYB1 の値が原本 S100YFG2 と同じかどうかは、このツールで両方の書類を読んで比べられます(元記事ではこの方法で両方の書類を読み比べています)。
4. 落とし穴
4-1. 同じ「売上高」ラベルでも概念が違う
compare_companies の表示ラベルは4社とも「売上高」ですが、concept_id を見ると、トヨタだけ TotalNetRevenuesIFRS(営業収益。商品・製品売上収益 45,865,949 と金融事業に係る金融収益 4,819,003 の合計 50,684,952)で、ホンダ・スズキ・SUBARU は RevenueIFRS です。表示ラベルではなく概念 ID でキーを取ってください。
4-2. 「当期純利益」は親会社の所有者に帰属する当期利益
概念は ProfitLossAttributableToOwnersOfParentIFRSSummaryOfBusinessResults です。トヨタでは 3,848,098 で、非支配持分を含む当期利益 3,985,761 ではありません。別の情報源の「純利益」と突き合わせるときは、どちらの定義かを先に揃えます。
4-3. 会計基準の境目をまたがない
スズキの 2024年3月期の報告書(S100TRQC)は日本基準で、概念は jppfs_cor:NetSales と jppfs_cor:OperatingIncome です。2025年3月期(S100W4MT)以降は IFRS です。get_company_financials の応答には期ごとに accounting_standards が入るので、これを見ずに3期分をそのまま並べて増減率を計算すると、別の量を割っていることになります。元記事ではこの境目をまたぐ計算をしていません。
4-4. 訂正報告書をどう扱うか
list_documents には doc_type_code が 130 の訂正報告書が並びます。スズキの S100YYB1(2026-08-25)は原本のインライン XBRL を再添付した訂正で、売上収益・税引前利益・親会社の所有者に帰属する当期利益・親会社の所有者に帰属する持分・総資産は原本と同じ値でした。SUBARU の 2025年3月期にも訂正報告書 S100YF9D(2026-06-22)があります。get_company_financials が返す期ごとの doc_id を見れば、どの書類の値を使っているかが分かります。元記事では、どちらも原本(S100YFG2、S100W1AE)を出典にしています。
4-5. 百万円単位の丸め
セグメントの金額は書類の時点で百万円に丸められています。トヨタの3セグメントの外部売上収益を足すと 50,684,953 で、連結の 50,684,952 と1百万円ずれます。セグメント合計と連結値の一致をアサーションにするなら、許容差を持たせてください。ホンダの4セグメントは売上収益 21,796,610、営業利益 △414,346 で連結とちょうど一致します。
4-6. 決算期と「直近」
この4社はいずれも対象期間 2025-04-01〜2026-03-31 で揃っていますが、「直近の有価証券報告書」は企業ごとに別の期間を指すことがあります。横並びにする前に、応答の期間フィールドで対象期間が揃っているかを確認してください。決算期が違う企業を混ぜるときは、「直近」ではなく期間で揃えます。
4-7. モデルが単位を変える
Claude は応答を要約するとき、百万円の値を億円に換算して表示することがあります。記事やレポートに数値を載せるときは、モデルの文章ではなくツールの生の応答(百万円)から取ってください。元記事の表はすべて生の応答の値です。
4-8. プロンプト次第でツールが呼ばれない
「最近の報告書を教えて」のような曖昧な聞き方では、クライアントが list_documents の結果だけで答えを作り、get_major_shareholders を呼ばないことがあります。保有割合・報告日・書類管理番号まで求める聞き方にすると、ツールが呼ばれます。ツール呼び出しを前提にした手順を書くときは、各プロンプトでどのツールが呼ばれたかを許可の表示で確認してください。
5. 他のクライアントから再利用する
- 比較を再現する最小の呼び出し列は、
list_documents(4回)でdoc_idを確定し、compare_companies(1回)で横並び、必要ならget_segment_breakdown(4回)です。 - 比率(営業利益率、自己資本比率、セグメント構成比)はサーバーが返す開示数値からクライアント側で計算します。
operating_margin_denominatorが分母の候補を示します。計算した値は開示数値ではないので、表示するときはその旨を付けます。 - 応答の
attributionブロックは、生成物に出典表示として残します。
元記事の表は、Claude のチャットの文章ではなく、同じツールを直接呼んだ応答の値から作られています。チャット経由で同じ表を作るときは、4-7 のとおり生の応答の値を使ってください。
まとめ
- 4社比較は、
search_companies1回、list_documents4回、compare_companies1回、get_company_financials4回、get_segment_breakdown4回、任意でget_major_shareholders1回の呼び出しでできています。 - 数値の出どころは
doc_idとconcept_idで追えます。表示ラベルではなく概念 ID でキーを取り、accounting_standardsで基準の境目を見ます。 - 訂正報告書、百万円の丸め、モデルによる単位換算は、クライアント側で意識しておく点です。
4社の全表と、数値の読み方の解説は原文にあります。原文・全文はこちら:https://intellics.ai/ja-JP/blog/post/20?utm_source=qiita&utm_medium=article&utm_campaign=sector_compare_auto
出典表示と利用条件
出典:EDINET(金融庁)、公共データ利用規約(第1.0版)。データはKabukenが加工しています。本記事の数値は EDINET の開示書類にもとづき、Kabuken が編集・加工したものであり、政府の未加工データとして提示されるものではありません。セグメントの軸・項目名には EDINET タクソノミの内容を含み、EDINET タクソノミは公共データ利用規約の対象外で、別途の利用条件(https://www.fsa.go.jp/search/EDINET_Taxonomy_Legal_Statement.html )に従います。© Copyright 2014 Financial Services Agency, The Japanese Government.
本記事は MCP の技術解説であり、投資助言ではありません。
- 原文・全文:https://intellics.ai/ja-JP/blog/post/20?utm_source=qiita&utm_medium=article&utm_campaign=sector_compare_auto
- 使用した MCP サーバー(Kabuken):https://kabuken.intellics.ai/?utm_source=qiita&utm_medium=article&utm_campaign=sector_compare_auto
- 接続手順(ドキュメント):https://kabuken.intellics.ai/docs/ja/clients/claude-ai/?utm_source=qiita&utm_medium=article&utm_campaign=sector_compare_auto
- EDINET:https://disclosure2.edinet-fsa.go.jp/
- 公共データ利用規約(第1.0版):https://www.digital.go.jp/resources/open_data/public_data_license_v1.0