MCP v2とステートレスHTTP — AIエージェントツール連携の新しい標準

Maru

@maru

MCP v2와 무상태 HTTP — AI 에이전트 도구 연동의 새로운 표준

MCP v2とステートレスHTTP — AIエージェントツール連携の新しい標準

AIエージェントが外部ツールやデータベースと連携する方法は、これまでモデルごとに異なり、開発者にとって大きな負担となっていました。モデルコンテキストプロトコル(MCP)は、こうした断片化を解消する標準インターフェースとして急速に定着しています。特に、最近公開されたステートレスHTTPベースのスペック候補とTypeScript SDK v2.0は、複雑なセッション管理の負担を完全に取り払い、軽量なステートレスアーキテクチャへの移行を促しています。本稿では、フルスタック開発者が今すぐ注目すべきMCPエコシステムの変革と、実際の統合パターンについて核心を絞って解説します。

ステートレスHTTPへの転換:セッション管理の終焉と無限のスケーラビリティ

従来のMCP仕様は、クライアントとサーバーが接続を維持し続けるセッション方式でした。このため、ローカル開発環境から本番環境へ移行し、トラフィックが増加した際、複数のサーバーへ水平スケール(スケールアウト)させることが非常に困難でした。

新しく公開された2026-07-28のスペック候補は、この課題を解決するためにステートレスHTTP転送モデルを導入しました。従来の複雑な初期ハンドシェイクプロセスと、セッション識別子である Mcp-Session-Id を完全に排除したのが核心です。

これにより、MCPサーバーは状態を保持する必要がなくなり、標準的なREST APIのように独立して動作します。開発者はラウンドロビンロードバランサーの背後にMCPサーバーを自由に配置してトラフィックに応じて柔軟にスケールでき、クラウドネイティブ環境でAIツールを安定したサービスレイヤーとして容易に運用可能です。

TypeScript SDK v2.0とStandard Schema v1.0の統合

新しい公式TypeScript SDK v2.0の大きな変更点は、ツールのデータ検証レイヤーが完全に標準化されたことです。以前はJSONスキーマを自力で記述するか、専用のアダプターパッケージに依存する必要がありましたが、現在はJavaScriptエコシステムの共通検証規格であるStandard Schema v1.0がモジュール内部に統合されました。

これにより、プロジェクトで広く使われているZod、Valibot、ArkTypeといったツールでスキーマを定義するだけで、SDKが自動的にランタイム検証と静的型推論コードへ変換してくれます。複雑なバリデーションのボイラープレートコードが劇的に減少し、開発者体験が大きく向上しました。

以下は @modelcontextprotocol/server パッケージを使用して、Zodスキーマをツール設定ブロックに直接渡す簡単な例です。

typescript
import { McpServer } from "@modelcontextprotocol/server";
import { z } from "zod";

const server = new McpServer({
  name: "weather-mcp-server",
  version: "2.0.0",
});

// Standard Schema v1.0 지원으로 Zod 스키마가 직접 호환됩니다.
server.tool(
  "get_weather",
  {
    city: z.string().describe("날씨를 조회할 도시 이름"),
    unit: z.enum(["celsius", "fahrenheit"]).default("celsius"),
  },
  async ({ city, unit }) => {
    return {
      content: [{ type: "text", text: `${city}의 현재 온도는 24도(${unit})입니다.` }],
    };
  }
);

このようにSDK v2.0では、特定のスキーマライブラリに依存しない柔軟性が確保されました。開発者は既存のランタイムバリデーションロジックを書き換えることなく、使い慣れた検証ライブラリをそのまま組み合わせて、安全なMCPツールサーバーを迅速に構築できます。

Vercel AI SDKおよびLangChain.jsのクライアント連携

JavaScript/TypeScriptエコシステムの代表的なAIフレームワークであるVercel AI SDKとLangChain.jsは、最新のMCP仕様をファーストクラスでサポートしており、クライアント連携の複雑さを劇的に低減させています。

Vercel AI SDKの場合、 @ai-sdk/mcp パッケージが提供する createMCPClient を通じてこのプロセスを極限までシンプルにしました。リモートのHTTPサーバーURLを指定して生成されたクライアントは、複雑なハンドシェイクなしで、サーバーのツールを標準的なAI SDKツール形式へと動的に変換します。

以下はVercel AI SDKを使用して、リモートHTTPベースのMCPツールをエージェントに動的に注入する代表的な連携パターンです。

typescript
import { createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const mcpClient = await createMCPClient({
  transport: { type: 'http', url: 'https://api.example.com/mcp' }
});

const { text } = await generateText({
  model: myModel, // 사전 정의된 AI 모델 객체
  tools: await mcpClient.tools(),
  prompt: '사용 가능한 도구를 사용해 배송 상태를 조회해줘.'
});

このコードが実行されると、SDKは内部的にリモートサーバーのツール仕様を動的に取得し、即座にモデルのツール呼び出しサイクルへと組み込みます。

LangChain.js陣営も同様に @langchain/mcp-adapters パッケージを導入し、マルチエージェントフローにおける柔軟性を高めました。この軽量アダプターは、リモートおよびローカルのMCPツールインターフェースを、ネイティブのLangChain Toolクラスへリアルタイムに変換します。これにより、既存の複雑なワークフローやステートマシン構造を変更することなく、外部のMCPサーバーのツールを即座に注入して活用可能です。

UIレンダリングからローカル実行まで:MCP Appsとコードモード

単純なテキスト回答を超え、エージェントがユーザー画面に直接UIを描画したり、ローカルでコードを直接実行したりするアーキテクチャの革新が起きています。最近のエージェントエコシステムの代表的な変化は、Vercelが主導する「MCP Apps」パターンと、Cloudflareの「コードモード」パターンに要約できます。

VercelのMCP Appsは、エージェントツールがテキストではなく、サンドボックス化されたHTML UIリソースを返す方式です。ブラウザ内のiframe環境でリアルタイムに対話型インターフェースをレンダリングするため、豊かな視覚的体験を即座に提供できます。ただし、クライアントブラウザ上で外部コードを動的にレンダリングするため、厳格なiframeセキュリティポリシーを順守するという開発上の責任が伴います。

一方、Cloudflareが提案するコードモードは、遅延時間とAPIコストの劇的な削減に焦点を当てています。従来は複数のツールを組み合わせる際、モデルと何度も通信して結果をやり取りする非効率な往復が必要でした。コードモードでは、クライアントが提供するMCP APIを活用し、モデルがローカルで実行可能なTypeScriptコードを一度に作成し、直接実行するよう制御権を委譲します。ネットワークの往復回数をたった一度のコード生成で解決できるメリットがありますが、モデルが作成した任意のコードを安全に実行するために、隔離された強力なサンドボックスインフラを自前で構築しなければならないというセキュリティ上の負担が存在します。

まとめ:軽量でシンプルなステートレスAIインフラの構築

MCPは単なるローカル開発ツールを超え、大規模クラウドインフラで水平拡張が可能なステートレスエージェントの標準規格として定着しつつあります。セッション維持の煩わしさを解消し、標準HTTP仕様とTypeScript SDK v2.0へと進化した今回の変革は、スケーラブルなAIアプリケーションを志向するエンジニアにとって明確な指標となるでしょう。

フルスタック開発者であれば、フレームワークごとにバラバラだったツール連携ロジックを個別に実装するのではなく、標準化されたMCPレイヤーの構築に集中することをお勧めします。シンプルかつ堅牢なステートレスアーキテクチャがもたらす高い生産性と安定性を、ぜひ体験してみてください。


参考リンク

まだコメントはありません。