メインコンテンツまでスキップ

v8への移行 — HTTP / stdio

v8ではMCP clientとPython serverの接続に、従来のstdioに加えてStreamable HTTPを導入しました。同時に、Python serverとUnity Editor pluginのHTTP mode通信をWebSocketへ移行しました。

構成

MCP for Unityは3要素で構成されます。

  1. MCP client
  2. Python MCP server
  3. Unity Editor plugin

MCP for Unityの3要素

stdio

MCP clientがuvxで専用Python processを起動し、stdin/stdoutでMCP messageを送ります。Python serverとUnity pluginはlocal bridgeで通信します。

v8では旧local bundled server / uv中心のconfigから、uvxでserver packageを実行するconfigへ移行しました。

HTTP

MCP clientは例えば次へ接続します。

http://localhost:8080/mcp

Python serverはclientから独立して起動し、Unity pluginとはWebSocketで接続します。これによりlocalだけでなくremote / container上のserverも構成できます。

なぜHTTPを追加したか

  • 複数MCP clientから1 serverを共有できる
  • WSL / Docker / remote serverなど配置の自由度が上がる
  • serverをclient subprocessに限定しない
  • Unity pluginからremote serverへ安全なoutbound WebSocket connectionを張れる
  • HTTP API / remote hostingに必要な認証・session分離へ拡張できる

Unity plugin側の変更

networking責務を単一bridge classへ集めず、TransportManagerとtransport clientへ分離しました。

  • stdio系: StdioBridgeHost / StdioTransportClient
  • HTTP系: WebSocketTransportClient
  • 共通管理: TransportManager

上位のBridgeControlServiceはtransport固有logicを直接持たず、共通interfaceを扱います。

MCP configの移行

v7以前のconfigはuvとlocal server.py pathを含む形式でした。v8ではHTTP URLまたはuvx ... --transport stdioへ変わるため、既存client configの更新が必要です。

pluginは旧設定を検出した場合にclient再設定を支援しますが、移行後はMCP clientを再起動して新しいconfigを読み込ませます。

custom tool

v8ではproject側のcustom toolをC# attributeから検出し、Unity pluginがserverへmetadataを登録する構成へ整理されました。toolは接続したproject / instanceのscopeを維持する必要があります。

移行手順

  1. Unity packageをv8へ更新する
  2. MCP for Unity windowを開く
  3. HTTPまたはstdioを選ぶ
  4. Configure All Detected Clientsを実行する
  5. MCP clientを再起動する
  6. mcpforunity://instancesでUnity instanceを確認する
  7. custom toolを使用する場合はclientのtool listが更新されていることを確認する

現在の通信方式の違いは通信方式、設定手順はインストールを参照してください。