移行記録: unity-mcp-server から unity-cli へ

March 12, 2026 · View on GitHub

本ドキュメントは旧プロジェクト unity-mcp-server(Node.js)から現行の unity-cli(Rust)への移行で変更された事項を記録するものです。

移行の動機

  • パフォーマンス: Node.js ランタイムのオーバーヘッドを排除し、起動速度とメモリ効率を改善
  • 配布の簡素化: npm に代わり cargo install による単一バイナリ配布
  • プロトコルの簡素化: MCP (JSON-RPC over stdio) を廃止し、直接 TCP 通信に変更

主な変更点

ランタイム

項目旧 (unity-mcp-server)新 (unity-cli)
言語TypeScript / Node.jsRust
エントリーポイントsrc/index.tssrc/main.rs
パッケージマネージャnpmCargo
配布npm installcargo install

通信プロトコル

項目
プロトコルMCP (Model Context Protocol)直接 TCP
トランスポートJSON-RPC over stdioJSON over TCP
接続方式ホストアプリが stdio でサーバを起動CLI が TCP で Unity Editor に接続

旧 MCP 方式では、AI ホスト(Claude Desktop 等)が stdio 経由で MCP サーバを起動し、JSON-RPC メッセージをやり取りしていました。新方式では CLI が直接 Unity Editor の TCP サーバに接続するため、中間レイヤーが不要になりました。

環境変数

旧変数名新変数名備考
UNITY_CLI_HOST / UNITY_CLI_HOSTUNITY_CLI_HOSTホスト名
UNITY_CLI_PORTUNITY_CLI_PORTポート番号
UNITY_CLI_TIMEOUT_MSUNITY_CLI_TIMEOUT_MSタイムアウト

互換性ポリシー: 旧 UNITY_CLI_* 環境変数は移行用エイリアスとしてサポートされています。新しい UNITY_CLI_* が設定されていない場合に旧変数が参照されます。新規運用では UNITY_CLI_* を使用してください。

パッケージ名・名前空間

項目
リポジトリ名unity-mcp-serverunity-cli
UPM パッケージ名com.akiojin.unity-mcp-bridgecom.akiojin.unity-cli-bridge
C# 名前空間Legacy Bridge namespaceUnityCliBridge
npm パッケージunity-mcp-server― (廃止)
crates.iounity-cli

Unity 側 (UPM パッケージ)

Unity 側の UPM パッケージは引き続き同一リポジトリ内で管理されています。主な変更:

  • 名前空間の変更: Legacy Bridge namespace → UnityCliBridge
  • パッケージ名の変更: com.akiojin.unity-mcp-bridgecom.akiojin.unity-cli-bridge
  • 通信方式: 変更なし(TCP サーバとして動作する点は同一)
  • コマンドハンドラ: 既存の 108 ツール群はそのまま引き継ぎ

LSP (C# 静的解析)

  • 旧リポジトリでは Node.js 側に組み込まれていた静的解析機能を、独立した C# LSP サーバとして再実装
  • lsp/ ディレクトリに配置
  • .NET 9 を使用

CI/CD

項目
テストnpm testcargo test + dotnet test
リリースnpm publishcargo publish + GitHub Release
ワークフロー.github/workflows/release.yml

削除された機能

  • MCP サーバモード: stdio 経由の JSON-RPC サーバ機能は廃止
  • npm 関連ファイル: package.json, tsconfig.json, node_modules 等は削除

移行時の注意事項

  1. 環境変数の更新: 旧 MCP 系環境変数から UNITY_CLI_* へ順次更新してください。新規設定は UNITY_CLI_* のみを使用してください。
  2. UPM パッケージ URL の変更: Unity Package Manager の Git URL をリポジトリ名の変更に合わせて更新してください。
  3. スクリプトの更新: 旧 unity-mcp-server コマンドを使用しているスクリプトは unity-cli に置き換えてください。

関連ドキュメント

  • ベースライン方針と差分棚卸しは gwt-spec ラベル付き GitHub Issue の Spec/Plan で継続管理します。