Commit Graph

130 Commits (ee23346ca2832facea1204ae06d6852b2b6dc130)

Author SHA1 Message Date
David Sarno ee23346ca2 feat: installer cleanup, auto-migration, logging normalization 2025-08-23 22:13:47 -07:00
GitHub Actions 97fb4a775e chore: bump version to 3.0.0 2025-08-21 00:42:06 +00:00
Marcus Sanatan eeb67e8656
Don't ignore the package's README (#230) 2025-08-20 18:26:51 -04:00
Marcus Sanatan ae13ef41d5
Rename namespace and public facing plugin output from "Unity MCP" to "MCP for Unity" (#225)
* 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
2025-08-20 15:59:49 -04:00
Marcus Sanatan 14a6cbaeb4
Support kiro (#221)
* 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
2025-08-15 21:26:12 -04:00
Jos van der Westhuizen c9d30daf62
Update package.json -- add discord link 2025-08-15 10:08:24 -05:00
GitHub Actions 60a2ed4749 chore: bump version to 2.1.2 2025-08-14 23:19:31 +00:00
Marcus Sanatan ce39ca6d49 Revert "Bump version because we have a name change"
This reverts commit 148fa8b431.

We'll test the actions that bumps the version and tags the repo
2025-08-14 18:48:51 -04:00
Marcus Sanatan 148fa8b431 Bump version because we have a name change 2025-08-14 18:29:22 -04:00
Marcus Sanatan b735210d9d Update required Unity version and package name
Closes #213
2025-08-14 18:13:21 -04:00
David Sarno 80d311ec13 chore(windows): WinGet Links resolution uses ProgramFiles (machine-wide) after LOCALAPPDATA; drop ProgramData; update comment 2025-08-13 19:15:03 -07:00
David Sarno fae347b03a revert: remove protocol framing changes from config-stability PR (keep config-only changes) 2025-08-13 19:06:33 -07:00
David Sarno 616d3998b5 chore: bump package version to 2.1.1 2025-08-13 19:02:29 -07:00
David Sarno 6e59b8fe8d fix: linux XDG config paths; prefer installed server; robust cursor detection; atomic writes; uv validation; WinGet Links ordering 2025-08-13 18:13:25 -07:00
David Sarno 6e22721d3a feat: preserve existing client config; prefer installed server path; add ResolveServerSrc; block PackageCache unless dev override; canonical uv args 2025-08-13 17:46:07 -07:00
David Sarno 4e1b905ea0 chore: bump version to 2.1.0; Windows uv resolver improvements; preserve existing uv command; Claude unregister UI fix; .ps1 handling; add generic mcp_source.py 2025-08-13 14:02:19 -07:00
dsarno b6b8d47dfe Windows: robust Claude CLI resolution (prefer .cmd, fallback .ps1, where.exe); Unregister UX: use 'claude mcp get' exit codes; stop PATH prepend on Windows; safer detection when unregistered 2025-08-13 12:36:24 -07:00
David Sarno a2a14c179c Claude Code: after unregister, set NotConfigured, re-check, and repaint so button toggles and status updates 2025-08-13 11:54:07 -07:00
David Sarno 9a9267c128 Windows: prefer WinGet Links uv.exe and preserve existing absolute uv command during config writes 2025-08-13 11:35:31 -07:00
David Sarno b09a86f5fb WriteToConfig: only include type="stdio" for VSCode; omit for other clients 2025-08-12 21:47:11 -07:00
David Sarno a52ce7a219 VSCode manual config: use resolved uv path; VSCode parse init guards; NVM version parse robustness; help labels [HELP] 2025-08-12 21:33:43 -07:00
David Sarno eb7b2e952e chore: bump Unity MCP Bridge package version 2025-08-12 21:09:02 -07:00
David Sarno 4f9017d676 VSCode MCP: switch to mcp.json top-level servers schema; add type=stdio; robust parse/merge; Cursor/Windsurf UV gating UI; Claude Code UX polish and NVM detection 2025-08-12 20:56:22 -07:00
David Sarno 5965158533 Unity MCP: Claude Code UX improvements: dynamic not-found state with inline help link; NVM auto-detection; path picker override; hide picker after detection; remove auto-connect toggle. 2025-08-12 19:04:47 -07:00
David Sarno bd6114b436 fix(claude): treat 'already exists' as success; improve IsClaudeConfigured using ExecPath on all OSes 2025-08-12 12:14:48 -07:00
David Sarno efd146ab53 fix: Windows define UNITY_EDITOR_WIN; async stdout/stderr in TryRun and RepairPythonEnvironment; use EnvironmentVariables for PATH; prepend Unix PATH only on macOS/Linux; fix duplicate .meta GUIDs 2025-08-12 11:56:46 -07:00
David Sarno f6f8b24371 chore(uv): prepend ~/.local/bin and common bins to PATH for 'which uv' in GUI env 2025-08-12 10:48:46 -07:00
David Sarno 6b3a20dd78 chore(package): add .meta files for new helpers and bump version to 2.0.1 2025-08-12 10:34:34 -07:00
David Sarno 8984ab95bc feat: local-only package resolution + Claude CLI resolver; quieter install logs; guarded auto-registration 2025-08-12 08:32:51 -07:00
David Sarno ae87e3f3b2 read_console: remove dead types.Contains("all") branch; compute want directly from unityType (Exception/Assert treated as errors) 2025-08-11 17:26:51 -07:00
David Sarno 46f616df90 read_console: correct compiler diagnostic categorization (CSxxxx), preserve Debug.Log as Log without mode fallback, add explicit Debug.Log detection helper 2025-08-11 16:57:41 -07:00
dsarno 6439902d8d
Merge branch 'CoplayDev:main' into fix-read-console 2025-08-11 13:59:17 -07:00
dsarno a506f9b346 Update package.json version to 2.0.0 2025-08-11 12:30:36 -07:00
David Sarno 1938756844 server: centralize reload-aware retries and single-source retry_after_ms via config; increase default retry window (40 x 250ms); preserve structured reloading failures 2025-08-10 22:49:24 -07:00
David Sarno dc6171dfe6 ReadConsole: lock Debug.Log classification to Log; avoid bit-based fallback when stacktrace shows Debug:Log
- Detect explicit Debug.Log in stacktrace (UnityEngine.Debug:Log)
- Do not downgrade/upgrade to Warning via mode bits for editor-originated logs
- Keeps informational setup lines (e.g., MCP registration, bridge start) as Log
2025-08-10 20:12:45 -07:00
David Sarno a40db48132 ReadConsole: stable severity classification and filtering across Unity versions
- Classify severity via stacktrace/message first (LogError/LogWarning/Exception/Assertion), with safe fallback to mode-bit mapping
- Fix error/warning/log mapping; treat Exception/Assert as errors for filtering
- Return the current console buffer reliably and remove debug spam
- No changes outside ReadConsole behavior
2025-08-10 19:45:24 -07:00
dsarno b179ce1ed8
Merge branch 'main' into feat/bridge-stability 2025-08-10 11:57:07 -07:00
David Sarno 07b35837b7 Bridge: deferred init, stop-before-reload, breadcrumb logs; stable rebinds.
Editor: auto-rewrite MCP client config when package path changes.

Server: heartbeat-aware retries, structured {state: reloading, retry_after_ms}, single auto-retry across tools; guard empty calls.

Repo: remove global *~ ignore (was hiding UnityMcpServer~), track tilde server folder (Unity still excludes it from assemblies).
2025-08-09 15:09:49 -07:00
David Sarno 32f513f10d Merge branch 'feat/bridge-stability' of https://github.com/dsarno/unity-mcp into feat/bridge-stability
* 'feat/bridge-stability' of https://github.com/dsarno/unity-mcp:
  Bridge logs: add bold blue UNITY-MCP prefix; gate PortManager logs behind Debug Logs toggle; improve Python and UV detection on Windows (flex versions, where.exe/Path scan); tidy installer messages
2025-08-09 13:00:26 -07:00
David Sarno 9da9739751 Package Python server under UnityMcpServer~; remove redundant .meta files; delete old root UnityMcpServer; update editor lookup for tilde path; adjust deploy/restore scripts; remove orphan meta 2025-08-09 12:49:32 -07:00
David Sarno c0de38e1e7 Merge upstream/main: CoplayDev rebrand with bridge stability improvements
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>
2025-08-09 12:05:47 -07:00
dsarno 4c72309dc8 Bridge logs: add bold blue UNITY-MCP prefix; gate PortManager logs behind Debug Logs toggle; improve Python and UV detection on Windows (flex versions, where.exe/Path scan); tidy installer messages 2025-08-08 15:09:18 -07:00
David Sarno f24e124c15 MCP: Embedded server reliability and UX\n\n- Embed-first installer: copies embedded server, adds RepairPythonEnvironment() (deletes .venv, runs 'uv sync'); robust uv path discovery; macOS install path -> Application Support\n- UI: Server Status shows Installed(Embedded); Python missing warning with install link; Repair button tooltip; header Show Debug Logs; cleaned layout\n- Python: unpin .python-version; set requires-python >=3.10 in both pyprojects\n- Dev: improved package/dev path resolution 2025-08-08 14:16:25 -07:00
Marcus Sanatan 3288418bbf chore: update package metadata and license to CoplayDev organization 2025-08-08 15:54:43 -04:00
Marcus Sanatan 94df819e61 fix: update package name from com.CoplayDev.unity-mcp to com.coplaydev.unity-mcp to comply with Unity package naming standards 2025-08-08 15:13:47 -04:00
Marcus Sanatan 5d148a7462 chore: update repository URLs and package name to use correct CoplayDev casing and main branch 2025-08-08 15:06:35 -04:00
Marcus Sanatan 6faa55f825 chore: update package namespace from justinpbarnett to coplaydev 2025-08-08 14:59:30 -04:00
David Sarno 06f271926b feat(editor): 2x2 layout (Server/Bridge | Clients/Validation), Auto-Setup with Connected ✓ state; add Debug Logs toggle and gate verbose logs
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
2025-08-08 11:23:45 -07:00
David Sarno 2f387d3417 chore(ui): rename 'Re-Run Client Setup' to 'Bind to Clients' 2025-08-08 10:49:01 -07:00
David Sarno 10903a2d48 fix(setup): reuse stored project port in StartAutoConnect to avoid port changes during client setup 2025-08-08 10:35:00 -07:00