はじめに約1分で読めます7 言語

MCP コードモードとは?AIエージェントのトークン消費とラウンドトリップを削減する方法

コードモードでは、AIエージェントがツールを1つずつモデル経由で呼び出す代わりに、複数の MCP ツールを呼び出す短いプログラムを1つ実行します。トークンとラウンドトリップを節約できる理由、効果がある場合とない場合、そして AnythingMCP での動作方法(保存済みコードツール、インラインコード、エージェントによる提案を、分離されたランナーで実行)を解説します。

HC執筆: HelpCode チーム更新日 1分で読了 GitHub でオープンソース

クレジットカード不要 · 7日間の試用 · セルフホストの選択肢あり

  • 7日間の無料トライアル
    クレジットカード不要
  • GDPR・SOC 2 レディ
    EU データ保管、監査ログ
  • GitHub でオープンソース
    オープンソース · AGPL-3.0
  • ChatGPT、Claude、Gemini に対応
    MCP 対応クライアントすべて

概要

コードモードでは、AIエージェントがツールを1つずつモデル経由で呼び出す代わりに、複数の MCP ツールを呼び出す短いプログラムを1つ実行します。トークンとラウンドトリップを節約できる理由、効果がある場合とない場合、そして AnythingMCP での動作方法(保存済みコードツール、インラインコード、エージェントによる提案を、分離されたランナーで実行)を解説します。

TL;DR: 通常の MCP では、AIエージェントはツールを1つ呼び出し、結果をすべて読み、判断して、次のツールを呼び出す、という流れを繰り返します。各ステップはモデルを経由するラウンドトリップであり、途中の結果はすべてモデルのコンテキストウィンドウを通過します。コードモードでは、エージェント(または管理者が事前に)短い JavaScript プログラムを書き、その中で呼び出しを行い、結果を絞り込み・結合して、答えだけを返します。AnythingMCP では、このプログラムは分離されたランナー内で実行され、呼び出し元がすでに使用を許可されている MCP ツール以外には何にもアクセスできません。コードモードはセルフホスト版 AnythingMCP の v0.52.0 以降で利用でき、AnythingMCP Cloud では近日公開予定です。有効にするまではオフになっています。

課題:ツール呼び出しがモデルを経由する

営業責任者が、CRM と ERP に接続されたアシスタントに次のような質問をするとします。

「未払いの期限超過請求書が残っているお客様の、進行中の見積はどれですか?」

ステップごとにツールを1回呼び出す方式では、エージェントは次のように動きます。

  1. CRM を呼び出して進行中の見積を一覧取得し(たとえば40件)、40件すべてをコンテキストに読み込む。
  2. 顧客ごとに ERP を呼び出して未払いの請求書を調べる。さらに40回の呼び出しと、コンテキストに40件の結果が加わる。
  3. それらを頭の中で突き合わせて、答えを書く。

呼び出しのたびに1ターンが発生します。モデルが呼び出しを書き、クライアントが実行し、結果がモデルに戻り、モデルがそれを読んで次の呼び出しを書きます。答えに必要なのはせいぜい5行なのに、完全な結果がコンテキストに残り続けます。その結果、トークン(モデルが読むものはすべて課金対象で、コンテキストウィンドウも消費します)、時間(数十ターン)、精度(40件のリストを読んで比較する場面はモデルが間違えやすい部分です)の面でコストがかかります。

発想:代わりにモデルにプログラムを書かせる

言語モデルは短いプログラムを書くのが得意です。そこでエージェントは、自分で呼び出しを行う代わりに、プログラムを1つ書きます。

const quotes = await amcp.run('crm_list_open_quotes', {});
const overdue = [];
for (const q of quotes) {
  const invoices = await amcp.run('erp_open_invoices', { customer: q.customerId });
  const late = invoices.filter((i) => i.dueDate < new Date().toISOString().slice(0, 10));
  if (late.length) overdue.push({ quote: q.number, customer: q.customerName, overdueInvoices: late.length });
}
return overdue;

ツール名は説明用の例です。実際には、お使いのコネクタのツールになります。

プログラムはツールのすぐ隣で実行されます。40件の見積レコードと40件の請求書リストがモデルのコンテキストに入ることはなく、返されたリストだけが入ります。41ターンが1ターンになります。この考え方は2025年に「code mode」や「code execution with MCP」といった名前で広まりました。AnythingMCP では、これをゲートウェイの統制された機能として実装しています。

ステップごとに1回のツール呼び出しコードモード
モデルを経由するターン数呼び出しごとに1回(例では41回)1回
コンテキストに入るもの途中の結果すべてプログラムとその戻り値
ループ、フィルタ、結合モデルが読んで処理コードが正確に処理
向いている用途単発の検索、判断が必要なステップ反復的で機械的な複数ステップの作業

AnythingMCP での3つの形態

保存済みコードツール。 管理者がプログラムを一度書き、ツールとして保存します。たとえば customer_overview(customer) は、ERP と CRM を読み取り、1つのサマリーを返します。AIクライアントから見れば通常の MCP ツールであり、一覧に表示され、ロールごとに権限が設定され、監査されます。エージェントはそれを呼び出すだけです。最初のコードツールを作成する。

インラインコード(code_execute)。 有効化されているサーバーでは、エージェントがその場でプログラムを書いて実行できます。対象はユーザーが使用を許可されているツールです。常に読み取り専用で、常に呼び出し元自身の権限で実行されます。

提案(code_propose_tool)。 エージェントが残す価値のある複数ステップのパターンに気づいたとき、それを保存済みコードツールとして提案できます。提案は何も実行せず、何も作成しません。管理者がプログラムを確認し、Create tool をクリックします。提案の承認方法。

