Skip to content

feat(client): add Factory Droid as a configured MCP client#1241

Open
yankawa wants to merge 3 commits into
CoplayDev:betafrom
yankawa:feat/droid-configurator
Open

feat(client): add Factory Droid as a configured MCP client#1241
yankawa wants to merge 3 commits into
CoplayDev:betafrom
yankawa:feat/droid-configurator

Conversation

@yankawa

@yankawa yankawa commented Jul 5, 2026

Copy link
Copy Markdown

Summary

Adds a first-class DroidConfigurator so 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 in Window → MCP for Unity.

Resolves #1240.

What changed

  • New MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs (+ .meta) — subclasses JsonFileMcpConfigurator and targets ~/.factory/mcp.json on Windows/macOS/Linux. Droid uses the standard mcpServers schema (same as Cursor/Claude Desktop), so no new base class is needed.
  • Skill support enabledSupportsSkills = true with install path ~/.factory/skills/unity-mcp-skill, matching how Claude Code and Codex expose skill installation.
  • Auto-discoveryMcpClientRegistry picks up the new class via TypeCache.GetTypesDerivedFrom<IMcpClientConfigurator>(), so no manual registration was required.
  • EditMode tests added to:
    • SupportedTransportsTests.cs — Droid supports both stdio and HTTP transports
    • IsInstalledTests.csIsInstalled tracks whether ~/.factory exists
    • ClientConfigFormatTests.cs — Droid declares the standard mcpServers container, generic type:http, targets mcp.json on all platforms, and exposes the correct skill install path
  • Docs:
    • website/docs/getting-started/clients.md — added Droid to the capability matrix
    • website/docs/getting-started/install.md — added Factory Droid to the prerequisites client list
    • website/docs/guides/client-configurators.md — added Droid to the typical JSON-file clients list

Why

Droid stores MCP config in ~/.factory/mcp.json using the standard mcpServers container, so it reuses the existing JsonFileMcpConfigurator pipeline. 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

  1. Open Unity with the MCP for Unity package built from this branch.
  2. Open Window → MCP for Unity.
  3. Confirm Droid appears in the client list (sorted alphabetically).
  4. With ~/.factory/ present, the status shows as a configurable client; click Configure.
  5. Verify ~/.factory/mcp.json is written with a mcpServers.unityMCP entry matching the selected transport (HTTP url or stdio command/args).
  6. Click Unregister and confirm the unityMCP entry is removed cleanly.
  7. Run EditMode tests in TestProjects/UnityMCPTests — the new Droid cases pass alongside the existing client suite.

Testing

  • Python suite: cd Server && uv run --extra dev python -m pytest tests/ -q → 1306 passed, 3 skipped.
  • Unity EditMode: new tests follow the same pattern as the existing Cursor/ClaudeDesktop/KiloCode cases. Local Unity Editor was not installed in the dev environment, so tools/check-unity-versions.sh skipped the compile check; CI will cover it.

Notes

  • Droid supports both stdio and HTTP transports (the ~/.factory/mcp.json schema accepts the standard command/args form as well as the url form), so SupportsHttpTransport = true is correct.
  • Transport detection reuses the existing JsonFileMcpConfigurator.CheckStatus logic, which already understands url, serverUrl, and httpUrl URL properties plus the command/args stdio form.
  • Branched off beta per the contributing guide.

Summary by CodeRabbit

  • New Features
    • Added the Droid MCP client with automatic JSON config generation in ~/.factory/mcp.json.
    • Enabled skills installation support and documented its default skills path under ~/.factory/skills/.
    • Droid supports both HTTP and stdio transports.
  • Tests
    • Added EditMode coverage for Droid install status, generated config format, skills support, and supported transports.
  • Documentation
    • Updated the capability matrix and client configurator guides to include Droid, plus minor install-page wording adjustments.

…#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
Copilot AI review requested due to automatic review settings July 5, 2026 04:14
@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 82b803eb-155a-4a48-9486-75d8b0df3013

📥 Commits

Reviewing files that changed from the base of the PR and between 1e14fdc and 03827dc.

📒 Files selected for processing (2)
  • MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs
  • website/docs/getting-started/clients.md
✅ Files skipped from review due to trivial changes (1)
  • website/docs/getting-started/clients.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs

📝 Walkthrough

Walkthrough

Adds a new DroidConfigurator for Factory Droid, targeting ~/.factory/mcp.json, enabling skills support, and adding EditMode tests plus documentation updates for the new client.

Changes

Factory Droid configurator support

Layer / File(s) Summary
DroidConfigurator implementation
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs, MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs.meta
New DroidConfigurator configures a Droid McpClient targeting ~/.factory/mcp.json on Windows/macOS/Linux, enables SupportsSkills, defines the skill install path under ~/.factory/skills/unity-mcp-skill, and lists installation steps; adds the corresponding Unity meta file.
EditMode tests for Droid behavior
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/IsInstalledTests.cs, TestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/SupportedTransportsTests.cs, TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/ClientConfigFormatTests.cs
Adds tests verifying IsInstalled detection, support for both stdio and HTTP transports, the standard mcpServers config format, generated manual config JSON, cross-platform config path targeting, and skills install path.
Documentation updates for Droid
website/docs/getting-started/clients.md, website/docs/getting-started/install.md, website/docs/guides/client-configurators.md
Adds Droid to the capability matrix table, expands the prerequisites client examples list, and adds Droid as a typical JSON-file client entry in the configurator guide.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding Factory Droid as a configured MCP client.
Description check ✅ Passed The description is detailed and covers summary, changes, verification, testing, and notes, though it doesn't fully follow the template headings.
Linked Issues check ✅ Passed The changes satisfy #1240 by adding Droid auto-discovery, JSON-file config support, skill path support, tests, and docs updates.
Out of Scope Changes check ✅ Passed The added tests and documentation are directly tied to the Droid configurator and do not appear to introduce unrelated scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread website/docs/getting-started/clients.md Outdated
| **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`. |
Comment on lines +36 to +39
"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"

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs (1)

22-22: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Redundant explicit default assignment.

SupportsHttpTransport = true is already the field default in McpClient (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

📥 Commits

Reviewing files that changed from the base of the PR and between d87ca19 and a7f59a7.

📒 Files selected for processing (8)
  • MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs
  • MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs.meta
  • TestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/IsInstalledTests.cs
  • TestProjects/UnityMCPTests/Assets/Tests/EditMode/Clients/SupportedTransportsTests.cs
  • TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/ClientConfigFormatTests.cs
  • website/docs/getting-started/clients.md
  • website/docs/getting-started/install.md
  • website/docs/guides/client-configurators.md

yankawa added 2 commits July 5, 2026 13:22
…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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add Factory Droid as a configured MCP client

2 participants