Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: CoplayDev/unity-mcp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v6.2.1
Choose a base ref
...
head repository: CoplayDev/unity-mcp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v6.2.4
Choose a head ref
  • 7 commits
  • 59 files changed
  • 5 contributors

Commits on Oct 21, 2025

  1. test: Consolidate pytest suite to MCPForUnity and improve test infras…

    …tructure (#332)
    
    * Update github-repo-stats.yml
    
    * pytest: make harness MCPForUnity-only; remove UnityMcpBridge paths from tests; route tools.manage_script via unity_connection for reliable monkeypatching; fix ctx usage; all tests green (39 pass, 5 skip, 7 xpass)
    
    * Add missing meta for MaterialMeshInstantiationTests.cs (Assets)
    
    * bridge/tools/manage_script: fix missing unity_connection prefix in validate_script; tests: tidy manage_script_uri unused symbols and arg names
    
    * tests: rename to script_apply_edits_module; extract DummyContext to tests/test_helpers and import; add telemetry stubs in tests to avoid pyproject I/O
    
    * tests: import cleanup and helper extraction; telemetry: prefer plain config and opt-in env override; test stubs and CWD fixes; exclude Bridge from pytest discovery
    
    * chore: remove unintended .wt-origin-main gitlink and ignore folder
    
    * tests: nit fixes (unused-arg stubs, import order, path-normalized ignore hook); telemetry: validate config endpoint; read_console: action optional
    
    * Add development dependencies to pyproject.toml
    
    - Add [project.optional-dependencies] section with dev group
    - Include pytest>=8.0.0 and pytest-anyio>=0.6.0
    - Add Development Setup section to README-DEV.md with installation and testing instructions
    
    * Revert "Update github-repo-stats.yml"
    
    This reverts commit 8ae595d.
    
    * test: improve test clarity and modernize asyncio usage
    
    - Add explanation for 200ms timeout in backpressure test
    - Replace manual event loop creation with asyncio.run()
    - Add assertion message with actual elapsed time for easier debugging
    
    * refactor: remove duplicate DummyContext definitions across test files
    
    Replace 7 duplicate DummyContext class definitions with imports from tests.test_helpers.
    This follows DRY principles and ensures consistency across the test suite.
    
    * chore: remove unused _load function from test_edit_strict_and_warnings.py
    
    Dead code cleanup - function was no longer used after refactoring to dynamic tool registration.
    
    * docs: add comment explaining CWD manipulation in telemetry test
    
    Clarify why os.chdir() is necessary: telemetry.py calls get_package_version()
    at module load time, which reads pyproject.toml using a relative path.
    Acknowledges the fragility while explaining why it's currently required.
    dsarno authored Oct 21, 2025
    Configuration menu
    Copy the full SHA
    0397887 View commit details
    Browse the repository at this point in the history
  2. Fix/replace pytest anyio with pytest asyncio (#333)

    * mcp_source.py: use MCPForUnity path and show branch in options
    
    * dev(deps): replace pytest-anyio (stub) with pytest-asyncio for tests
    dsarno authored Oct 21, 2025
    Configuration menu
    Copy the full SHA
    e3e5485 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2025

  1. Allow the MCP server to be run by uvx remotely (#336)

    * feat: add entry point script and additional Python modules to server package
    
    Now we can run this server with `uvx`
    
    * refactor: improve package version detection to support both installed and development environments
    
    * refactor: simplify release workflow by removing server packaging step
    msanatan authored Oct 22, 2025
    Configuration menu
    Copy the full SHA
    558f923 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d4214ce View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9ccf70b View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2025

  1. Harden MCP tool parameter handling to eliminate “invalid param” errors (

    #339)
    
    * feat: migrate to FastMCP 2.0 (v2.12.5)
    
    - Update pyproject.toml to use fastmcp>=2.12.5 instead of mcp[cli]
    - Replace all imports from mcp.server.fastmcp to fastmcp
    - Maintain MCP protocol compliance with mcp>=1.16.0
    - All 15 files updated with new import statements
    - Server and tools registration working with FastMCP 2.0
    
    * chore: bump MCP for Unity to 6.2.2 and widen numeric tool params (asset search/read_resource/run_tests) for better LLM compatibility
    
    * chore: bump installed server_version.txt to 6.2.2 so Unity installer logs correct version
    
    * fix(parameters): apply parameter hardening to read_console, manage_editor, and manage_gameobject
    
    - read_console: accept int|str for count parameter with coercion
    - manage_editor: accept bool|str for wait_for_completion with coercion
    - manage_gameobject: accept bool|str for all boolean parameters with coercion
    - All tools now handle string parameters gracefully and convert to proper types internally
    
    * chore(deps): drop fastmcp, use mcp>=1.18.0; update imports to mcp.server.fastmcp
    
    * chore(deps): re-add fastmcp>=2.12.5, relax mcp to >=1.16.0
    
    Adds fastmcp as explicit dependency for FastMCP 2.0 migration.
    Relaxes mcp version constraint to support broader compatibility.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * test: remove obsolete mcp stubs for FastMCP 2.0 compatibility
    
    Removes stub mcp modules from test files that were conflicting with
    the real mcp and fastmcp packages now installed as dependencies.
    Adds tests/__init__.py to make tests a proper Python package.
    
    This fixes test collection errors after migrating to FastMCP 2.0.
    
    Test results: 40 passed, 7 xpassed, 5 skipped, 1 failed (pre-existing)
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * fix: complete FastMCP 2.0 migration with correct import paths
    
    Updates all remaining files to use `from fastmcp import` instead of
    the old `from mcp.server.fastmcp import` path.
    
    Changes:
    - server.py: Update FastMCP import
    - tools/__init__.py: Update FastMCP import
    - resources/__init__.py: Update FastMCP import
    - tools/manage_script.py, read_console.py, resource_tools.py: Update imports
    - test stubs: Update to stub `fastmcp` instead of `mcp.server.fastmcp`
    
    Addresses PR review feedback about incomplete migration.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * fix: harden parameter type handling and resolve PR feedback
    
    Parameter Type Improvements:
    - Broaden count in read_console.py to accept int | str
    - Broaden build_index in manage_scene.py to accept int | str
    - Harden vector parsing in manage_gameobject.py with NaN/Inf checks
    - Add whitespace-delimited vector support (e.g., "1 2 3")
    - Narrow exception handling from Exception to (ValueError, TypeError)
    
    Test Improvements:
    - Harden _load_module in test files with spec/loader validation
    - Fix test_manage_gameobject_boolean_and_tag_mapping by mapping tag→search_term
    
    Bug Fixes:
    - Fix syntax error in manage_shader.py (remove stray 'x')
    
    Version: Bump to 6.2.3
    
    All tests pass: 41 passed, 5 skipped, 7 xpassed
    
    ---------
    
    Co-authored-by: Claude <noreply@anthropic.com>
    dsarno and claude authored Oct 23, 2025
    Configuration menu
    Copy the full SHA
    c866e06 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    26eafbf View commit details
    Browse the repository at this point in the history
Loading