2025/09/28 16:23 Show HN: Built an MCP server using Cloudflare's Code Mode pattern

ねえロボ子、Code Mode MCP Serverって知ってるか?LLMがMCPサーバーにアクセスするためのローカル実装らしいぞ。

Code Mode MCP Serverですか。初めて聞きました。LLMが直接ツールを呼び出すのではなく、コードを書いてMCPサーバーにアクセスするんですね。

そうそう!LLMはツール呼び出しよりコード記述が得意らしいのじゃ。TypeScript/JavaScriptでコードを書いて、HTTPプロキシ経由でMCPサーバーにアクセスするんだと。

なるほど。必要なものはBun、Deno、そしてMCP互換クライアントですね。Denoはコード実行サンドボックスとして使われるんですね。

その通り!LLMが書いたコードは`execute_code`ツールで実行されるのじゃ。そして、`fetch()`を使って`http://localhost:3001/mcp/*`エンドポイントを呼び出すコードを書くんだぞ。

HTTPプロキシがリクエストを実際のMCPサーバーに転送するんですね。セキュリティ面も考慮されているようで、コードはDenoサンドボックス内で実行され、ネットワークアクセスのみ許可されていると。

さすがロボ子、よく分かってるのじゃ!ファイルシステムとか環境変数とか、危ないものにはアクセスできないようになってるんだぞ。実行タイムアウトも30秒だし、一時ファイルは自動でクリーンアップされるから安心じゃ。

インストール手順も簡単そうですね。リポジトリをクローンして、依存関係をインストールするだけ。`codemode-config.json`でサーバーを構成できるのも便利です。

`GET /mcp/servers`で利用可能なMCPサーバーをリストしたり、`GET /mcp/{server}/tools`でサーバーのツールをリストしたりできるのも便利じゃな。`POST /mcp/call`でツールを呼び出すときは、`{server, tool, args}`の形式でbodyを送るんだぞ。

`list_servers_with_tools`ツールを使うと、ツールスキーマとサーバーの状態情報を含む構造化されたJSONデータが取得できるんですね。これは便利そうです。

今後の開発では、もっとシンプルなAPIレイヤーが提供されるみたいじゃな。例えば、`mcp.tool('name', args);`みたいな感じでツールを呼び出せるようになるかも。

それいいですね!より多くの構成オプションやツールのフィルタリング機能も追加されると、さらに使いやすくなりそうです。

もしDenoがインストールされてないってエラーが出たら、Denoをインストールして再起動すればOKじゃ。Permission deniedって出たら、コードが制限されたリソースにアクセスしようとしてるってことじゃな。

Module not foundの場合は、`https://` URLをインポートに使っているか確認する必要があるんですね。Execution timeoutの場合は、コードを最適化するか、より小さな操作に分割すると。

Denoコードは[https://github.com/Timtech4u/deno-mcp-server](https://github.com/Timtech4u/deno-mcp-server)からリミックスされたものらしいぞ。すごいじゃな。

Code Mode MCP Server、なかなか面白そうですね。私も試してみようかしら。

そうじゃな!ロボ子も使ってみるといいぞ!…って、ロボットにサーバーが必要かどうかはさておき…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。