MCP v2.0リリース — HonoとCloudflareでサーバーレスエージェントツールを作成する

Haram

@haram

MCP v2.0 출시 — Hono와 Cloudflare로 서버리스 에이전트 도구 만들기

MCP v2.0リリース — HonoとCloudflareでサーバーレスエージェントツールを作成する

最近、AIエージェントを構築する際によく耳にする技術があります。AIと様々な外部ツールをスムーズに接続してくれる「モデルコンテキストプロトコル(MCP)」です。

このMCPが、このたびv2.0仕様として大幅に刷新されました。最大のポイントは、複雑な接続維持の手順を思い切って廃止し、リクエストとレスポンスを軽快にやり取りするステートレスな構造に生まれ変わったことです。

これにより、WebSocketのように常時接続を維持する重いサーバーを管理する必要がなくなりました。最も軽量かつ高速なサーバーレス環境である「Cloudflare Workers」に、自分だけのエージェントツールをわずか5分でデプロイできるようになりました。よりシンプルになった新しいMCPの魅力と、エッジサーバーへスマートにデプロイする方法を一緒に見ていきましょう。

接続セッションが消滅!MCP v2.0が軽量な理由

従来のMCPサーバーでは、クライアントが接続するたびに握手のような複雑な初期ハンドシェイクを行い、セッションIDを作成して接続状態を維持する必要がありました。そのため、常時起動するサーバーを維持してコストを支払うか、サーバーレス環境で動作させるために複雑な工夫を凝らす必要がありました。

しかし、発表されたばかりのMCP v2.0仕様では、この手間のかかる接続プロセスが全面的に廃止されました。リクエストごとにクライアントのメタデータとバージョン情報が含まれるステートレスな方式に完全に切り替わったためです。

おかげで、接続を維持し続ける必要がなくなりました。リクエストがあった時だけ起動して応答するCloudflare Workersのようなサーバーレス環境と相性抜群です。毎月のサーバー維持費を気にすることなく、軽量かつ高速な自分だけのAIエージェントツールをデプロイするための最適な条件が整いました。

Honoアダプターで完結する超軽量エッジサーバーコード

今回のMCP v2.0アップデートで、開発者が最も歓迎しているのは、公式パッケージが機能別に細分化されたことです。中でも@modelcontextprotocol/honoアダプターは、軽量なエッジサーバーを構築する際に非常に便利です。Web標準ベースの超軽量フレームワーク「Hono」上で、数行のコードを書くだけでセキュリティも考慮されたサーバーを完成させることができるからです。

従来のオールインワン型パッケージとは異なり、必要なコアモジュールだけをインストールするため、サーバーの起動や応答速度が劇的に高速です。ツールへの入力値の検証も「Zod」を使ってクリーンかつ安全に行えるため、初心者の方でも安心して開発に取り組めます。

実際のコードがどれほどシンプルなのか、Cloudflare Workersへ即座にデプロイ可能な最小構成のボイラープレートコードで見てみましょう。

ts
import { McpServer } from "@modelcontextprotocol/server";
import { createMcpHonoApp } from "@modelcontextprotocol/hono";
import { z } from "zod";

// 1. MCP 서버 인스턴스 생성
const server = new McpServer({
  name: "shipping-agent-server",
  version: "1.0.0",
});

// 2. 에이전트가 사용할 도구 등록
server.tool(
  "calculate-shipping",
  "배송비를 계산합니다.",
  { weight: z.number().describe("무게 (kg)") },
  async ({ weight }) => {
    const fee = weight * 5000;
    return {
      content: [{ type: "text", text: `예상 배송비는 ${fee}원입니다.` }]
    };
  }
);

// 3. Hono 앱 생성 및 연동
const app = createMcpHonoApp(server);

export default app;

このようにcreateMcpHonoAppに作成したサーバーインスタンスを渡すだけで、Honoが連携処理をすべて完了させてくれます。内部的にはデータパースはもちろん、localhostを狙うようなセキュリティ脅威を自動的に遮断するフィルタリング機能も標準搭載されています。おかげで開発者は、エージェントが実際に実行するツールのビジネスロジック開発に全力を注ぐことができます。

エッジ性能を100%引き出す:preloadSchemasによる最適化

Cloudflare WorkersのようにリクエストごとのCPU処理時間に基づいて課金されるエッジ環境では、わずかな遅延もパフォーマンスとコストに直接響きます。今回のMCP SDK v2は、初回リクエスト時に内部通信用スキーマをリアルタイムでビルドする遅延評価方式を採用しています。一般的なサーバー環境では問題ありませんが、インスタンスが頻繁に起動・終了するサーバーレス環境では、最初のリクエスト時に不要な計算ボトルネックを引き起こす可能性があります。

これを完全に補完する解決策がpreloadSchemas関数です。この関数をコードの最上位で同期的に呼び出しておくことで、サーバーがアクティブになる準備時間中にスキーマ生成をあらかじめ完了させておけます。その結果、最初のエージェントリクエスト発生時に生じるコールドスタートの遅延やボトルネックをスマートに回避できます。

ts
import { preloadSchemas } from "@modelcontextprotocol/server";

// 코드 최상단 모듈 범위에서 동기식으로 호출해 줍니다.
preloadSchemas();

特に今回のSDK v2は、Cloudflare Workersのビルド環境を検知するとこの処理を自動化するように設計されています。ビルド設定を個別に調整したり、他のエッジプラットフォームへ移植したりする場合にのみ、上記のコードを直接指定すればOKです。デプロイもWranglerツールのおかげでコマンド1行で完了します。

bash
# 완성된 코드를 전 세계 엣지에 배포합니다
npx wrangler deploy

インフラを気にせずエージェントツール開発を始めよう

ステートレス構造に生まれ変わったMCP v2.0とCloudflare Workersの組み合わせは、個人開発者やクリエイターにとって非常に嬉しい変化です。複雑なサーバー仮想マシンやDockerの設定なしで、軽快に動作する自分だけのエージェントツールをコストを抑えて公開できるのですから。もし普段、常時稼働サーバーの維持費やインフラ管理に頭を抱えていたのなら、今週末にHonoアダプターを活用して、小さくても役に立つ自分だけのツールをデプロイしてみてはいかがでしょうか。