結論から言うと
Claude Codeを使っていて「なんかトークンの消費が早い...」と感じていませんか?
その原因、MCPサーバーかもしれません。
実は、MCPサーバーを5つ接続するだけで、会話を始める前に55,000トークンが消費されています。これはClaude Sonnet 4.5の200Kコンテキストウィンドウの**約27%**です。
しかし2026年1月14日、Anthropicがこの問題を解決するMCP Tool Search機能をリリースしました。この機能を使えば、トークン消費を最大85%削減できます。
今回は、この革命的な機能の仕組みと、すぐに使える最適化テクニックを完全解説します。
なぜあなたのClaude Codeは遅いのか?
コンテキスト汚染という闘病
開発者のScott Spence氏は、Claude Codeセッションを開始した瞬間に66,000トークンが消えていることに気づきました。何も入力していないのに、です。
これが「コンテキスト汚染(Context Pollution)」と呼ばれる問題です。
📊 よくあるMCPサーバー構成のトークン消費:
├── GitHub MCP: ~8,000 tokens
├── Filesystem MCP: ~5,000 tokens
├── Docker MCP: ~125,000 tokens(135ツール!)
├── Jira MCP: ~17,000 tokens
└── Slack MCP: ~6,000 tokens
────────────────────────────
合計: 161,000 tokens(何もする前に消費)
GitHubのIssueでは、ある開発者が144,802トークンをMCPツールだけで消費したと報告しています。これではコードを書くどころの話ではありません。
なぜこんなことが起きるのか?
MCPサーバーを接続すると、すべてのツール定義(名前、説明、JSONスキーマ、パラメータなど)が事前にコンテキストにロードされます。
これは「万が一使うかもしれない」すべてのツールを、会話の最初から持ち歩いているようなものです。
MCP Tool Searchとは何か?
遅延ロードという発想の転換
MCP Tool Searchは、ツール定義の**遅延ロード(Lazy Loading)**を実現する機能です。
従来の方式:
セッション開始 → 全ツール定義をロード → 会話開始
↑
ここで大量のトークン消費
MCP Tool Searchを使った方式:
セッション開始 → 検索ツールのみロード → 会話開始
↓
必要になったらツールを検索
↓
使うツールだけをロード
自動で有効化される
嬉しいことに、MCP Tool Searchは全ユーザーにデフォルトで有効です。
Claude Codeが以下の条件を検知すると、自動的にTool Searchモードに切り替わります:
- MCPツールの説明が10,000トークンを超える場合
- コンテキストウィンドウの**10%**以上をツール定義が占める場合
どれくらい効果があるのか?
Anthropicの社内テストによると:
| モデル | Tool Search OFF | Tool Search ON | 改善率 |
|---|---|---|---|
| Opus 4 | 49% | 74% | +25% |
| Opus 4.5 | 79.5% | 88.1% | +8.6% |
また、実際の使用では:
- 51,000トークン → 8,500トークン(46.9%削減)
- 一部のケースでは134,000トークン → 5,000トークン(96%削減!)
今すぐ使える最適化テクニック5選
1. 使っていないMCPサーバーを無効化する
最も簡単で効果的な方法です。
# 現在のMCPコンテキスト使用量を確認
/context
# 特定のサーバーを無効化
@server-name disable
# または設定画面から
/mcp
Tips: Dockerサーバーだけで125,000トークン消費することがあります。本当に必要か見直しましょう。
2. Tool Searchの閾値をカスタマイズする
// .claude/settings.local.json
{
"mcp_tool_search_threshold": 0.05 // 5%でTool Searchを発動
}
デフォルトは10%ですが、より積極的にTool Searchを使いたい場合は閾値を下げましょう。
3. 頻繁に/clearを使う
長いセッション中、コンテキストは不要な履歴で埋まっていきます。
# タスクの区切りでコンテキストをリセット
/clear
# 新しいタスクを開始
「新しい機能を実装したい」
重要: /clearを使っても、CLAUDE.mdファイルの内容は保持されます。
4. サブエージェントを活用する
複雑なタスクは、サブエージェントに委譲することでメインコンテキストを節約できます。
「このバグの原因を調査して、サブエージェントを使って詳細を確認してください」
サブエージェントは独自のコンテキストを持つため、メインの会話のトークンを消費しません。
5. CLAUDE.mdでプロジェクト知識を外部化する
頻繁に説明するプロジェクトの情報は、CLAUDE.mdに書いておきましょう。
# CLAUDE.md
## プロジェクト構成
- src/: ソースコード
- tests/: テストファイル
## コーディング規約
- TypeScriptを使用
- 関数はJSDocでドキュメント化
これにより、毎回の会話で同じ説明を繰り返す必要がなくなります。
上級者向け:Programmatic Tool Useと組み合わせる
MCP Tool Searchは、AnthropicのProgrammatic Tool Use機能と組み合わせることで、さらに強力になります。
# ツールをdefer_loadingでマークする
tools = [
{
"name": "search_code",
"description": "Search codebase",
"defer_loading": True, # 必要になるまでロードしない
"input_schema": {...}
}
]
これにより:
- 最初はTool Search Toolだけがコンテキストにロードされる
- Claudeが必要と判断したときだけ、実際のツールがロードされる
- 使わないツールは永遠にコンテキストを消費しない
Before/After比較
最適化前
セッション開始...
📊 コンテキスト使用量: 66,000 / 200,000 tokens
⚠️ 利用可能: 134,000 tokens
「簡単な関数を書いて」
📊 コンテキスト使用量: 68,000 / 200,000 tokens
⚠️ すでに34%消費...
最適化後
セッション開始...
📊 コンテキスト使用量: 8,500 / 200,000 tokens
✅ 利用可能: 191,500 tokens
「簡単な関数を書いて」
📊 コンテキスト使用量: 10,500 / 200,000 tokens
✅ まだ95%利用可能!
まとめ
- MCPサーバーを複数接続すると、知らないうちに大量のトークンが消費される
- MCP Tool Searchは、ツールの遅延ロードでこの問題を解決する
- 全ユーザーにデフォルトで有効なので、特別な設定は不要
- さらに最適化したい場合は、5つのテクニックを試してみよう
- 最大で85%以上のトークン削減が可能
次にやること
-
/contextコマンドで現在のMCPトークン使用量を確認する - 使っていないMCPサーバーを無効化する
- 長いセッションでは
/clearを習慣化する
この記事が役に立ったら、いいね👍とストックをお願いします!
「うちではこんな最適化もやってる!」という方は、ぜひコメントで教えてください。次回の記事で紹介するかもしれません。