* Add missing meta files
* Re-generate .meta files
It was for safety as some were AI generated before. Only minor changes were made
* Remove distribution settings and hardcode default localhost URL
Removes the McpDistributionSettings system that allowed different defaults for Asset Store vs git distributions. Hardcodes the default HTTP base URL to "http://localhost:8080" directly in HttpEndpointUtility and WebSocketTransportClient. Removes the setup window skip logic for remote defaults.
It didn't work in practice, best thing to do is replace the placeholder in the UXML
- Change migration to always clean up legacy keys, even on partial failures
- Upgrade migration messages from Debug to Warn/Info for better visibility
- Add explicit warning when failures occur that manual configuration is needed
- Remove early return on failures to ensure legacy keys are always deleted
- Prevents migration retry loops when some clients fail to configure
* Update server instructions with new options
* Upgrade to a later version of Pydantic
This should have improved Python 3.14 support
* Swap order of instructions so Docker comes before local building
* Add fixed versions back to the README
* Update README to clarify the GitHub uvx command
* Add GitHub Actions workflow for Docker Hub publishing
* Remove TestPyPI publishing from PyPI workflow
Removes the publish-to-testpypi job from the GitHub Actions workflow to streamline the publishing process and only publish to production PyPI.
* Update Server/DOCKER_OVERVIEW.md
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* Update .github/workflows/publish-docker.yml
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Align docker and pypi publishing so they update on new tags in the same way
* Add caching to speed up pushes
* Remove unnecessary permissions
* Let's be super specific about the platform
it should be Ubuntu's default but just in case
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Adds KiloCodeConfigurator to enable automatic MCP configuration for
Kilo Code VS Code extension users.
Closes#250
Co-authored-by: Berkant <Nonanti@users.noreply.github.com>
* Fix script path handling and FastMCP Context API usage
1. Fix script path doubling when Assets prefix is used
- ManageScript.TryResolveUnderAssets now properly handles both Assets and Assets/ prefixes
- Previously, paths like Assets/Script.cs would create files at Assets/Assets/Script.cs
- Now correctly strips the prefix and creates files at the intended location
2. Fix FastMCP Context API call in manage_asset
- Changed ctx.warn() to ctx.warning() to match FastMCP Context API
- Fixes AttributeError when manage_asset encounters property parse errors
- Affects ScriptableObject creation and other asset operations with invalid properties
* Fix manage_asset error handling to use ctx.error
Changed ctx.warning to ctx.error for property parse errors in manage_asset
tool to properly handle error cases. This ensures parse errors are reported
as errors rather than warnings, and fixes compatibility with FastMCP Context API.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* Update github-repo-stats.yml
* Server: refine shutdown logic per bot feedback\n- Parameterize _force_exit(code) and use timers with args\n- Consistent behavior on BrokenPipeError (no immediate exit)\n- Exit code 1 on unexpected exceptions\n\nTests: restore telemetry module after disabling to avoid bleed-over
* Revert "Server: refine shutdown logic per bot feedback\n- Parameterize _force_exit(code) and use timers with args\n- Consistent behavior on BrokenPipeError (no immediate exit)\n- Exit code 1 on unexpected exceptions\n\nTests: restore telemetry module after disabling to avoid bleed-over"
This reverts commit 74d35d371a28b2d86cb7722e28017b29be053efd.
* Add fork-only Unity tests workflow and guard upstream run
* Move fork Unity tests workflow to root
* Fix MCP server install step in NL suite workflow
* Harden NL suite prompts for deterministic anchors
* update claude haiku version for NL/T tests
* Fix CI: share unity-mcp status dir
* update yaml
* Add Unity bridge debug step in CI
* Fail fast when Unity MCP status file missing
* Allow Unity local share writable for MCP status
* Mount Unity cache rw and dump Editor log for MCP debug
* Allow Unity config dir writable for MCP heartbeat/logs
* Write Unity logs to file and list config dir in debug
* Use available Anthropic models for T pass
* Use latest claude sonnet/haiku models in workflow
* Fix YAML indentation for MCP preflight step
* Point MCP server to src/server.py and fix preflight
* another try
* Add MCP preflight workflow and update NL suite
* Fixes to improve CI testing
* Cleanup
* fixes
* diag
* fix yaml
* fix status dir
* Fix YAML / printing to stdout --> stderr
* find in file fixes.
* fixes to find_in_file and CI report format error
* Only run the stats on the CoPlay main repo, not forks.
* Coderabbit fixes.
* Fixed ArrayPool conflict with CString.dll ArrayPool in Tolua
Fixed ArrayPool conflict with CString.dll ArrayPool in Tolua
* ScreenCapture在Unity2022中才支持
ScreenCapture在Unity2022中才支持,增加Unity版本判断
* [FEATURE] Local MCPForUnity Deployment
Similar to deploy.bat, but sideload it to MCP For Unity for easier deployment inside Unity menu.
* Update PackageDeploymentService.cs
* Update with meta file
* Updated Readme
* Updates on Camera Capture Feature
* Enable Camera Capture through both play and editor mode
Notes: Because the standard ScreenCapture.CaptureScreenshot does not work in editor mode, so we use ScreenCapture.CaptureScreenshotIntoRenderTexture to enable it during play mode.
* The user can access the camera access through the tool menu or through direct LLM calling. Both tested on Windows with Claude Desktop.
* Minor changes
nitpicking changes
* WIP: Material management tool implementation and tests
- Add ManageMaterial tool for creating and modifying materials
- Add MaterialOps helper for material property operations
- Add comprehensive test suite for material management
- Add string parameter parsing support for material properties
- Update related tools (ManageGameObject, manage_asset, etc.)
- Add test materials and scenes for material testing
* refactor: unify material property logic into MaterialOps
- Move and logic from to
- Update to delegate to
- Update to use enhanced for creation and property setting
- Add texture path loading support to
* Add parameter aliasing support: accept 'name' as alias for 'target' in manage_gameobject modify action
* Refactor ManageMaterial and fix code review issues
- Fix Python server tools (redundant imports, exception handling, string formatting)
- Clean up documentation and error reports
- Improve ManageMaterial.cs (overwrite checks, error handling)
- Enhance MaterialOps.cs (robustness, logging, dead code removal)
- Update tests (assertions, unused imports)
- Fix manifest.json relative path
- Remove temporary test artifacts and manual setup scripts
* Remove test scene
* remove extra mat
* Remove unnecessary SceneTemplateSettings.json
* Remove unnecessary SceneTemplateSettings.json
* Fix MaterialOps issues
* Fix: Case-insensitive material property lookup and missing HasProperty checks
* Rabbit fixes
* Improve material ops logging and test coverage
* Fix: NormalizePath now handles backslashes correctly using AssetPathUtility
* Fix: Address multiple nitpicks (test robustness, shader resolution, HasProperty checks)
* Add manage_material tool documentation and fix MaterialOps texture property checks
- Add comprehensive ManageMaterial tool documentation to MCPForUnity/README.md
- Add manage_material to tools list in README.md and README-zh.md
- Fix MaterialOps.cs to check HasProperty before SetTexture calls to prevent Unity warnings
- Ensures consistency with other property setters in MaterialOps
* Fix ManageMaterial shader reflection for Unity 6 and improve texture logging
* Update .Bat file and Bug fix on ManageScript
* Update the .Bat file to include runtime folder
* Fix the inconsistent EditorPrefs variable so the GUI change on Script Validation could cause real change.
* Further changes
String to Int for consistency
* [Custom Tool] Roslyn Runtime Compilation
Allows users to generate/compile codes during Playmode
* Fix based on CR
* Create claude_skill_unity.zip
Upload the unity_claude_skill that can be uploaded to Claude for a combo of unity-mcp-skill.
* Update for Custom_Tool Fix and Detection
1. Fix Original Roslyn Compilation Custom Tool to fit the V8 standard
2. Add a new panel in the GUI to see and toggle/untoggle the tools. The toggle feature will be implemented in the future, right now its implemented here to discuss with the team if this is a good feature to add;
3. Add few missing summary in certain tools
* Revert "Update for Custom_Tool Fix and Detection"
This reverts commit ae8cfe5e256c70ac4a16c79d50341a39cbac18ba.
* Update README.md
* Reapply "Update for Custom_Tool Fix and Detection"
This reverts commit f423c2f25e9ccff4f3b89d1d360ee9cf13143733.
* Update ManageScript.cs
Fix the layout problem of manage_script in the panel
* Update
To comply with the current server setting
* Update on Batch
Tested object generation/modification with batch and it works perfectly! We should push and let users test for a while and see
PS: I tried both VS Copilot and Claude Desktop. Claude Desktop works but VS Copilot does not due to the nested structure of batch. Will look into it more.
* Revert "Merge pull request #1 from Scriptwonder/batching"
This reverts commit 55ee76810be161d414e1f5f5abaa5ee30ddd0052, reversing
changes made to ae2eedd7fb2c6a66ff008bacac481aefb1b0d176.
* Update .Bat file and Bug fix on ManageScript
* Update the .Bat file to include runtime folder
* Fix the inconsistent EditorPrefs variable so the GUI change on Script Validation could cause real change.
* Further changes
String to Int for consistency
* [Custom Tool] Roslyn Runtime Compilation
Allows users to generate/compile codes during Playmode
* Fix based on CR
* Create claude_skill_unity.zip
Upload the unity_claude_skill that can be uploaded to Claude for a combo of unity-mcp-skill.
* Update for Custom_Tool Fix and Detection
1. Fix Original Roslyn Compilation Custom Tool to fit the V8 standard
2. Add a new panel in the GUI to see and toggle/untoggle the tools. The toggle feature will be implemented in the future, right now its implemented here to discuss with the team if this is a good feature to add;
3. Add few missing summary in certain tools
* Revert "Update for Custom_Tool Fix and Detection"
This reverts commit ae8cfe5e256c70ac4a16c79d50341a39cbac18ba.
* Update README.md
* Reapply "Update for Custom_Tool Fix and Detection"
This reverts commit f423c2f25e9ccff4f3b89d1d360ee9cf13143733.
* Update ManageScript.cs
Fix the layout problem of manage_script in the panel
* Update
To comply with the current server setting
* Update on Batch
Tested object generation/modification with batch and it works perfectly! We should push and let users test for a while and see
PS: I tried both VS Copilot and Claude Desktop. Claude Desktop works but VS Copilot does not due to the nested structure of batch. Will look into it more.
* Revert "Merge branch 'main' into batching"
This reverts commit 51fc4b4deb9e907cab3404d8c702131e3da85122, reversing
changes made to 318c824e1b78ca74701a1721a5a94f5dc567035f.
- Extract common logic from on_call_tool to _inject_unity_instance method.
- Add on_read_resource to inject unity_instance into resource contexts.
- Fix resources unable to get unity_instance from context after set_active_instance.
Co-authored-by: MyNameisPI <eqjbc@qq.com>
* Fix macOS port conflict: Disable SO_REUSEADDR and improve UI port display
- StdioBridgeHost.cs: Disable ReuseAddress on macOS to force AddressAlreadyInUse exception on conflict.
- PortManager.cs: Add connection check safety net for macOS.
- McpConnectionSection.cs: Ensure UI displays the actual live port instead of just the requested one.
* Fix macOS port conflict: Disable SO_REUSEADDR and improve UI port display
- StdioBridgeHost.cs: Disable ReuseAddress on macOS to force AddressAlreadyInUse exception on conflict.
- PortManager.cs: Add connection check safety net for macOS.
- McpConnectionSection.cs: Ensure UI displays the actual live port instead of just the requested one.
* Address CodeRabbit feedback: UX improvements and code quality fixes
- McpConnectionSection.cs: Disable port field when session is running to prevent editing conflicts
- StdioBridgeHost.cs: Refactor listener creation into helper method and update EditorPrefs on port fallback
- unity_instance_middleware.py: Narrow exception handling and preserve SystemExit/KeyboardInterrupt
- debug_request_context.py: Document that debug fields expose internal implementation details
* Fix: Harden Python detection on Windows to handle App Execution Aliases
* Refactor: Pre-resolve conflicts for McpConnectionSection and middleware
* Fix: Remove leftover merge conflict markers in StdioBridgeHost.cs
* fix: clarify create_script tool description regarding base64 encoding
* fix: improve python detection on macOS by checking specific Homebrew paths
* Fix duplicate SetEnabled call and improve macOS Python detection
* Fix port display not reverting to saved preference when session ends
Tackle the requests in Issue#267, tested and no bugs found.
(1)LLM can duplicate an gameobject based on request
(2)LLM can move a gameobject relative to another gameobject
* Fix: HTTP/Stdio transport routing and middleware session persistence
- Ensure session persistence for stdio transport by using stable client_id/global fallback.
- Fix Nagle algorithm latency issues by setting TCP_NODELAY.
- Cleanup duplicate logging and imports.
- Resolve C# NullReferenceException in EditorWindow health check.
* Fix: thread-safe middleware singleton and re-enable repo stats schedule
* Temp Update on Material Assignment
Previously it was shader assignment by request or iterative order from URP to Unlit, but LLM usually assign Standard in a URP setting.
This small fix introduce the helper to resolve some of the conflicts, while give warnings in the log to show if the user is creating a shader in a non-compatible setting.
* Update RenderPipelineUtility.cs
* fix: Changed flag management to EditorPrefs
* refactor: Improve code readability and error handling in MCP window toggle
* fix: Refactor MCP window toggle logic to use new helper methods for better readability and maintainability
* fix: Reorder using directives and improve error logging format in MCP window
* Address CodeRabbit feedback: use McpLog.Warn and guard against repeated CreateGUI calls
---------
Co-authored-by: David Sarno <david@lighthaus.us>
* Fix Claude Windows config and CLI status refresh
* Fix Claude uvx path resolution
* Address review feedback for Claude uvx
* Polish config cleanup and status errors
* Tidy Claude status refresh
Update mcp-for-unity script entry point from "main:main" to "src.main:main" to match the actual module structure after moving main.py into the src directory.
* Standardize import ordering and whitespace in plugin
The whitespace gave a warning in the asset store submission
* Fix manage_prefab tool structure
* Fix manage_editor actions
* Add get_component singular to manage_gameobject
* Improve uv cache clear error handling with lock detection and combined output
Replace simple stderr-only error reporting with combined stdout/stderr output. Add detection for "currently in-use" lock errors with helpful hint about waiting or using --force flag. Provide fallback message when command fails with no output.
* Improve error message formatting in uv cache clear failure logging