トークン最適化
Claude Code を本格的に使い込むと、トークン消費が気になってきます。ここでは、上級者向けのトークン最適化テクニックを紹介します。
基本的なコスト管理は concepts を参照
/cost コマンドの使い方やトークン節約の基本テクニックは 基本概念 > コストとトークンの管理 で解説しています。
MCP のトークンコスト問題
MCP(外部サービスとの接続) は便利な機能ですが、トークン消費の観点では大きなコストがかかります。
なぜ MCP はトークンを消費するのか
MCP サーバーを接続すると、Claude Code はそのサーバーが提供するツールのスキーマ(定義情報)をコンテキストに読み込みます。これは、あなたが何も操作しなくても自動的に消費されるトークンです。
複数の MCP サーバーを接続すると
MCP サーバーを増やすほど、スキーマのトークン消費は積み重なります。
| 接続サーバー数 | 推定トークン消費 | コンテキストへの影響 |
|---|---|---|
| 1 サーバー | 約 7,500 | ほぼ影響なし |
| 5 サーバー | 約 37,500 | やや圧迫 |
| 10 サーバー | 約 75,000 | コンテキストの 1/3 以上を消費 |
使わない MCP サーバーは接続しない
「とりあえず入れておく」は避けましょう。必要なサーバーだけを接続するのが鉄則です。
CLI 優先アプローチ
MCP の代わりに CLI(コマンドラインツール) を使うと、トークンを大幅に節約できます。
なぜ CLI の方が効率的なのか
CLI にはスキーマの事前読み込みが不要です。Claude はすでに膨大なターミナルコマンドの知識を持っているため、追加のトークンなしでコマンドを実行できます。
CLI で代替できるサービス
以下のサービスは、MCP よりも CLI の方が効率的です。
| サービス | CLI ツール | 使用例 |
|---|---|---|
| GitHub | gh |
gh issue list, gh pr create |
| Git | git |
git log, git diff |
| Docker | docker |
docker ps, docker logs |
| AWS | aws |
aws s3 ls, aws ec2 describe-instances |
| ファイル操作 | find, grep 等 |
検索、フィルタリング |
MCP が有効な場面
一方で、以下の場面では MCP の方が適しています。
- CLI が存在しないサービス — Figma、Notion など
- 複雑な認証フロー — OAuth が必要なサービス
- 監査ログが必要な場面 — 操作の追跡が求められるとき
Tool Search(自動最適化)
Claude Code には、MCP のトークン消費を自動的に抑える Tool Search という仕組みが組み込まれています。
仕組み
- MCP サーバーのスキーマが 10,000 トークンを超えると自動的に有効化
- 全ツールを読み込む代わりに、必要な 3〜5 個のツールだけをオンデマンドで読み込む
- スキーマのトークン消費を 約 85% 削減
設定は不要
Tool Search はデフォルトで有効です。手動で設定する必要はありません。ただし、仕組みを知っておくと「MCP を接続しても意外とトークンが少ない」理由がわかります。
Tool Search が効いているか確認する
/cost で確認して、MCP サーバーを接続しているのにトークン消費が少ない場合は、Tool Search が自動的に最適化しています。
コンテキスト監視のテクニック
/cost で定期的に確認する
作業中に /cost を時々実行して、トークン消費の推移を把握しましょう。急にトークンが増えた場合は、大きなファイルを読み込んだり、MCP 経由で大量のデータを取得した可能性があります。
CLAUDE.md にルールを書く
プロジェクトの CLAUDE.md に、トークン節約のルールを明記しておくと効果的です。
# CLAUDE.md の例
## ツール使用ルール
- GitHub の操作は `gh` CLI を優先し、MCP は使わない
- ファイル検索は `find` / `grep` を使い、MCP のファイル検索ツールは使わない
- 大きなファイルを読む前に、必要な部分だけを特定する
これにより、Claude Code が自動的に CLI を優先して使うようになります。
実践チェックリスト
すぐに試せるアクションをまとめました。
- [ ]
/costを実行して現在のトークン消費を確認する - [ ] 使っていない MCP サーバーがあれば
.mcp.jsonから削除する - [ ] GitHub 操作を MCP から
ghCLI に切り替える - [ ] CLAUDE.md に CLI 優先ルールを追加する
- [ ] 長い作業では
/compactをこまめに実行する - [ ] 作業を小さなセッションに分割する習慣をつける