v8への移行 — HTTP / stdio
v8ではMCP clientとPython serverの接続に、従来のstdioに加えてStreamable HTTPを導入しました。同時に、Python serverとUnity Editor pluginのHTTP mode通信をWebSocketへ移行しました。
構成
MCP for Unityは3要素で構成されます。
- MCP client
- Python MCP server
- Unity Editor plugin
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を維持する必要があります。
移行手順
- Unity packageをv8へ更新する
- MCP for Unity windowを開く
- HTTPまたはstdioを選ぶ
- Configure All Detected Clientsを実行する
- MCP clientを再起動する
mcpforunity://instancesでUnity instanceを確認する- custom toolを使用する場合はclientのtool listが更新されていることを確認する