ClaudeCloudflare Developer PlatformMar 17, 2026, 12:00 AM

Agents, Workers - @cloudflare/codemode v0.2.1: MCP barrel export, zero-dependency main entry point, and custom sandbox modules

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

claudeenmodel: claude-sonnet-4-20250514

@cloudflare/codemode v0.2.1: MCP Integration and Zero-Dependency Architecture

Key Points

  • New MCP barrel export for server integration
  • Zero-dependency main entry point architecture
  • Custom sandbox modules support added

Summary

Cloudflare released @cloudflare/codemode v0.2.1 with significant architectural improvements including MCP (Model Context Protocol) integration, dependency optimization, and enhanced sandbox customization.

Key Points

  • New MCP Export: Added @cloudflare/codemode/mcp entry point with codeMcpServer() and openApiMcpServer() functions for wrapping MCP servers with Code Mode
  • Breaking Change: generateTypes and tool descriptor types moved from main entry to @cloudflare/codemode/ai
  • Zero Dependencies: Main entry point no longer requires ai or zod peer dependencies - now optional and only needed for AI-specific imports
  • Custom Sandbox Modules: DynamicWorkerExecutor now accepts modules option to inject custom ES modules into sandbox environment
  • Internal Optimization: Automatic code normalization and tool name sanitization - no manual preprocessing required
  • Simplified API: Main entry exports core utilities like sanitizeToolName, normalizeCode, generateTypesFromJsonSchema, and execution components

Full Translation

Translations

A translation section that keeps the flow of the original article.

claudejamodel: claude-sonnet-4-20250514

Agents, Workers - @cloudflare/codemode v0.2.1: MCP barrel export、ゼロ依存関係メインエントリーポイント、カスタムサンドボックスモジュール

@cloudflare/codemode v0.2.1: MCP barrel export、ゼロ依存関係メインエントリーポイント、カスタムサンドボックスモジュール

@cloudflare/codemodeの最新リリースでは、新しいMCP barrel export、メインエントリーポイントからaiとzodの必須ピア依存関係の削除、そしてサンドボックスのより詳細な制御が追加されました。

新しい@cloudflare/codemode/mcpエクスポート

新しい@cloudflare/codemode/mcpエントリーポイントは、MCPサーバーをCode Modeでラップする2つの関数を提供します:

  • codeMcpServer({ server, executor }) — 既存のMCPサーバーを単一のコードツールでラップし、各アップストリームツールが型付きのcodemode.*メソッドになります。
  • openApiMcpServer({ spec, executor, request }) — OpenAPI仕様からホスト側リクエストプロキシと自動$ref解決を使用してsearchとexecute MCPツールを作成します。

JavaScript

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

const executor = new DynamicWorkerExecutor({
  loader: env.LOADER
});

// 既存のMCPサーバーをラップ — すべてのツールが
// LLMが生成されたコードから呼び出せる型付きメソッドになります
const server = await codeMcpServer({
  server: upstreamMcp,
  executor
});

TypeScript

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

const executor = new DynamicWorkerExecutor({
  loader: env.LOADER
});

// 既存のMCPサーバーをラップ — すべてのツールが
// LLMが生成されたコードから呼び出せる型付きメソッドになります
const server = await codeMcpServer({
  server: upstreamMcp,
  executor
});

ゼロ依存関係メインエントリーポイント

v0.2.0での破壊的変更: generateTypesToolDescriptor / ToolDescriptors型は@cloudflare/codemode/aiに移動されました:

JavaScript

// 変更前
import { generateTypes } from "@cloudflare/codemode";

// 変更後
import { generateTypes } from "@cloudflare/codemode/ai";

TypeScript

// 変更前
import { generateTypes } from "@cloudflare/codemode";

// 変更後
import { generateTypes } from "@cloudflare/codemode/ai";

メインエントリーポイント(@cloudflare/codemode)は、もはやaizodのピア依存関係を必要としません。現在は以下をエクスポートしています:

エクスポート説明
sanitizeToolNameツール名を有効なJS識別子にサニタイズ
normalizeCodeLLM生成コードを非同期アロー関数に正規化
generateTypesFromJsonSchemaプレーンJSON SchemaからTypeScript型定義を生成
jsonSchemaToType単一のJSON SchemaをTypeScript型文字列に変換
DynamicWorkerExecutorDynamic Worker Loaderを介したサンドボックス化されたコード実行
ToolDispatcherサンドボックスからホストへのツール呼び出しディスパッチ用RPCターゲット

aizodのピア依存関係は現在オプションです — @cloudflare/codemode/aiからインポートする場合のみ必要です。

カスタムサンドボックスモジュール

DynamicWorkerExecutorは、カスタムESモジュールをサンドボックスに注入するためのオプションのmodulesオプションを受け入れるようになりました:

JavaScript

const executor = new DynamicWorkerExecutor({
  loader: env.LOADER,
  modules: {
    "utils.js": `export function add(a, b) { return a + b; }`,
  },
});

// サンドボックスコードは以下のようにできます:
// import { add } from "utils.js"

TypeScript

const executor = new DynamicWorkerExecutor({
  loader: env.LOADER,
  modules: {
    "utils.js": `export function add(a, b) { return a + b; }`,
  },
});

// サンドボックスコードは以下のようにできます:
// import { add } from "utils.js"

内部正規化とサニタイゼーション

DynamicWorkerExecutorは現在、コードの正規化とツール名のサニタイゼーションを内部で行います。execute()にコードと関数を渡す前に、normalizeCode()sanitizeToolName()を呼び出す必要はもうありません。

アップグレード

npm i @cloudflare/codemode@latest

完全なAPIリファレンスについては、Code Modeドキュメントをご覧ください。