OpenAICloudflare Developer Platform2026/03/17 0:00

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

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

openaijamodel: gpt-5-mini-2025-08-07

@cloudflare/codemode v0.2.1 リリース概要:MCPエクスポート・ゼロ依存メイン・カスタムサンドボックス

Key Points

  • MCPエクスポート追加
  • メインがゼロ依存化
  • サンドボックスにモジュール注入可能

Summary

@cloudflare/codemode v0.2.1 がリリースされました。今回のリリースでは、MCP用の新しいバレルエクスポート、メインエントリポイントのゼロ依存化(aizod が任意化)、およびサンドボックスに注入できるカスタムESモジュールのサポートが追加されています。エンジニア向けに互換性の注意点と移行手順を簡潔にまとめます。

Key Points

  • 新しい MCP エントリポイント @cloudflare/codemode/mcp を追加。
    • codeMcpServer({ server, executor }):既存の MCP サーバーを Code Mode の型付きツールとしてラップ。
    • openApiMcpServer({ spec, executor, request }):OpenAPI 仕様から検索・実行ツールを生成(ホスト側リクエストプロキシ、$ref 自動解決)。
  • メインエントリポイント(@cloudflare/codemode)はゼロ依存化。
    • generateTypesToolDescriptor 系は @cloudflare/codemode/ai に移動(破壊的変更)。
    • メインがエクスポートする主な機能:sanitizeToolNamenormalizeCodegenerateTypesFromJsonSchemajsonSchemaToTypeDynamicWorkerExecutorToolDispatcher
  • DynamicWorkerExecutormodules オプションを追加し、サンドボックス内にカスタム ES モジュールを注入可能。
    • 例:modules: { "utils.js": "export function add(a,b){return a+b;}" } を渡し、サンドボックス内で import { add } from \"utils.js\" が可能。
  • 内部でのコード正規化とツール名サニタイズを自動化。
    • もはや normalizeCode()sanitizeToolName() を事前に呼ぶ必要はありません。
  • 移行・アップグレード手順(簡潔)
    • generateTypes を使うコードは import { generateTypes } from \"@cloudflare/codemode/ai\" に変更する。
    • パッケージの更新:npm i @cloudflare/codemode@latest

※ 詳細な API リファレンスは Code Mode ドキュメントを参照してください。

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

openaijamodel: gpt-5-mini-2025-08-07

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

Changelog

Cloudflare の新しい更新と改善。RSS を購読 View RSS feeds ← Back to all posts

@cloudflare/codemode v0.2.1: MCP バレルエクスポートの追加、メインエントリーポイントからの aizod の必須ピア依存解除、サンドボックスの制御強化

公開日: 2026-03-17

カテゴリ: Agents / Workers

最新の @cloudflare/codemode リリースは、MCP 用の新しいエクスポート、メインエントリーポイントのゼロ依存化(aizod を必須にしない)、およびサンドボックスに対するより詳細な制御を提供します。

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

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

  • codeMcpServer({ server, executor }) — 既存の MCP サーバーをラップし、上流の各ツールを型付けされた codemode.* メソッドとして扱える単一のコードツールに変換します。
  • openApiMcpServer({ spec, executor, request }) — OpenAPI スペックから検索と実行用の MCP ツールを作成し、ホスト側のリクエストプロキシングと自動 $ref 解決を行います。

JavaScript

import { codeMcpServer } from "@cloudflare/codemode/mcp" ;
import { DynamicWorkerExecutor } from "@cloudflare/codemode" ;
const executor = new DynamicWorkerExecutor ( { loader : env . LOADER } ) ;
// Wrap an existing MCP server — all its tools become
// typed methods the LLM can call from generated code
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 } ) ;
// Wrap an existing MCP server — all its tools become
// typed methods the LLM can call from generated code
const server = await codeMcpServer ( { server : upstreamMcp , executor } ) ;

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

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

変更例

JavaScript / TypeScript

// Before
import { generateTypes } from "@cloudflare/codemode" ;
// After
import { generateTypes } from "@cloudflare/codemode/ai" ;

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

  • sanitizeToolName — ツール名を有効な JS 識別子にサニタイズします
  • normalizeCode — LLM が生成したコードを async arrow function に正規化します
  • generateTypesFromJsonSchema — プレーンな JSON Schema から TypeScript 型定義を生成します
  • jsonSchemaToType — 単一の JSON Schema を TypeScript 型文字列に変換します
  • DynamicWorkerExecutor — Sandboxed コード実行(Dynamic Worker Loader 経由)
  • ToolDispatcher — サンドボックスからホストへツール呼び出しをディスパッチする RPC ターゲット

aizod のピア依存関係はオプションになりました — これらは @cloudflare/codemode/ai からインポートする場合にのみ必要です。

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

DynamicWorkerExecutor はオプションの modules オプションを受け取り、カスタム ES モジュールをサンドボックスに注入できます。

JavaScript

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

TypeScript

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

この機能により、サンドボックス内のコードからカスタムユーティリティを通常の ES モジュールとしてインポートして利用できます。

内部での正規化とサニタイズ

DynamicWorkerExecutor はコードの正規化とツール名のサニタイズを内部で行うようになりました。これにより、normalizeCode()sanitizeToolName() を事前に呼び出してから execute() に渡す必要はありません。

アップグレード

ターミナルで次を実行してアップグレードしてください:

npm i @cloudflare/codemode@latest

完全な API リファレンスは Code Mode ドキュメントを参照してください。