メインコンテンツまでスキップ

MCPトークン税

上級

今月、Hacker NewsとXで論争が起きています。同じことがCLIなら数百トークンで済むのに、なぜ1回のMCP操作に数万トークンも燃やすのか? MCP叩きに聞こえますが、そうではありません。最も声高に議論しているのは、エージェントを愛する人たち — ただ請求書を突きつけられた人たち — です。このページは、その請求書についての実践ガイドです。トークンが実際どこに消えるのか、ほとんど誰も切り分けていない2つのコスト、そして15万トークンのワークフローを2千トークンに変える3つの対策を扱います。

What you'll learn
  • MCPの2つの別個のトークンコストを切り分ける:ツール定義のロードと中間結果
  • なぜスキーマコストが1回きりではなく会話ごとに支払われるのかを理解する
  • defer_loadingとTool Search Toolを使い、ツールスキーマをオンデマンドでロードする
  • コード実行 / Programmatic Tool Callingを使い、大きな結果をコンテキストの外に保つ
  • タスクごとに、MCPツールが割に合うときと素のCLI呼び出しが勝つときを判断する

コストは1つではなく2つ

MCPサーバーを接続すると、クライアントはそれにtools/listを要求し、全ツールを完全なJSONスキーマ付きで受け取ります。そのブロック全体がモデルのコンテキストに注入されます。多くの人はそこで精算を止めます。しかし税は2つあり、2つ目のほうが通常は大きいのです。

コスト1 — ツール定義。 接続された各ツールの名前、説明、パラメータスキーマがコンテキストに載ります。Anthropic自身の言い回し:「エージェントが数千のツールに接続されている場合、リクエストを読む前に数十万トークンを処理する必要がある」。単一のエンタープライズサーバーが数十から数百のツールを公開することがあり、サードパーティの分析では400ツールのサーバーはスキーマだけで約40万トークン — Claudeの20万トークンのコンテキストウィンドウに収まらないほどです。

コスト2 — 中間結果。 モデルがツールを直接呼び出すと、すべての結果がモデルのコンテキストを通って戻ってきます。読ませたくなかった部分さえもです。Anthropicの例:あるツールから2時間の会議の文字起こしを取り出して別のツールに渡すと、全文がモデルを2回通過し — 1行の要約を作るためだけに、およそ5万トークンにもなり得ます。

Watch out
  • コスト1はプロンプトキャッシュが効くまで毎ターン支払われる — スキーマは一度ロードされるのではなく、会話の各リクエストで再送される。大きなツールカタログは、一度きりの手数料ではなくセッション全体への税である。
  • コスト2はツール数ではなく、あなたのデータに応じてスケールする。小さなツールが10個あるほうが、巨大なブロブを返すツール1個より安いこともある。

一次ソースから見た数値

対策タスク削減率
MCPでのコード実行Google Drive → Salesforceワークフロー150,0002,00098.7%
Tool Search Tool作業開始前に定義をロード~77,000~8,70085%
Programmatic Tool Calling複雑な研究タスク43,58827,29737%

3行すべてAnthropicの公表数値です。驚くべきはコストではなく、精度です。Tool Search Toolでは、ツール選択の精度が上がりました(Opus 4.5は79.5% → 88.1%、Opus 4は49% → 74%)。コンテキストを混雑させるツールが減ると、モデルは正しいものをより頻繁に選びます。ここではコストと品質が同じ方向に動く — これは稀なことです。

対策1 — ツールスキーマをオンデマンドでロードする

全スキーマを最初に注入する代わりに、defer_loading: trueとマークします。するとClaudeは軽量なインデックスだけを見て、GitHubが必要になったときにTool Search Toolを呼び出し、それが一致するGitHubスキーマだけを返します — ほかのすべてのサーバーの50以上のツールは返しません。Anthropicの報告では、これによりすべてをプリロードした場合の約122,800トークンに対し、約191,300トークンのコンテキストが保たれます。

多くのMCPサーバーを使ってClaude Codeを使っているなら、今まさにこのパターンを見ています:ツールは**遅延(deferred)**で届き、エージェントはタスクが必要とするときにだけ検索ステップを通じて各スキーマを取得します。コミュニティの報告では、接続したツールの説明がコンテキストウィンドウの約10%を超えるとClaude CodeはMCP Tool Searchを自動的に有効にするとのことですが — 正確なトリガーはあなたのバージョンで確認してください。

