MCP・CLI・Skillsのトークン消費を比較:ツール検索が標準になった2026年の選び方とコスト計算
「MCPはCLIの4〜32倍トークンを使う」は本当か。ScalekitとChecklyのベンチマークが測った条件、Claude Codeのツール検索(デフォルト有効)で変わる計算、Agent Skillsの待機コスト約100トークン、Sonnet 5.5での1セッションあたりのコスト計算、MCP・CLI・Skillsの選び方の判断表まで。
最終更新:2026年10月20日 / 対象:Claude Codeのツール検索(デフォルトで有効)、Agent Skillsの段階的読み込み、Claude 5.5系モデルのAPI料金、MCP仕様 2026-07-28、公開されているMCPとCLIの比較ベンチマーク(Scalekit 2026年3月、Checkly 2026年7月)
「MCPとCLIのどちらを使うべきか」という議論は、突き詰めるとMCPのトークン消費(MCP token usage)の話です。つまり、タスクの前と最中に、それぞれがどれだけコンテキストを使うかという問題です。よく引用される「MCPはCLIの4〜32倍トークンを使う」というベンチマークは、すべてのツール定義を最初から読み込んだ状態で測ったものです。いまはClaude Codeでツール検索がデフォルトで有効になり、Agent Skillsも使われるまでは短い説明文しか読み込みません。そのため差はかなり縮まり、差が出る場所も変わりました。この記事では、MCPサーバー・CLI・Skillsのトークン消費を出典つきの数値と再計算できるコストモデルで比べ、それぞれが今でも正解になる場面を整理します。
結論(30秒で読める要約)
- MCPとCLIの大きな差は、ツール定義を最初から全部読み込むことから生まれています。Scalekitのベンチマーク(2026年3月、Claude Sonnet 4、75回実行)では、GitHubのMCPサーバーは
ghCLIの4〜32倍のトークンを使いました。このとき43個のツール定義が毎回コンテキストに載っていました。 - ツール検索を使うと、この固定費の大半が消えます。Anthropic自身の例では、50個以上のMCPツールを遅延読み込みにするとコンテキストが約77Kから約8.7Kトークンに減りました。Claude CodeはいまMCPツールをデフォルトで遅延読み込みにし、セッション開始時にはツール名とサーバーの説明(instructions)だけを読み込みます。
- 筆者のコストモデル(30リクエスト、Claude Sonnet 5.5、キャッシュなし)では、固定費はGitHub MCPを全部読み込むと1.56ドル、ツール検索ありで0.155ドル、CLIで0.080ドル、CLI+Skillで0.074ドルでした。全部読み込むMCPとCLIの金額差のうち、約95%はツール検索で埋まります。
- ツール検索を入れたあとは、ツールの返り値の大きさで勝敗が決まります。CLIなら
--jsonや--jqで必要な項目だけに絞ってからモデルに渡せます。MCPのツールは、サーバー・クライアント・コード実行のどこかで削らない限り、サーバーが返したものがそのまま入ります。 - Skillsは接続手段の代わりではありません。Skillは呼び出されるまでメタデータ約100トークンしか使わず、呼び出されると手順書を読み込みます。CLIもMCPも包めるので、「SkillsかMCPか」はたいてい「Skills+MCP」です。
- 主義ではなく環境で選びます。シェルがあり、定番のCLIがあるならCLIが有利です。シェルがない環境(チャットアプリやホスト型エージェント)、ユーザーごとにOAuthが必要な場合、ツール単位の権限と監査ログが必要な場合はMCPが有利です。
目次
- 「MCPとCLIの比較」はトークン消費の話
- それぞれがトークンを使う場所
- 公開ベンチマークが測ったもの・測っていないもの
- 何が変わったか:ツール検索と遅延読み込み
- コストモデル:MCP・CLI・Skillsを1セッションで比較
- ツール検索のあとは返り値で決まる
- Skills:段階的読み込みで待機中のコストを抑える仕組み
- どれを選ぶか:判断表
- チェックリスト
- よくあるハマりどころ
- NodeFlareならこう解決できる
- FAQ
1. 「MCPとCLIの比較」はトークン消費の話
MCPとCLIのトークン消費の差とは、エージェントが外部のシステムを操作するときに、MCPサーバーのツールを使う場合と、gh・kubectl・aws などのシェルコマンドを使う場合とで、LLMのコンテキストをどれだけ使うかの違いです。どちらも最終的にはモデルのコンテキスト上のトークンになります。違うのは、タスク前に何が読み込まれるか、1回の呼び出しで何が返ってくるか、そしてその大きさを誰が決めるかです。
比較によく加わる3つ目の選択肢がAgent Skillsです。Skillは手順を書いた SKILL.md と、必要ならスクリプトを入れたフォルダです。Skillはモデルの知識を増やすもので、システムへのつなぎ方を変えるものではありません。CLIもMCPのツールも動かせます。
注:この記事の「トークン」はLLMのトークン(コンテキストと課金の単位)を指します。APIキーやOAuthのアクセストークンのことではありません。
2. それぞれがトークンを使う場所
どの方法にも、使うかどうかに関係なく毎リクエストかかる固定費と、実際に呼んだときにかかる従量分があります。
| コスト | MCP(ツールを最初から全部読み込む) | MCP(ツール検索あり) | bashツール経由のCLI | Agent Skill |
|---|---|---|---|---|
| 固定費(毎リクエスト) | 全ツールの名前・説明・inputSchema | ツール名とサーバーの説明、検索ツール自体 | bashツールの定義。Claude 4.7以降のモデルで入力325トークン | Skillごとにメタデータ(名前と説明)約100トークン |
| 初回利用時 | 追加なし | 見つかったツールの完全な定義。以後コンテキストに残る | フラグを調べる場合は --help やmanの出力 |
SKILL.md の本文。Anthropicによれば「5kトークン未満」 |
| 呼び出しごと | 引数とツールの返り値 | 引数とツールの返り値 | コマンドと標準出力・標準エラー | スクリプトの出力だけ。スクリプトのコード自体はコンテキストに入らない |
| 返り値の大きさを決める人 | サーバーの作者(とクライアントの上限) | サーバーの作者(とクライアントの上限) | エージェント自身(フラグ、パイプ、jq) |
Skillの作者 |
出典:Claude APIの料金ページ(bashツールの追加トークンと、Claude 5.5系で全ツール共通にかかる286トークンのツール利用システムプロンプト)、Agent Skillsの概要(Skillの読み込み段階)、Claude CodeのMCPドキュメント(ツール検索)。
以降の章で、この表の各列に数字を入れていきます。
3. 公開ベンチマークが測ったもの・測っていないもの
よく引用されるMCPとCLIの比較は、古いモデルで、ツールを最初から全部読み込む構成を測ったものです。その構成については正しい結果ですが、現在のClaude Codeのデフォルト設定に当てはめると差を大きく見積もりすぎます。
Scalekitのベンチマーク(2026年3月11日公開)は、anthropics/anthropic-sdk-python を対象に読み取りだけのGitHubタスクを5つ実行し、gh CLI、CLI+約800トークンの gh のコツをまとめたSkill、43個のツールを公開しているGitHubのCopilot MCPサーバーの3つを比べています。モデルはClaude Sonnet 4です。1回あたりのトークン数(中央値)は次のとおりです。
| タスク | CLI | CLI+Skill | MCP | MCP÷CLI(筆者の計算) |
|---|---|---|---|---|
| リポジトリの言語とライセンス | 1,365 | 4,724 | 44,026 | 32.3倍 |
| PRの詳細とレビュー状況 | 1,648 | 2,816 | 32,279 | 19.6倍 |
| リポジトリのメタデータとインストール方法 | 9,386 | 12,210 | 82,835 | 8.8倍 |
| 特定の人がマージしたPR | 5,010 | 6,107 | 33,712 | 6.7倍 |
| 最新リリースと依存関係 | 8,750 | 6,860 | 37,402 | 4.3倍 |
読むときの注意点が3つあります。
- 43個の定義が毎回すべてコンテキストに入っていました。記事には、エージェントは「43個のツール定義をすべて自動で受け取る」とあり、ツール検索や遅延読み込みには触れていません。
- Skillを足すと、簡単なタスクではむしろ高くつきました。5タスク中4つで、CLI+SkillはCLI単体より多くのトークンを使っています。モデルが
ghをすでに知っていても、コツの文章が読み込まれたからです。 - 失敗の原因はネットワークでした。MCPは25回中18回成功し、失敗した7回はすべてTCPレベルの
ConnectTimeoutで、プロトコルのエラーではありません。
Checklyの小規模なテスト(2026年7月30日、Claude Code、ブラウザ操作1タスクを3回)では、Playwright MCPサーバーで48K〜50K、playwright-cli とそのSkillで45K〜48Kトークンでした。結論は「いまはCLIとMCPに大きな差はない」です。ツール定義の遅延読み込みと、Playwright MCPがページのスナップショットをディスクに書き出すようになったことで、以前の差の原因が2つとも消えたためです。1タスクだけでは根拠として弱いものの、固定費がなくなれば当然こうなる、という結果です。
4. 何が変わったか:ツール検索と遅延読み込み
ツール検索は、モデルが探すまでツール定義をコンテキストに入れない仕組みです。ベンチマークでMCPを高くしていた固定費の大部分がこれで消えます。
| 場所 | 状況(2026年10月) | 開始時に読み込まれるもの | 出典 |
|---|---|---|---|
| Claude Code | デフォルトで有効 | 「セッション開始時に読み込むのはツール名とサーバーの説明だけ」 | Claude Codeドキュメント:MCP |
独自の ANTHROPIC_BASE_URL を設定したClaude Code |
ENABLE_TOOL_SEARCH を設定しない限り無効 |
全ツールを最初から | Claude Codeドキュメント:MCP |
| Claude API | defer_loading: true で有効化 |
遅延指定していないツールだけ | Claudeドキュメント:Tool search tool |
| Anthropicの50ツール超の例 | 実測 | 導入前は約77K、導入後は約8.7Kトークン(筆者の計算で89%減) | Anthropic Engineering:Advanced tool use |
Anthropicは、ツール検索を有効にするとツール選択の正答率も上がったと報告しています。Opus 4は49%から74%に、Opus 4.5は79.5%から88.1%に上がりました。目に入る定義が減れば、似た名前で迷うことも減ります。
比較への影響をまとめると、クライアントでツール検索が有効なら、MCPサーバーの固定費は全カタログ分からほぼツール名の分まで下がります。クライアントが全部を最初から読み込む場合(またはプロキシのせいでツール検索が無効になっている場合)は、以前のベンチマークがそのまま当てはまります。どのクライアントが最初から読み込むかは、クライアント別のMCPツール上限にまとめています。
5. コストモデル:MCP・CLI・Skillsを1セッションで比較
筆者のモデルでは、ツール検索ありのMCPの固定費はCLIの約2倍、全部を最初から読み込むと約20倍です。ツール検索ありの場合、残る金額差は30リクエストのセッションで約0.075ドルです。
前提(筆者の計算。数字を変えて試せるようにすべて書きます):
- 30回のリクエストからなるコーディングのセッションで、GitHubを3回操作する。
- Claude Sonnet 5.5(入力100万トークンあたり2ドル)、プロンプトキャッシュなし。数えるのは固定費だけで、会話本体とツールの返り値は除く(返り値は6章で扱います)。
- MCP(全部読み込み):GitHubサーバーの定義は約26,000トークン。Anthropicの5サーバーの例(35ツールで約26K)の値です。
- MCP(ツール検索あり):ツール名35個×約10トークン=350トークン。
mcp__github__list_pull_requestsのような名前はo200k_baseトークナイザーで7〜8トークンだったので、一覧の区切りの分を見込んで切り上げました。さらに初回のターンで3ツールを読み込み、AnthropicのGitHubの平均値(1ツール約743トークン)で2,229トークンが以後も残るとします。検索ツール自体の定義サイズは公表されていないため含めていません。 - CLI:bashツールの追加分325トークン(Claude 4.7以降)に加え、
--helpを1回読んで1,000トークンがコンテキストに残ると仮定。 - CLI+Skill:Skillのメタデータ100トークン、初回に読み込む800トークンの本文(Scalekitが使ったサイズ)、bashツールの325トークン。フラグはSkillに書いてあるので
--helpは読まないとします。
計算式:1リクエストあたりのトークン数 × 30リクエスト × 2ドル ÷ 1,000,000
| 方法 | 1リクエストの固定トークン | 200Kコンテキストに占める割合 | 1セッションのトークン | 1セッションの費用 | 1,000セッションあたり |
|---|---|---|---|---|---|
| MCP(全部読み込み) | 26,000 | 13.0% | 780,000 | 1.56ドル | 1,560ドル |
| MCP(ツール検索あり) | 2,579 | 1.3% | 77,370 | 0.155ドル | 155ドル |
| CLI | 1,325 | 0.7% | 39,750 | 0.080ドル | 80ドル |
| CLI+Skill | 1,225 | 0.6% | 36,750 | 0.074ドル | 74ドル |
読み方:
- 全部読み込むMCPとツール検索ありのMCPの差は10倍(780,000 ÷ 77,370)です。効くのはここです。
- ツール検索ありのMCPとCLIの差は約2倍、金額では1セッション約0.075ドルです。多くのチームでは、ほかにもっと大きなコストがあります。
- プロンプトキャッシュを使えば、どの行も安くなります。Sonnet 5.5のキャッシュ読み取りは100万トークンあたり0.10ドルなので、毎回キャッシュが当たれば全部読み込むMCPの行は1セッション約0.078ドルになります。ただしコンテキストに占める割合は変わりません。また、ツールの順番や説明文がリクエストごとに変わると、MCPのツール一覧はキャッシュに当たりません。
- この表でSkillがCLI単体に勝っているのは、Skillが
--helpの代わりになると仮定したからです。モデルがそのツールをすでに知っていれば、Skillは単なる上乗せになります。Scalekitの5タスク中4つで起きたのがこれです。
6. ツール検索のあとは返り値で決まる
固定費が小さくなると、MCPとCLIの主な差は、1回の呼び出しが返すデータの大きさになります。
| 項目 | MCPのツール | CLIのコマンド |
|---|---|---|
| 出力の形を決める人 | サーバーの作者 | エージェントが呼び出しごとに決める |
| 項目の選択 | ツールにそのための引数があるときだけ | gh pr list --json number,title --jq '.[].title' |
| モデルに渡す前の絞り込み | クライアント側からはできない | パイプ:grep、head、jq |
| クライアントの安全上限 | Claude CodeはMCPの出力が10,000トークンを超えると警告し、デフォルトで25,000トークンに制限(MAX_MCP_OUTPUT_TOKENS)。大きな結果はファイルに保存される |
bashの出力はクライアント側の切り詰めに従う |
| 次の呼び出しに使う構造化データ | 型つきのJSON、必要なら structuredContent |
JSONを要求しない限り、モデルが読み解くテキスト |
コード実行(コードモード)で大きな削減が出るのも同じ理由です。Anthropicのエンジニアリング記事では、Google Driveの議事録をSalesforceに添付する処理が15万トークンから2,000トークン(98.7%減)になりました。議事録がモデルを通らず、コードの中でツールからツールへ渡されたためです。これはCLIのパイプと同じ「モデルに渡す前に絞る」能力をMCPに与えます。代わりに、Anthropicの言葉では、エージェントが書いたコードを動かすには「安全な実行環境が必要」で、運用の手間が増えます。元が取れる条件はコード実行の損益分岐の解説にまとめています。
サーバーを自分で管理しているなら、項目の選択、ページング、要約で返り値を元から小さくしてください。また、エージェントにシェルを渡すことはセキュリティ上の判断でもあります。ターミナルを渡す前にMCPサーバーのサンドボックス化も確認してください。
7. Skills:段階的読み込みで待機中のコストを抑える仕組み
Skillは呼び出されるまでほとんどトークンを使いません。モデルがまだ知らない手順を教える方法としては、いちばん安上がりです。
| 段階 | 読み込まれるタイミング | トークン(Anthropic) |
|---|---|---|
1. メタデータ(name、description) |
常に(起動時) | Skillごとに約100トークン |
2. 手順(SKILL.md の本文) |
リクエストが説明文に合ったとき | 5kトークン未満 |
| 3. 付属ファイルとスクリプト | 読む・実行するときだけ | アクセスするまで0。スクリプトは出力だけが入る |
トークン消費に関わる細かい点:
- 説明文には上限があります。Claude APIでは
descriptionは最大1,024文字です。Claude Codeでは、スキル一覧のdescriptionとwhen_to_useの合計が1,536文字で切り詰められます。 - 一覧に載っているSkillは毎ターントークンを使います。Claude Codeのドキュメントには、一覧の各Skillは「Claudeが使うかどうかに関係なく、毎ターンコンテキストに加わる」とあります。
disable-model-invocation: trueにすると説明文がコンテキストから外れ、自分で呼び出すことはできます。 - 一度読み込んだSkillは残ります。呼び出した
SKILL.mdの内容は会話に残り続けます。圧縮(compaction)のあと、Claude Codeは最近使った各Skillの先頭最大5,000トークンを、合計25,000トークンの枠内で付け直します。
SkillsとMCPのツール検索は同じ考え方です。まず短い目次だけを読み込み、詳細は必要になったら読みます。両者は対立するものではありません。Skillに「XのときはGitHubのMCPツールをこの順番で呼ぶ」と書いておけば、その作業が来るまではほとんどコストがかかりません。
8. どれを選ぶか:判断表
エージェントがどこで動き、誰の代わりに動くかで選びます。ツール検索が有効なら、トークンのコストは最後の決め手にすぎません。
| 状況 | 向いているもの | 理由 |
|---|---|---|
シェルのあるローカルのコーディングエージェントで、定番のCLI(gh、kubectl、aws)がある |
CLI | 固定費が最も小さく、エージェントが出力を自分で絞れる |
| シェルのないチャットアプリやホスト型エージェント(Claude、ChatGPT、モバイル) | MCP | CLIを動かすシェルがない。ツール追加の標準はリモートMCP |
| ユーザーごとに本人のアカウントで操作させたい | MCP | MCP仕様がリモートサーバー向けにOAuthベースの認可を定めている |
| ツール単位の権限と、呼び出しごとの監査ログが必要 | MCP | ツールが名前つきの個別の呼び出しなので、サーバーやゲートウェイで許可・拒否・記録できる |
| CLIがない、または社内APIしかない | MCP | CLIのバイナリを作って配るより、MCPサーバーを作るほうがたいてい手間が少ない |
| エージェントが同じツールで同じ失敗を繰り返す | Skill(CLIかMCPの上に) | 待機中は約100トークンで手順を追加できる |
| ツール間で大きなデータを受け渡す複数手順の作業 | MCP+コード実行 | 途中のデータがコンテキストに入らない |
| ツール検索のないクライアントで大きなMCPカタログを使う | 検索やコードモードを提供するプロキシ経由のMCP | カタログを少数のメタツールに置き換えられる |
9. チェックリスト
- [ ] 使っているクライアントでツール検索が有効か確認した(Claude Codeは、
ANTHROPIC_BASE_URLがサードパーティのプロキシを指すかENABLE_TOOL_SEARCH=falseでない限り有効) - [ ] ベンチマークの数字ではなく、自分の環境の固定費を測った
- [ ] 同じタスクでツールの返り値の大きさを比べた(ツール検索のあとはこちらが支配的)
- [ ] シェルがある環境では、CLIの項目選択(
--json、--jq)を使っている - [ ] Skillの説明文を短く具体的にし、手動でしか使わないSkillはモデルからの呼び出しを無効にした
- [ ] リモート、複数ユーザー、シェルなし、権限が重要な場面ではMCPを使っている
- [ ] シェルを渡すことを、コストだけでなくセキュリティの判断として検討した
- [ ] 使うモデルの最新の料金とキャッシュのヒット率でコストを計算し直した
10. よくあるハマりどころ
| ハマりどころ | なぜ誤解を招くか | 対処 |
|---|---|---|
| 「MCPはトークンを32倍使う」と引用する | Claude Sonnet 4で、43個の定義を最初から全部読み込んで測った値 | ツール検索を有効にして測り直す |
| ゲートウェイ経由でもツール検索が効いていると思い込む | Claude Codeは、ファーストパーティ以外の ANTHROPIC_BASE_URL では無効にする |
プロキシが tool_reference ブロックを転送するなら ENABLE_TOOL_SEARCH を設定する |
| モデルがすでに知っているツールにSkillを足す | ScalekitのCLI+Skillは5タスク中4つでトークンが増えた | なじみのないツールや、繰り返す失敗にだけSkillを使う |
| Skillを何十個も入れる | 一覧の説明文が毎ターン送られる | 使わないものは外すか、disable-model-invocation: true にする |
| 固定費だけを比べる | ツール検索のあとは、生のツールの返り値のほうが大きいことが多い | タスク全体のトークン数で比べる |
| チャットアプリでリモートMCPサーバーをCLIに置き換えようとする | そもそも実行するシェルがない | MCPのまま、検索・絞り込み・コードモードで軽くする |
11. NodeFlareならこう解決できる
NodeFlareはMCPサーバーをホストし、プロキシでサーバーごとのトークン設定を追加できます。どれもサーバーのコード変更は不要で、ツール検索を持たないクライアントでも効きます。この記事で挙げた課題ごとに対応を示します。
課題:クライアントがMCPツールを全部最初から読み込む(3〜4章。4〜32倍のベンチマークが測った構成)
→ tool_search_mode をオンにします。NodeFlareは tools/list を search_tools(query) と call_tool(name, args) の2つのメタツールにまとめるので、カタログの大きさに関係なく最初のトークン消費がほぼ一定になります。検索はデフォルトでは語句の一致で行い、GEMINI_API_KEY を設定すると埋め込みによる意味検索になります。設定がない場合や失敗した場合は、語句の一致による検索に戻ります。
課題:MCPの返り値は、CLIのパイプのようにモデルに渡す前に絞れない(6章)
→ Code Execution(tool_code_mode)をオンにします。サーバーは run_code と search_tools を公開します。モデルが tools.* を呼ぶJavaScriptを書き、NodeFlareがサンドボックスで実行するので、複数のツール呼び出しが何度もの往復ではなく1回の実行にまとまります。コードの中で必要な項目だけを選び、データをモデルに通さずツール間で渡せます。実行はDenoのサブプロセスで行われ、ファイルシステムと環境変数にはアクセスできず、通信先はプロキシのツール呼び出し用エンドポイントだけです。デフォルトはタイムアウト600秒、1回の実行あたり最大50回のツール呼び出し、V8ヒープ128MBです。
課題:どのエージェントにも、そのキーでは呼べないツールまで全部見える(8章)
→ tool_list_filter_by_scope をオンにします。tools/list には、呼び出し元の資格情報で実際に呼べるツールだけが、同じスキーマのまま表示されます。
課題:最初から読み込むツールの説明文が長い(5章)
→ tool_schema_slim をオンにします。500文字を超えるツールの説明文を(UTF-8を壊さずに)切り詰めます。名前と入力スキーマはそのままです。
NodeFlareは固定の削減率を公表していません。5章のコストモデルに、導入前後の自分の数値を入れて確かめてください。
最小の始め方:
- nodeflare.tech にサインインし、MCPサーバーのGitHub URLを入れます。ランタイム、トランスポート、起動コマンドは自動で入力され、Dockerfileも不要です。
- デプロイしたら、サーバー設定で
tool_code_modeかtool_search_modeをオンにします。 - サーバーのURLとAPIキーを、Claude・Cursor・自作のエージェントに設定します。
MCPサーバー1つまでは無料で試せます(Freeプラン:1サーバー、月30GB時間のコンピュート)。→ nodeflare.techで始める
12. FAQ
MCPはCLIよりトークンを多く使いますか?
ツールを最初から全部読み込むなら、大幅に多く使います。ScalekitはGitHubのMCPサーバーが gh の4〜32倍のトークンを使うと測定しました。ツール検索を有効にすると固定費はほぼツール名の分まで下がり、筆者のコストモデルではMCPの固定費はCLIの約20倍から約2倍になります。
MCPサーバーはなぜそんなにトークンを使うのですか?
ツール検索のないクライアントは、すべてのツールの名前・説明・inputSchemaを毎リクエスト送るからです。Anthropicの5サーバーの例では、会話が始まる前に58ツールで約55Kトークンを使っていました。
MCPとCLIのベンチマークは2026年でも有効ですか?
ツールを最初から読み込む構成には有効です。Scalekitの2026年3月の測定は、Claude Sonnet 4で43個の定義をすべてコンテキストに入れた状態でした。いまのClaude CodeはMCPツールをデフォルトで遅延読み込みにしており、Checklyの2026年7月のテストではPlaywright MCPとそのCLIにほとんど差がありませんでした。
Agent SkillsはMCPよりトークンが少なくて済みますか?
待機中は少なくて済みます。Skillは呼び出されるまでメタデータ約100トークンで、本文も5kトークン未満です。ただしSkillはそれ自体ではシステムにつながりません。たいていCLIかMCPのツールを包むので、呼び出しと返り値のコストは別にかかります。
MCPサーバーをCLIに置き換えるべきですか?
エージェントにシェルがあり、gh を使うローカルのコーディングのように良いCLIがすでにある場合だけです。シェルのないチャットアプリやホスト型エージェント、ユーザーごとのOAuth、ツール単位の権限と監査ログが必要な場面では、MCPを使い続けてください。
Claude CodeはMCPツールを全部コンテキストに読み込みますか?
デフォルトでは読み込みません。ツール検索が有効なので、セッション開始時に読み込むのはツール名とサーバーの説明だけで、完全な定義はClaudeがツールを見つけたときに読み込みます。ANTHROPIC_BASE_URL がファーストパーティ以外を指すと無効になりますが、ENABLE_TOOL_SEARCH を設定すれば上書きできます。
bashツールは何トークン追加されますか?
Claude APIでは、Claude 4.7以降のモデルで入力325トークン(Claude 4.6以前は244トークン)が追加されます。これとは別に、Claude 5.5系ではツール利用のシステムプロンプトとして286トークンがかかります。コマンドの出力はさらに別です。
ツール検索のあとは、定義と返り値のどちらがトークンを多く使いますか?
たいていは返り値です。CLIならエージェントが項目を選び、パイプで絞れますが、MCPのツールはサーバーが返したものがそのまま入ります。Claude CodeはMCPの出力が10,000トークンを超えると警告し、デフォルトで25,000トークンに制限します。
CLIに切り替えるより、コード実行のほうが良い対策ですか?
ツール間で大きなデータを受け渡す複数手順の作業なら、多くの場合そうです。Anthropicは、データをコードの中でツール間に渡すことで、ある処理が15万トークンから2,000トークンに減ったと報告しています。安全なサンドボックスが必要なので、ホスト型のコードモードか自前の実行環境を用意します。
ここでいう「MCP Token」はAPIトークンのことですか?
違います。この記事は、MCPツール、CLIの出力、Skillsが使うLLMのトークンについての記事です。MCPサーバーのAPIキーやOAuthのアクセストークンはセキュリティの話題です。
まとめ
MCPとCLIのトークン消費の差は、MCPツールを全部最初から読み込んでいた頃は大きく、4〜32倍というベンチマークはその構成を測ったものです。ツール検索を有効にすると、MCPの固定費はほぼツール名の分まで下がり、筆者の30リクエストのモデルではCLIとの差は1セッション約0.075ドルでした。残る差はツールの返り値の大きさで、CLIはパイプで、MCPはサーバー側での削減かコード実行で対処します。Skillsは待機中約100トークンで手順を追加でき、どちらとも組み合わせられます。シェルと良いCLIがあるならCLI、ユーザー・権限・シェルのなさが理由ならMCPを選び、ベンチマークを引用するのではなく自分の環境で測ってください。
参考資料
- Claude Codeドキュメント:MCP(ツール検索、出力の上限)
- Claude Codeドキュメント:Skills
- Claudeドキュメント:Agent Skillsの概要
- Claudeドキュメント:Tool search tool
- Claudeドキュメント:料金(ツール利用とbashツールのトークン)
- Anthropic Engineering:Introducing advanced tool use
- Anthropic Engineering:Code execution with MCP
- Scalekit:MCPとCLIのベンチマーク(2026年3月)
- Checkly:CLIs are more token-efficient than MCP. Or are they?(2026年7月)
- NodeFlareドキュメント ・ NodeFlare料金