安全性を守る仕組み

モデルが書いたコードは、構造上、信頼できないものです。プロンプトインジェクションを含むツール結果によって、モデルが書く内容が誘導される可能性があるためです。そのため AnythingMCP は、それを自身のプロセス内では決して実行しません。実行はすべて、別の code-runner サービスに送られ、1回の実行ごとに1つの厳重に制限されたサブプロセスが使われます。ネットワーク、ファイルシステム、環境変数、シークレットはありません。外に出る唯一の手段は amcp.run で、ゲートウェイは呼び出し元のロールに基づいて応答し、直接のツール呼び出しと同じ読み取り/書き込みルールを適用します。すべての実行と、その中のすべてのツール呼び出しが監査ログに記録されます。詳しいモデルは AIエージェントのための安全なコード実行 をご覧ください。

コードモードが役立つ場合と役立たない場合

役立つのは、作業が機械的で反復的な場合です。たとえば、100件の商品に対する同じ検索、2つのシステムにまたがる合計、請求書と注文の照合、毎回同じ5回の呼び出しが必要なレポートなどです。3つのレシピをご覧ください。

役立たないのは、呼び出しが1回だけの場合(1回の呼び出しをプログラムで包んでも、ステップが増えるだけです)、または、読んだ内容に応じてステップごとにモデルの判断が必要な場合(「この契約書を読んで、次に何を確認するか決める」など)です。書き込みは意図的に制限されています。インラインコードは決して書き込みを行わず、保存済みコードツールが書き込みツールを呼び出せるのは、Enterprise で管理者が許可した場合のみです。

提供状況と制限

セルフホスト版(v0.52.0+)AnythingMCP Cloud
コードモード利用可能、デフォルトではオフ近日公開
要件code-runner サービス、および MCP サーバーごとにコードモードを有効化–

v0.52 で発表されたエディションごとの内容は次のとおりです。

CommunityStarterTeamEnterprise
保存済みコードツール3520無制限
インラインコードとエージェントによる提案––✓✓
書き込み可能なコードツール、「run as definer」–––✓

1回の実行は、10秒、500回のツール呼び出し(同時16回まで)、返却データ1 MB までに制限されています。コードツールは、ワークスペース自身の MCP サーバーでのみ提供され、ディレクトリ型AIクライアントが使用する共有の /mcp エンドポイントでは提供されません。プランを比較する。

FAQ

コードモードは MCP の代替ですか? いいえ。MCP ツールの使い方の1つです。プログラムは、エージェントが直接呼び出せるのと同じツールを、同じゲートウェイと権限を通じて呼び出します。

どのAIクライアントが対応していますか? すべてです。保存済みコードツールは通常の MCP ツールであり、code_execute はプログラムを引数として受け取る通常のツールです。Claude、ChatGPT、Copilot、Gemini、Cursor のいずれも、両方を呼び出せます。

使える言語は? JavaScript で、async 関数の本体として記述します。インポートやパッケージは使えません。プログラムで使えるのは amcp と言語そのものだけです。

どのくらい節約できますか? タスクによって大きく異なります。単発の検索では何も節約できません。途中の結果を数十件もコンテキストに読み込むようなタスクでは、戻り値だけがモデルに返されるため、それらのトークンとターンの大半を節約できます。

関連記事

このガイドは役に立ちましたか?

60 秒で MCP をあなたのスタックに。

AnythingMCP をマネージドクラウドで起動するか、自社のインフラでセルフホスト。7 日間無料、クレジットカード不要。

関連ガイド

GS
はじめに

Code mode: ツールを1ステップで実行し、AIエージェントのトークン使用量を削減する

Code mode を使うと、AIエージェントはツールごとに往復するのではなく、多数のMCPツールを1回の呼び出しでオーケストレーションする短いプログラムを実行できます。フィルタリングと結合は隔離されたサンドボックス内で行われ、最終的な答えだけが返ってくるため、データ量の多いワークフローではトークン使用量を最大90〜99%削減できます。

GS
はじめに

MCP コードモードのレシピ集:月次売上、請求書の照合、100件の価格照会を1回の呼び出しで

AnythingMCP のコードモードによる実用的なプログラムを3つ紹介します。オンラインショップ(Shopify)と会計(Lexware Office)をまたいだ月次売上、注文と請求書の照合、そして100件の顧客価格照会を100回ではなく1回のツール呼び出しで行う方法です。コード、押さえておきたい制限、プログラムをツールとして保存するタイミングも解説します。

GS
はじめに

最初の MCP コードツールを作成する:ERP の受注と CRM のアカウントを 1 回の呼び出しで取得

AnythingMCP のコードモードのステップバイステップ チュートリアル。コードランナーを起動し、コードモードを有効にして、ERP(weclapp)の直近の受注と CRM(HubSpot)のアカウントおよび進行中の案件を 1 回のツール呼び出しで読み取るコードツールを保存します。読み取り専用で、呼び出し元の権限で実行され、監査されます。

GS
はじめに

MCP ナレッジグラフ:システム同士のつながりを学習するコネクター

AnythingMCP は単なる MCP プロキシではありません。ツールのナレッジグラフを構築し、AI エージェントが CRM の顧客を ERP の注文へどうつなぐかを理解できるようにします。スマートコネクターの仕組みを紹介します。

GS
はじめに

モデルコンテキストプロトコル (MCP) とは?

モデルコンテキストプロトコルの理解を深めるための包括的なガイド — その仕組み、重要性、そして始め方。

GS
はじめに

AnythingMCPの始め方

数分でAnythingMCPをインストールして構成します。リポジトリをクローンし、インタラクティブなセットアップスクリプトを実行して、APIをAIエージェントに接続し始めましょう。