Guided walkthrough1 of 3
  1. アクティブなサーバーと、それぞれが公開するおおよそのツール数をリストアップする。先週1つのタスクのために接続したサーバーは、今日も毎ターン課税し続けている。

対策2 — コード実行で結果をコンテキストの外に保つ

より深い対策はコスト2を狙います。モデルがツールを1つずつ呼び出し、すべての結果がモデルを通過する代わりに、モデルがツールを呼び出すコードを書き、中間データは実行環境の中にとどまります。AnthropicはMCPサーバーを、エージェントがファイルシステムのように探索するツールのファイルツリーとして公開し、必要な定義だけをロードします — そして*「中間結果はデフォルトで実行環境にとどまり…エージェントは明示的にログまたは返却したものだけを見る」*のです。

その単一の設計変更こそが、Drive→Salesforceのワークフローを15万トークンから2千トークンに縮めるものです:レコードはコードを通って移動し、最終的なカウントだけがモデルに戻ります。開発者プラットフォームでは、同じ考え方がProgrammatic Tool Callingとして提供されます — Claudeが複数のツールをオーケストレーションし、出力がコンテキストに達する前にフィルタリングするPythonを書きます。

Pro tip
  • 経験則:ツールが大きなもの(文字起こし、クエリのダンプ、ファイル)を返すなら、ブロブがコンテキスト外で処理されるようにコード実行が望ましい。ツールが小さなこと(イシューを作る、1行を送る)をするだけなら、直接呼び出しで十分。

対策3 — CLI呼び出しが勝つ場面を知る

時には、正解はより良いMCPセットアップではなく — MCPをまったく使わないことです。HN/Xの議論には本当の一理があります:gh pr listpsql -c '…'のようなシェルコマンドは往復で数百トークンで済む一方、同等のMCPパスはスキーマ+構造化された結果に対して支払います。エージェントがすでにターミナルを持ち、CLIが存在するなら、それがしばしば最も軽いパスです。

ツールがすでにCLIなら、CLIを優先する

# Instead of connecting a GitHub MCP server for read-only work,
# let the agent use the gh CLI it already has:
gh pr list --state open --json number,title,author

# ~200 tokens of command + compact output, no schema tax,
# no server to keep connected across the session.

MCPがそのオーバーヘッドに見合うのは、型付きで、権限管理され、サーフェスをまたぐ能力が必要なとき — 読み取り専用ロールを持つデータベース、駆動できるブラウザ、OAuth付きのSaaS API — か、同じツールが多くのターンで再利用され、キャッシュがスキーマコストを償却するときです。能力が一度きりで、すでにスクリプト化可能で、小さなものを返すなら、CLIに手を伸ばしましょう。どちらが「良い」ということではなく、コストカーブ上の異なる点です。

Key takeaways
  • MCPには2つのトークンコストがある:ツール定義スキーマ(ほぼ毎ターン支払う)と中間結果(データに応じてスケールする)。
  • Tool Search + defer_loadingはスキーマコストを約85%削減し、かつツール選択の精度を上げる — スキーマは検索されたときだけロードする。
  • コード実行 / Programmatic Tool Callingは大きな結果を実行環境内に保つ。ログまたは返却したものだけがモデルに達する(Anthropicの例で15万 → 2千)。
  • 最も安い最適化は、タスクごとに接続するサーバーを減らすこと。
  • 能力が小さなものを返す一度きりのもので、すでにCLIがあるなら、シェル呼び出し(約200トークン)がMCPの往復に勝つ。
MCP経済学の用語
Enter キーまたはスペースキーでカードを裏返します。左右の矢印キーでカードを移動できます。用語を表示しました。
1 / 5

理解度チェック

0/4
  1. なぜツール定義コストは一度きりの手数料より悪いのですか?
  2. あるツールが2時間の文字起こしを取り出し、直接呼び出しで要約ツールに渡します。隠れたコストは何ですか?
  3. コーディングセッション中に一度だけ読み取り専用の「オープンなPRを一覧」する必要があり、エージェントにはターミナルがあります。最も軽い選択肢は?
  4. Tool Search Toolを使うと、ツール選択の精度に何が起きますか?

AILmanacの関連ページ

  • MCP Servers in Claude Code — サーバーの追加、スコープ、セキュア化の方法。
  • The Token Economy — コマンド出力がモデルに達する前に圧縮する。
  • Dynamic Workflows — オーケストレーションコストが現れる場所と、支出を測るためのスライス。
  • Tool Use on the API — このすべての背後にあるリクエスト/レスポンスの形。

出典とさらに読む