{"owner":"IvanMurzak","repo":"Unity-MCP","hasSkills":true,"hasMcp":true,"mcpConfig":{"mcpServers":{"Unity-MCP":{"command":"npx","args":["-y","@modelcontextprotocol/server-Unity-MCP"]}}},"found":["CLAUDE.md",".github/copilot-instructions.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\n## What This Is\n\nUnity-MCP bridges LLMs (Claude, Cursor, Copilot, etc.) with Unity Editor and Runtime via the [Model Context Protocol](https://modelcontextprotocol.io/). Sub-projects: `Unity-MCP-Plugin/` (Unity Editor/Runtime plugin), `cli/`, `Installer/`, `Unity-Tests/`.\n\nThe MCP server is NOT in this repo — the plugin consumes the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) (binary `gamedev-mcp-server`, release assets `gamedev-mcp-server-<rid>.zip`, Docker `aigamedeveloper/mcp-server`) — one engine-agnostic server shared by Unity-MCP, Godot-MCP, and Unreal-MCP. The plugin downloads the release pinned by the `ServerVersion` constant in `Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Editor/Scripts/McpServerManager.cs` (decoupled from the plugin `Version`). **Server version pin:** bumping the consumed server = changing that constant; the pinned `v<ServerVersion>` release (with all 7 RID zips) must already exist on GameDev-MCP-Server BEFORE cutting a plugin release that pins it.\n\n## Build / Run\n\n- Bump version: `.\\commands\\bump-version.ps1 <version>`\n- CI/CD pipelines live in `.github/workflows/`.\n\n## Project Constitution\n\nNon-negotiable principles and architecture constraints: [`.specify/memory/constitution.md`](.specify/memory/constitution.md). You MUST read the constitution before performing any code review.\n\n## Find Detail In\n\n- [docs/claude/architecture.md](docs/claude/architecture.md) — System architecture: SignalR bridge, main-thread execution, deterministic port hashing\n- [docs/claude/style.md](docs/claude/style.md) — Coding conventions: `#nullable enable`, no reflection for private access, namespace pattern, copyright headers\n- [docs/claude/release.md](docs/claude/release.md) — Release, versioning, CI/CD\n- [docs/claude/documentation-sync.md](docs/claude/documentation-sync.md) — README translation/copy sync requirements\n- `Unity-MCP-Plugin/CLAUDE.md` — sub-project specifics\n",".github/copilot-instructions.md":"# Project Guidelines\n\n## Critical Rules\n\n### No C# Reflection for Private Access\n\n**PROHIBITED**: Using `System.Reflection` to access private, internal, or otherwise non-public fields, properties, methods, or classes in project code. This includes `Type.GetType`, `BindingFlags.NonPublic`, `GetMethod`, `GetField`, `GetProperty`, and similar reflection APIs when used to bypass access modifiers.\n\n**Example of prohibited code:**\n```csharp\n// WRONG: Accessing internal Unity API via reflection\nvar logEntriesType = Type.GetType(\"UnityEditor.LogEntries, UnityEditor.CoreModule\")\n                  ?? Type.GetType(\"UnityEditorInternal.LogEntries, UnityEditor.CoreModule\")\n                  ?? Type.GetType(\"UnityEditor.LogEntries, UnityEditor\")\n                  ?? Type.GetType(\"UnityEditorInternal.LogEntries, UnityEditor\");\nlogEntriesType?.GetMethod(\"Clear\", BindingFlags.Static | BindingFlags.Public)\n              ?.Invoke(null, null);\n```\n\n> **Note**: This rule does NOT apply to `ReflectorNet` library usage, which is an external dependency specifically designed for reflection-based access patterns.\n\n## Code Review\n\nBefore performing any code review, you **MUST** read the project constitution: [`.specify/memory/constitution.md`](.specify/memory/constitution.md). All code review feedback must verify adherence to the principles defined in the constitution. Constitution principles supersede ad-hoc practices when conflicts arise.\n\n## Code Style\n- **C#**: Use 4 spaces indentation. PascalCase for classes/methods/properties, `_camelCase` for private readonly fields.\n    - Namespace: `com.IvanMurzak.Unity.MCP`.\n    - Example: [UnityMcpPlugin.cs](Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.cs).\n- **PowerShell**: Use K&R brace style.\n\n## Architecture\n- **Unity-MCP-Plugin**: Main Unity package.\n    - Core logic: [Packages/com.ivanmurzak.unity.mcp/Runtime](Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Runtime).\n    - Editor logic: `Packages/com.ivanmurzak.unity.mcp/Editor`.\n    - Tests: `Packages/com.ivanmurzak.unity.mcp/Tests`.\n- **MCP Server**: lives in the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) repo (binary `gamedev-mcp-server`); the plugin downloads the release pinned by `McpServerManager.ServerVersion`.\n- **Installer**: [Installer/](Installer/) wraps the package installation.\n- **Unity-Tests**: [Unity-Tests/](Unity-Tests/) contains projects for different Unity versions (2022, 2023, 6000) linking locally to the Plugin.\n\n## Build and Test\n- **Plugin**:\n    - Auto-compiles in Unity.\n    - Run tests: [commands/run-unity-tests.ps1](commands/run-unity-tests.ps1).\n    - Editor Tests: `Packages/com.ivanmurzak.unity.mcp/Tests/Editor`.\n- **Server**: built and released from the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) repo — not from this repo.\n- **Commands**: See [commands/](commands/) for utility scripts (release, tests).\n\n## Project Conventions\n- **MCP Tools**: Implemented using attributes in the Plugin. Reflection-based access via `ReflectorNet`.\n- **Documentation**:\n    - [Unity-MCP.wiki](Unity-MCP.wiki/) for user docs.\n    - [docs/](docs/) for translations and repo docs.\n    - See `CLAUDE.md` in subdirectories for specific agent notes.\n- **Versioning**: `package.json` in `Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/package.json`.\n\n## Integration Points\n- **Communication**: SignalR between Server and Plugin.\n- **Dependencies**: OpenUPM for external packages.\n\n## Security\n- **Server Transport**: Configurable via `--client-transport` (`stdio` or `streamableHttp`).\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\n## What This Is\n\nUnity-MCP bridges LLMs (Claude, Cursor, Copilot, etc.) with Unity Editor and Runtime via the [Model Context Protocol](https://modelcontextprotocol.io/). Sub-projects: `Unity-MCP-Plugin/` (Unity Editor/Runtime plugin), `cli/`, `Installer/`, `Unity-Tests/`.\n\nThe MCP server is NOT in this repo — the plugin consumes the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) (binary `gamedev-mcp-server`, release assets `gamedev-mcp-server-<rid>.zip`, Docker `aigamedeveloper/mcp-server`) — one engine-agnostic server shared by Unity-MCP, Godot-MCP, and Unreal-MCP. The plugin downloads the release pinned by the `ServerVersion` constant in `Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Editor/Scripts/McpServerManager.cs` (decoupled from the plugin `Version`). **Server version pin:** bumping the consumed server = changing that constant; the pinned `v<ServerVersion>` release (with all 7 RID zips) must already exist on GameDev-MCP-Server BEFORE cutting a plugin release that pins it.\n\n## Build / Run\n\n- Bump version: `.\\commands\\bump-version.ps1 <version>`\n- CI/CD pipelines live in `.github/workflows/`.\n\n## Project Constitution\n\nNon-negotiable principles and architecture constraints: [`.specify/memory/constitution.md`](.specify/memory/constitution.md). You MUST read the constitution before performing any code review.\n\n## Find Detail In\n\n- [docs/claude/architecture.md](docs/claude/architecture.md) — System architecture: SignalR bridge, main-thread execution, deterministic port hashing\n- [docs/claude/style.md](docs/claude/style.md) — Coding conventions: `#nullable enable`, no reflection for private access, namespace pattern, copyright headers\n- [docs/claude/release.md](docs/claude/release.md) — Release, versioning, CI/CD\n- [docs/claude/documentation-sync.md](docs/claude/documentation-sync.md) — README translation/copy sync requirements\n- `Unity-MCP-Plugin/CLAUDE.md` — sub-project specifics\n",".github/copilot-instructions.md":"# Project Guidelines\n\n## Critical Rules\n\n### No C# Reflection for Private Access\n\n**PROHIBITED**: Using `System.Reflection` to access private, internal, or otherwise non-public fields, properties, methods, or classes in project code. This includes `Type.GetType`, `BindingFlags.NonPublic`, `GetMethod`, `GetField`, `GetProperty`, and similar reflection APIs when used to bypass access modifiers.\n\n**Example of prohibited code:**\n```csharp\n// WRONG: Accessing internal Unity API via reflection\nvar logEntriesType = Type.GetType(\"UnityEditor.LogEntries, UnityEditor.CoreModule\")\n                  ?? Type.GetType(\"UnityEditorInternal.LogEntries, UnityEditor.CoreModule\")\n                  ?? Type.GetType(\"UnityEditor.LogEntries, UnityEditor\")\n                  ?? Type.GetType(\"UnityEditorInternal.LogEntries, UnityEditor\");\nlogEntriesType?.GetMethod(\"Clear\", BindingFlags.Static | BindingFlags.Public)\n              ?.Invoke(null, null);\n```\n\n> **Note**: This rule does NOT apply to `ReflectorNet` library usage, which is an external dependency specifically designed for reflection-based access patterns.\n\n## Code Review\n\nBefore performing any code review, you **MUST** read the project constitution: [`.specify/memory/constitution.md`](.specify/memory/constitution.md). All code review feedback must verify adherence to the principles defined in the constitution. Constitution principles supersede ad-hoc practices when conflicts arise.\n\n## Code Style\n- **C#**: Use 4 spaces indentation. PascalCase for classes/methods/properties, `_camelCase` for private readonly fields.\n    - Namespace: `com.IvanMurzak.Unity.MCP`.\n    - Example: [UnityMcpPlugin.cs](Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.cs).\n- **PowerShell**: Use K&R brace style.\n\n## Architecture\n- **Unity-MCP-Plugin**: Main Unity package.\n    - Core logic: [Packages/com.ivanmurzak.unity.mcp/Runtime](Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Runtime).\n    - Editor logic: `Packages/com.ivanmurzak.unity.mcp/Editor`.\n    - Tests: `Packages/com.ivanmurzak.unity.mcp/Tests`.\n- **MCP Server**: lives in the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) repo (binary `gamedev-mcp-server`); the plugin downloads the release pinned by `McpServerManager.ServerVersion`.\n- **Installer**: [Installer/](Installer/) wraps the package installation.\n- **Unity-Tests**: [Unity-Tests/](Unity-Tests/) contains projects for different Unity versions (2022, 2023, 6000) linking locally to the Plugin.\n\n## Build and Test\n- **Plugin**:\n    - Auto-compiles in Unity.\n    - Run tests: [commands/run-unity-tests.ps1](commands/run-unity-tests.ps1).\n    - Editor Tests: `Packages/com.ivanmurzak.unity.mcp/Tests/Editor`.\n- **Server**: built and released from the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) repo — not from this repo.\n- **Commands**: See [commands/](commands/) for utility scripts (release, tests).\n\n## Project Conventions\n- **MCP Tools**: Implemented using attributes in the Plugin. Reflection-based access via `ReflectorNet`.\n- **Documentation**:\n    - [Unity-MCP.wiki](Unity-MCP.wiki/) for user docs.\n    - [docs/](docs/) for translations and repo docs.\n    - See `CLAUDE.md` in subdirectories for specific agent notes.\n- **Versioning**: `package.json` in `Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/package.json`.\n\n## Integration Points\n- **Communication**: SignalR between Server and Plugin.\n- **Dependencies**: OpenUPM for external packages.\n\n## Security\n- **Server Transport**: Configurable via `--client-transport` (`stdio` or `streamableHttp`).\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\n## What This Is\n\nUnity-MCP bridges LLMs (Claude, Cursor, Copilot, etc.) with Unity Editor and Runtime via the [Model Context Protocol](https://modelcontextprotocol.io/). Sub-projects: `Unity-MCP-Plugin/` (Unity Editor/Runtime plugin), `cli/`, `Installer/`, `Unity-Tests/`.\n\nThe MCP server is NOT in this repo — the plugin consumes the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) (binary `gamedev-mcp-server`, release assets `gamedev-mcp-server-<rid>.zip`, Docker `aigamedeveloper/mcp-server`) — one engine-agnostic server shared by Unity-MCP, Godot-MCP, and Unreal-MCP. The plugin downloads the release pinned by the `ServerVersion` constant in `Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Editor/Scripts/McpServerManager.cs` (decoupled from the plugin `Version`). **Server version pin:** bumping the consumed server = changing that constant; the pinned `v<ServerVersion>` release (with all 7 RID zips) must already exist on GameDev-MCP-Server BEFORE cutting a plugin release that pins it.\n\n## Build / Run\n\n- Bump version: `.\\commands\\bump-version.ps1 <version>`\n- CI/CD pipelines live in `.github/workflows/`.\n\n## Project Constitution\n\nNon-negotiable principles and architecture constraints: [`.specify/memory/constitution.md`](.specify/memory/constitution.md). You MUST read the constitution before performing any code review.\n\n## Find Detail In\n\n- [docs/claude/architecture.md](docs/claude/architecture.md) — System architecture: SignalR bridge, main-thread execution, deterministic port hashing\n- [docs/claude/style.md](docs/claude/style.md) — Coding conventions: `#nullable enable`, no reflection for private access, namespace pattern, copyright headers\n- [docs/claude/release.md](docs/claude/release.md) — Release, versioning, CI/CD\n- [docs/claude/documentation-sync.md](docs/claude/documentation-sync.md) — README translation/copy sync requirements\n- `Unity-MCP-Plugin/CLAUDE.md` — sub-project specifics\n","category":"root","tokens":492},{"name":"copilot-instructions.md","path":".github/copilot-instructions.md","title":"copilot-instructions.md","content":"# Project Guidelines\n\n## Critical Rules\n\n### No C# Reflection for Private Access\n\n**PROHIBITED**: Using `System.Reflection` to access private, internal, or otherwise non-public fields, properties, methods, or classes in project code. This includes `Type.GetType`, `BindingFlags.NonPublic`, `GetMethod`, `GetField`, `GetProperty`, and similar reflection APIs when used to bypass access modifiers.\n\n**Example of prohibited code:**\n```csharp\n// WRONG: Accessing internal Unity API via reflection\nvar logEntriesType = Type.GetType(\"UnityEditor.LogEntries, UnityEditor.CoreModule\")\n                  ?? Type.GetType(\"UnityEditorInternal.LogEntries, UnityEditor.CoreModule\")\n                  ?? Type.GetType(\"UnityEditor.LogEntries, UnityEditor\")\n                  ?? Type.GetType(\"UnityEditorInternal.LogEntries, UnityEditor\");\nlogEntriesType?.GetMethod(\"Clear\", BindingFlags.Static | BindingFlags.Public)\n              ?.Invoke(null, null);\n```\n\n> **Note**: This rule does NOT apply to `ReflectorNet` library usage, which is an external dependency specifically designed for reflection-based access patterns.\n\n## Code Review\n\nBefore performing any code review, you **MUST** read the project constitution: [`.specify/memory/constitution.md`](.specify/memory/constitution.md). All code review feedback must verify adherence to the principles defined in the constitution. Constitution principles supersede ad-hoc practices when conflicts arise.\n\n## Code Style\n- **C#**: Use 4 spaces indentation. PascalCase for classes/methods/properties, `_camelCase` for private readonly fields.\n    - Namespace: `com.IvanMurzak.Unity.MCP`.\n    - Example: [UnityMcpPlugin.cs](Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.cs).\n- **PowerShell**: Use K&R brace style.\n\n## Architecture\n- **Unity-MCP-Plugin**: Main Unity package.\n    - Core logic: [Packages/com.ivanmurzak.unity.mcp/Runtime](Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/Runtime).\n    - Editor logic: `Packages/com.ivanmurzak.unity.mcp/Editor`.\n    - Tests: `Packages/com.ivanmurzak.unity.mcp/Tests`.\n- **MCP Server**: lives in the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) repo (binary `gamedev-mcp-server`); the plugin downloads the release pinned by `McpServerManager.ServerVersion`.\n- **Installer**: [Installer/](Installer/) wraps the package installation.\n- **Unity-Tests**: [Unity-Tests/](Unity-Tests/) contains projects for different Unity versions (2022, 2023, 6000) linking locally to the Plugin.\n\n## Build and Test\n- **Plugin**:\n    - Auto-compiles in Unity.\n    - Run tests: [commands/run-unity-tests.ps1](commands/run-unity-tests.ps1).\n    - Editor Tests: `Packages/com.ivanmurzak.unity.mcp/Tests/Editor`.\n- **Server**: built and released from the shared [GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) repo — not from this repo.\n- **Commands**: See [commands/](commands/) for utility scripts (release, tests).\n\n## Project Conventions\n- **MCP Tools**: Implemented using attributes in the Plugin. Reflection-based access via `ReflectorNet`.\n- **Documentation**:\n    - [Unity-MCP.wiki](Unity-MCP.wiki/) for user docs.\n    - [docs/](docs/) for translations and repo docs.\n    - See `CLAUDE.md` in subdirectories for specific agent notes.\n- **Versioning**: `package.json` in `Unity-MCP-Plugin/Packages/com.ivanmurzak.unity.mcp/package.json`.\n\n## Integration Points\n- **Communication**: SignalR between Server and Plugin.\n- **Dependencies**: OpenUPM for external packages.\n\n## Security\n- **Server Transport**: Configurable via `--client-transport` (`stdio` or `streamableHttp`).\n","category":".github","tokens":905}]}