- Fix macOS path for Claude Desktop config: use ~/Library/Application Support/Claude/ instead of ~/.config/Claude/
- Improve atomic write pattern with backup/restore safety
- Replace File.Replace() with File.Move() for better macOS compatibility
- Add proper error handling and cleanup for file operations
- Resolves issue where installer couldn't find Claude Desktop config on macOS
Normalize macOS to Application Support; use AppSupport symlink for Cursor args
Map XDG (~/.local/share, ~/.config) to Application Support
VSCode manual: show mcp.json path; use top-level servers JSON
VSCode macOS path: ~/Library/Application Support/Code/User/mcp.json
* Move the current test to a Tools folder
* feat: add env object and disabled flag handling for MCP client configuration
* Format manual config specially for Windsurf and Kiro
* refactor: extract config JSON building logic into dedicated ConfigJsonBuilder class
* refactor: extract unity node population logic into centralized helper method
* refactor: only add env property to config for Windsurf and Kiro clients
If it ain't broke with the other clients, don't fix...
* fix: write UTF-8 without BOM encoding for config files to avoid Windows compatibility issues
* fix: enforce UTF-8 encoding without BOM when writing files to disk
* refactor: rename namespace from UnityMcpBridge to MCPForUnity across all files
See thread in #6, we can't use Unity MCP because it violates their trademark.
That name makes us look affiliated. We can use MCP for Unity
* Change package display name, menu item and menu titles
These are front facing so has to change for Unity asset store review
* Misc name changes in logs and comments for better consistency
* chore: update editor window title from 'MCP Editor' to 'MCP for Unity'
* refactor: update branding from UNITY-MCP to MCP-FOR-UNITY across all log messages and warnings
* chore: rename Unity MCP to MCP For Unity across all files and bump version to 2.1.2
* docs: update restore script title to clarify Unity MCP naming
* Fix usage instructions
* chore: update log messages to use MCP For Unity branding instead of UnityMCP
* Add a README inside plugin, required for distributing via the asset store
* docs: update Unity port description and fix typo in troubleshooting section
* Address Rabbit feedback
* Update Editor prefs to use new name
Prevents overlap with other Unity MCPs, happy to revert if it's too much
* refactor: rename server logger and identifier from unity-mcp-server to mcp-for-unity-server
* Standardize casing of renamed project to "MCP for Unity", as it is on the asset store
* Remove unused folder
* refactor: rename Unity MCP to MCP for Unity across codebase
* Update dangling references
* docs: update product name from UnityMCP to MCP for Unity in README
* Update log and comments for new name
* Add a base Unity project to run unit tests in
* Add Windsurf IDE support so I can test more easily
* Add a dummy script
* feat: add unit tests for CommandRegistry and document prefab asset workflows
* Run tests when code is pushed to main
* Bump version of actions
* Install the MCP plugin via relative path
* Remove test branch from GH workflow
* Remove blank package.json files at the top level directory
* Add Kiro support, closes#196
This merge combines upstream's organizational rebrand and updates with
our comprehensive bridge stability improvements:
**From Upstream:**
- CoplayDev organizational rebrand (README, LICENSE, documentation)
- Updated logo and deployment scripts
- Python version pinning (.python-version file)
**From Our Branch (Preserved):**
- Comprehensive bridge stability improvements (threading, heartbeat, retries)
- Enhanced debugging and diagnostic features
- Embedded server installation approach (more reliable than git-based)
- Broader Python compatibility (>=3.10 vs >=3.12)
- Advanced port management with per-project persistence
- Auto-setup and connection reliability features
- Robust error handling and recovery mechanisms
**Key Technical Decisions:**
- Used our comprehensive UnityMcpBridge.cs (625 lines vs 473) with all stability features
- Maintained embedded server approach over upstream's git-based installer
- Preserved broader Python compatibility (>=3.10) for better accessibility
- Used our optimized connection settings and retry logic
- Kept our user-centric server installation approach (on-demand vs automatic)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
fix(bridge): reuse stored port in StartAutoConnect; guard listener stop to avoid ObjectDisposedException
chore(clients): reorder dropdown to Cursor, Claude Code, Windsurf, Claude Desktop, VSCode
- Switch ServerInstaller to embedded copy-only (no network)
- Simplify Editor UI server status to 'Installed (Embedded)'
- Vendor UnityMcpServer/src into UnityMcpBridge/UnityMcpServer/src for UPM distribution
- Keep bridge recompile robustness (heartbeat + sticky port)
- Enhanced Windows support for UV and Claude executable detection with OS-specific path handling
- Added PowerShell integration for Windows command execution with proper PATH environment setup
- Implemented comprehensive UV path scanning for various installation methods (Python, Chocolatey, Scoop, Cargo, etc.)
- Added executable validation using IsValidUvInstallation() method
- Improved Claude path detection with fallback to PowerShell's Get-Command
- Enhanced configuration path handling with Windows-specific paths and cross-platform normalization
- Cleaned up exception handling by removing unused exception variables
- Fixed method signature in VSCodeManualSetupWindow
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Enhanced FindUvPath() to return null when UV is not found
- Added detailed installation instructions for all platforms
- Implemented null checks in all UV usage points
- Added cross-platform path resolution for Windows, macOS, and Linux
- Improved user experience with clear error messages instead of silent failures
- Prevents 'spawn uv ENOENT' errors by using full paths and proper validation
- Added Claude Code as new MCP client type
- One-click registration via 'claude mcp add' command
- Toggle button to unregister when already configured
- Cross-platform support (Windows/macOS/Linux)
- Auto-detects configuration in ~/.claude.json
1. Update the code validation feature. With Roslyn installed(see guide), MCP clients will receive detailed error messages and making the code generation process more error-proof
2. Minor update to the EditorWindow, making more space for upcoming features
3. Readme update to include Code validation guides
4. Minor bug fixes including installation bugs from previous VSC PR