ユニティ-MCP
モデルコンテキストプロトコル (MCP) を使用した Unity と AI アシスタント間のブリッジ。
概要
Unity-MCPは、Unityゲーム開発向けのモデルコンテキストプロトコル(Model Context Protocol)のオープンソース実装です。AIアシスタントが標準化されたインターフェースを介してUnityゲーム環境と対話できるようにすることで、AIを活用したゲーム開発、自動テスト、シーン分析、ランタイムデバッグが可能になります。
建築
永続性のために AILogger を使用するようにアーキテクチャが簡素化され、別個のサーバー コンポーネントが不要になりました。
AI Assistant <-> Unity-MCP STDIO Client <-> Unity Client <-> AILoggerAIアシスタント:MCPプロトコルを使用してUnity-MCP STDIOクライアントと通信します。
Unity-MCP STDIOクライアント: コマンドをUnityクライアントに転送し、結果をAILoggerに保存します。
Unityクライアント: Unityでコマンドを実行し、結果を返します
AILogger : ログと結果を後から取得できるように保存します
Unity-MCP STDIOクライアントは、コード実行とクエリの両方のエンドポイントを提供するUnityクライアントと直接通信します。クエリツールは、クエリをreturn文でラップすることで、コード実行に変換します。
Related MCP server: Advanced Unity MCP
特徴
Unity ランタイム環境で C# コードを実行する
ゲームオブジェクトとそのコンポーネントを検査する
シーンの階層と構造を分析する
テストを実行して結果を受け取る
ゲームオブジェクトとコンポーネントのメソッドを呼び出す
実行中にゲームの状態を変更する
展開オプション
Unity エディター拡張機能: ゲーム実行サイクルを超えて存続するエディター拡張機能
Dockerコンテナ: ネットワーク経由でUnityと通信するコンテナ化されたバージョン
NPX パッケージ: NPX 経由でインストールおよび実行できる Node.js パッケージ
ドキュメント
MCP アーキテクチャ: MCP アーキテクチャと名前空間の概要
MCP STDIO クライアント: MCP STDIO クライアントとそのログ機能に関する情報
クエリツール: クエリツールとその仕組みに関する詳細情報
AILogger 統合: AILogger 統合の詳細情報
APIリファレンス: APIエンドポイントの詳細情報
インストールガイド: Unity-MCP のインストールと設定の手順
開発ガイド: 開発環境とワークフローに関する情報
ホットリロードガイド:開発環境でのホットリロードに関する詳細情報
ホットリロードクイックリファレンス:ホットリロードコマンドとヒントのクイックリファレンスガイド
貢献ガイド: プロジェクトへの貢献に関するガイドライン
はじめる
Unity-MCP を使い始めるには、次の手順に従います。
リポジトリをクローンします。
git clone https://github.com/TSavo/Unity-MCP.git cd Unity-MCP依存関係をインストールします:
npm installプロジェクトをビルドします。
npm run buildMCP STDIO クライアントを起動します。
npm startこれにより、Unity と通信し、永続性のために AILogger を使用する MCP STDIO クライアントが起動します。
注意: AILogger がhttp://localhost:3030で実行されていることを確認するか、AI_LOGGER_URL 環境変数を AILogger インスタンスを指すように設定してください。
テストを実行します:
# Run all tests npm test # Run only unit tests npm run test:unit # Run only e2e tests npm run test:e2e # Run tests with a specific pattern npm test -- --testNamePattern="should return the server manifest" npm run test:unit -- --testNamePattern="should return the server manifest" npm run test:e2e -- --testNamePattern="should discover the test server"
詳細な手順については、インストール ガイドを参照してください。
AIアシスタントへの接続
Unity-MCP ブリッジを AI アシスタントに接続するには、MCP 構成ファイルを作成する必要があります。
{
"mcpServers": {
"unity-ai-bridge": {
"url": "http://localhost:8080/sse"
}
}
}このファイルをAIアシスタントの適切な場所に配置してください。Claudeの場合、通常はClaudeデスクトップアプリの設定ディレクトリ内にあります。
利用可能なツール
Unity-MCP ブリッジは次のツールを提供します。
execute_code : Unity で C# コードを直接実行します。
query : ドット表記を使用してクエリを実行し、オブジェクト、プロパティ、メソッドにアクセスします。
get_logs : AILogger からログを取得します。
get_log_by_name : AILogger から特定のログを取得します。
使用例
Unityでコードを実行する
execute_codeツールを使用して、Unity で C# コードを実行できます。コードは Unity ランタイム環境で実行され、結果は AILogger に保存され、後で取得できます。
JSON-RPCリクエスト
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "execute_code",
"arguments": {
"code": "Debug.Log(\"Hello from Unity!\"); return GameObject.FindObjectsOfType<GameObject>().Length;",
"timeout": 5000
}
}
}JSON-RPCレスポンス
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"status\":\"success\",\"logName\":\"unity-execute-1712534400000\",\"result\":{\"success\":true,\"result\":42,\"logs\":[\"Hello from Unity!\"],\"executionTime\":123}}"
}
]
}
}Unityオブジェクトのクエリ
queryツールを使用してUnityオブジェクトをクエリできます。これにより、ドット表記を使用してオブジェクト、プロパティ、メソッドにアクセスできます。
JSON-RPCリクエスト
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "query",
"arguments": {
"query": "Camera.main.transform.position",
"timeout": 5000
}
}
}JSON-RPCレスポンス
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [
{
"type": "text",
"text": "{\"status\":\"success\",\"logName\":\"unity-query-1712534400000\",\"result\":{\"success\":true,\"result\":{\"x\":0,\"y\":1,\"z\":-10},\"executionTime\":45}}"
}
]
}
}AILoggerから結果を取得する
get_log_by_nameツールを使用して、AILogger から以前の操作の結果を取得できます。
JSON-RPCリクエスト
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_log_by_name",
"arguments": {
"log_name": "unity-execute-1712534400000",
"limit": 1
}
}
}JSON-RPCレスポンス
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "{\"status\":\"success\",\"name\":\"unity-execute-1712534400000\",\"entries\":[{\"id\":\"123e4567-e89b-12d3-a456-426614174000\",\"name\":\"unity-execute-1712534400000\",\"data\":{\"result\":{\"success\":true,\"result\":42,\"logs\":[\"Hello from Unity!\"],\"executionTime\":123},\"timestamp\":\"2025-04-08T00:00:00.000Z\"},\"timestamp\":\"2025-04-08T00:00:00.000Z\"}]}"
}
]
}
}使用例
AI アシスタントが Unity ツールにアクセスできるようになると、次のようなタスクを実行するように依頼できます。
Can you execute the following C# code in Unity?
GameObject.Find("Player").transform.position = new Vector3(0, 1, 0);ライセンス
マサチューセッツ工科大学
著者
Tサボ( @TSavo )