feat(client): add Factory Droid as a configured MCP client#1241
feat(client): add Factory Droid as a configured MCP client#1241yankawa wants to merge 3 commits into
Conversation
…#1240) Adds DroidConfigurator so Factory Droid is detected and auto-configured on parity with the other 20+ supported clients. Droid stores MCP config in ~/.factory/mcp.json using the standard mcpServers schema, so it reuses JsonFileMcpConfigurator without a new base class. - New DroidConfigurator.cs (+ .meta) targeting ~/.factory/mcp.json on all OSes - Enable skill install support (~/.factory/skills/unity-mcp-skill) - EditMode tests: transport support, IsInstalled, config-format invariants, skill path - Docs: capability matrix in clients.md, prerequisites in install.md, configurator guide
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds a new ChangesFactory Droid configurator support
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Pull request overview
Adds first-class auto-configuration support for Factory Droid by introducing a new JSON-file-based configurator, extending the existing client test suite to cover the new client’s format/capabilities, and updating website documentation to list Droid among supported clients.
Changes:
- Added
DroidConfigurator(JSON config at~/.factory/mcp.json, skills enabled with install path under~/.factory/skills/). - Added EditMode tests validating Droid’s config format invariants, transport support, install detection, and skill install path.
- Updated docs to mention Droid in the configurator guide, install prerequisites, and client capability matrix.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs |
New configurator targeting ~/.factory/mcp.json, enables skill installation, provides install steps. |
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs.meta |
Unity meta for the new configurator asset. |
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/ClientConfigFormatTests.cs |
Adds format/paths/skills assertions for Droid and validates generated manual config JSON. |
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/SupportedTransportsTests.cs |
Adds Droid transport support coverage. |
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/IsInstalledTests.cs |
Adds Droid install-detection coverage based on ~/.factory presence. |
website/docs/guides/client-configurators.md |
Documents Droid as a typical JSON-file client and notes skills path. |
website/docs/getting-started/install.md |
Adds Factory Droid to the “MCP client” prerequisites list. |
website/docs/getting-started/clients.md |
Adds Droid row to the capability matrix. |
Files not reviewed (1)
- MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs.meta: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| | **Gemini CLI** | HTTP | yes | yes | yes | Auto-connects. | | ||
| | **OpenClaw** | HTTP / stdio | yes | yes | yes | Requires `openclaw-mcp-bridge` plugin enabled. Follows MCP for Unity's transport choice. | | ||
| | **Antigravity** | HTTP | yes | yes | varies | Requires an MCP toggle in Antigravity settings. | | ||
| | **Droid** | HTTP | yes | yes | yes | Factory's agent. Config written to `~/.factory/mcp.json`. | |
| "Install Factory Droid (https://factory.ai)", | ||
| "Click Configure to add UnityMCP to ~/.factory/mcp.json\nOR open the config file at the path above", | ||
| "Paste the configuration JSON into the mcpServers object", | ||
| "Save and restart Droid" |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs (1)
22-22: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRedundant explicit default assignment.
SupportsHttpTransport = trueis already the field default inMcpClient(public bool SupportsHttpTransport = true;). Harmless but unnecessary; other configurators like Cursor rely on the default without restating it.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs` at line 22, Remove the redundant explicit assignment of SupportsHttpTransport in DroidConfigurator so it relies on McpClient’s default value instead of restating true. Update the configurator initialization in DroidConfigurator to match the pattern used by other configurators, and keep the rest of the client setup unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs`:
- Line 22: Remove the redundant explicit assignment of SupportsHttpTransport in
DroidConfigurator so it relies on McpClient’s default value instead of restating
true. Update the configurator initialization in DroidConfigurator to match the
pattern used by other configurators, and keep the rest of the client setup
unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9e268a85-2582-4e7b-ab81-ed052e84046c
📒 Files selected for processing (8)
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.csMCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs.metaTestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/IsInstalledTests.csTestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/SupportedTransportsTests.csTestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/ClientConfigFormatTests.cswebsite/docs/getting-started/clients.mdwebsite/docs/getting-started/install.mdwebsite/docs/guides/client-configurators.md
…layDev#1241) McpClient already defaults SupportsHttpTransport to true, so the explicit assignment in DroidConfigurator is redundant. Removes it to match the pattern used by other JSON-file configurators (Cursor, Codex, etc.). CodeRabbit nitpick feedback.
…Dev#1241) - clients.md: list Droid as "HTTP / stdio" since the configurator supports both transports (matches OpenClaw row wording). - DroidConfigurator: rewrite the manual-snippet step to say "merge so it results in mcpServers.unityMCP (do not nest mcpServers twice)" — the manual snippet is a full JSON doc with its own mcpServers container, so the prior "paste into the mcpServers object" wording could lead to double nesting. Copilot review feedback.
Summary
Adds a first-class
DroidConfiguratorso Factory Droid is detected and auto-configured on parity with the other 20+ supported MCP clients (Cursor, VS Code, Windsurf, Claude Code, Codex, etc.). Droid users currently have to hand-edit~/.factory/mcp.json; with this change they get a one-click Configure button inWindow → MCP for Unity.Resolves #1240.
What changed
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs(+.meta) — subclassesJsonFileMcpConfiguratorand targets~/.factory/mcp.jsonon Windows/macOS/Linux. Droid uses the standardmcpServersschema (same as Cursor/Claude Desktop), so no new base class is needed.SupportsSkills = truewith install path~/.factory/skills/unity-mcp-skill, matching how Claude Code and Codex expose skill installation.McpClientRegistrypicks up the new class viaTypeCache.GetTypesDerivedFrom<IMcpClientConfigurator>(), so no manual registration was required.SupportedTransportsTests.cs— Droid supports both stdio and HTTP transportsIsInstalledTests.cs—IsInstalledtracks whether~/.factoryexistsClientConfigFormatTests.cs— Droid declares the standardmcpServerscontainer, generictype:http, targetsmcp.jsonon all platforms, and exposes the correct skill install pathwebsite/docs/getting-started/clients.md— added Droid to the capability matrixwebsite/docs/getting-started/install.md— added Factory Droid to the prerequisites client listwebsite/docs/guides/client-configurators.md— added Droid to the typical JSON-file clients listWhy
Droid stores MCP config in
~/.factory/mcp.jsonusing the standardmcpServerscontainer, so it reuses the existingJsonFileMcpConfiguratorpipeline. The cost is one small class + tests, with zero risk to existing clients (auto-discovery only adds the new entry; nothing else changes).How to verify
Window → MCP for Unity.~/.factory/present, the status shows as a configurable client; click Configure.~/.factory/mcp.jsonis written with amcpServers.unityMCPentry matching the selected transport (HTTPurlor stdiocommand/args).unityMCPentry is removed cleanly.TestProjects/UnityMCPTests— the new Droid cases pass alongside the existing client suite.Testing
cd Server && uv run --extra dev python -m pytest tests/ -q→ 1306 passed, 3 skipped.Cursor/ClaudeDesktop/KiloCodecases. Local Unity Editor was not installed in the dev environment, sotools/check-unity-versions.shskipped the compile check; CI will cover it.Notes
~/.factory/mcp.jsonschema accepts the standardcommand/argsform as well as theurlform), soSupportsHttpTransport = trueis correct.JsonFileMcpConfigurator.CheckStatuslogic, which already understandsurl,serverUrl, andhttpUrlURL properties plus thecommand/argsstdio form.betaper the contributing guide.Summary by CodeRabbit
~/.factory/mcp.json.~/.factory/skills/.