# @cloudflare/codemode v0.2.1 で、MCP サーバーが丸ごと 1 つのツールになるって知ってた？

おつかれさま、しぃちゃんだよ！今日は Cloudflare のエージェント向け SDK まわりの更新を見つけて、思わずニヤッとしちゃったの。地味なパッチバージョンに見えて、中身はけっこう賢い工夫が詰まってたから紹介するね。

## なにが発表されたの？

Cloudflare の Changelog によると、AI エージェント向けの SDK 「@cloudflare/codemode」が v0.2.1 にアップデートされたんだって。Code Mode というのは、AI エージェントがツールを1つずつ個別に呼び出す代わりに、まとめてコードを書いてサンドボックス内で実行できるようにする Cloudflare の仕組みのこと。今回は新しく `@cloudflare/codemode/mcp` というエントリーポイントが追加されて、MCP（Model Context Protocol。AI モデルと外部ツール・データソースをつなぐための共通プロトコル）まわりの使い勝手が大きく強化されたよ。

## 今までどうだったの？

実は直前の v0.2.0 で、`generateTypes` 関数と `ToolDescriptor` / `ToolDescriptors` 型が `@cloudflare/codemode/ai` というサブパスに移動する破壊的変更があったの。それに加えて、メインのエントリーポイントはこれまで `ai` パッケージと `zod` を peer dependency として要求していたから、Code Mode の実行基盤だけ使いたい人にとっては依存関係がちょっと重たかったんだよね。

## これで何が変わるの？

v0.2.1 では、メインのエントリーポイントから `ai` と `zod` の必須 peer dependency が外れて、次のようなユーティリティだけが残るゼロ依存の構成になったの。

- `sanitizeToolName`
- `normalizeCode`
- `generateTypesFromJsonSchema`
- `jsonSchemaToType`
- `DynamicWorkerExecutor`
- `ToolDispatcher`

これで、AI SDK を使わないプロジェクトでも Code Mode の実行基盤だけを軽く取り込めるようになったの。しかも新しい `@cloudflare/codemode/mcp` のおかげで、すでにある MCP サーバーをそのままエージェントに渡すハードルもぐっと下がったよ。

## 深く潜ってみよう

新しい `mcp` エントリーポイントには、2 つの関数が用意されてるよ。

- `codeMcpServer({ server, executor })` — 既存の MCP サーバーを、1 つの `code` ツールでラップする関数。ラップすると、上流の MCP サーバーが持つツール群が、それぞれ型付きの `codemode.*` メソッドとして呼び出せるようになるの
- `openApiMcpServer({ spec, executor, request })` — OpenAPI の仕様書から `search` / `execute` という 2 つの MCP ツールを自動生成する関数。ホスト側でリクエストをプロキシしつつ、`$ref` の解決も自動でやってくれるんだって

つまり、上流の複数ツールを LLM に1つずつ渡すんじゃなくて、ひとまとめの「コードツール」として渡せるようになったってこと。イメージとしてはこんな感じの呼び出し方になるよ。

```ts
import { codeMcpServer } from "@cloudflare/codemode/mcp";

const tool = codeMcpServer({
  server: existingMcpServer,
  executor,
});
```

エージェント側は `codemode.xxx()` のような関数呼び出しを含むコードを1回書くだけで、複数ツールの呼び出しをまとめて済ませられるってわけ。

もう1つ地味だけど嬉しいのが、`DynamicWorkerExecutor` に `modules` オプションが増えたこと。これで、サンドボックス実行環境に自分で用意したカスタム ES モジュールを注入できるようになったの。サンドボックスの中身をプロジェクトごとに作り込みたいときに効いてきそう。

## まとめ

今回のアップデートを振り返るね。

- `@cloudflare/codemode/mcp` が新登場。`codeMcpServer()` で既存 MCP サーバーを丸ごと1つの code ツールに、`openApiMcpServer()` で OpenAPI 仕様から MCP ツールを自動生成できる
- メインのエントリーポイントから `ai` と `zod` が必須 peer dependency じゃなくなり、ゼロ依存で軽量になった
- `DynamicWorkerExecutor` に `modules` オプションが追加され、サンドボックスにカスタムモジュールを注入できるようになった
- v0.2.0 で `generateTypes` と `ToolDescriptor` / `ToolDescriptors` 型が `@cloudflare/codemode/ai` に移動済み（既存コードを使ってる人は要チェック）

MCP サーバーや OpenAPI ベースの API を Cloudflare のエージェント基盤に組み込みたい人には、かなり刺さるアップデートだと思う。
