- 
                Notifications
    You must be signed in to change notification settings 
- Fork 485
Copy the MCP server to the top level #354
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
I want to experiment with using `uvx` from this location, and if it manages all the use cases correctly, we won't clone and copy the server code
| Caution Review failedThe pull request is closed. WalkthroughIntroduces a complete Python-based MCP server for Unity integration. Adds core infrastructure (connection management, port discovery, telemetry, module discovery), a registry system for tools and resources, an extensible set of Unity tools (asset, scene, script, shader, menu, test management), resource endpoints, and comprehensive server configuration with logging, retry logic, and optional telemetry collection. Changes
 Sequence Diagram(s)sequenceDiagram
    participant Client
    participant FastMCP as FastMCP Server
    participant TelemetryDec as Telemetry Decorator
    participant UnityConn as Unity Connection
    participant Telemetry as Telemetry Collector
    participant Unity as Unity Editor
    Client->>FastMCP: Call MCP tool (e.g., manage_script)
    FastMCP->>TelemetryDec: Invoke decorated function
    TelemetryDec->>TelemetryDec: Start timer
    TelemetryDec->>UnityConn: send_command_with_retry()
    UnityConn->>UnityConn: Check port (cached or discover)
    UnityConn->>Unity: TCP connect + handshake
    Unity-->>UnityConn: FRAMING=1 response
    UnityConn->>Unity: Send command (JSON with length header)
    UnityConn->>UnityConn: receive_full_response()<br/>(handle framing, heartbeat)
    Unity-->>UnityConn: Response (with length header)
    UnityConn-->>TelemetryDec: Return parsed response dict
    TelemetryDec->>Telemetry: record_tool_usage()<br/>(name, success, duration, error)
    TelemetryDec->>Telemetry: record_milestone() if applicable
    Telemetry->>Telemetry: Enqueue to background worker
    Telemetry-->>Telemetry: (async send via httpx)
    TelemetryDec-->>FastMCP: Return response
    FastMCP-->>Client: MCP response
Estimated code review effort🎯 4 (Complex) | ⏱️ ~70 minutes Areas requiring special attention: 
 Possibly related PRs
 Suggested reviewers
 Poem
 ✨ Finishing touches
 🧪 Generate unit tests (beta)
 📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (1)
 📒 Files selected for processing (34)
 Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment  | 
| I'm doing some tests with uvx, if it doesn't work out I'll remove this folder | 
I want to experiment with using
uvxfrom this location, and if it manages all the use cases correctly, we won't clone and copy the server codeSummary by CodeRabbit
Release Notes
New Features
Documentation
Chores