Skip to content

feat: add Factory Droid as a configured MCP client #1240

Description

@yankawa

Summary

MCP for Unity auto-configures every MCP client it detects on the user's machine, but Factory Droid (https://factory.ai/) is not in the configurator list. Droid users currently have to hand-edit ~/.factory/mcp.json to wire up Unity MCP, while every other major client (Cursor, VS Code, Windsurf, Claude Code, Codex, etc.) gets a one-click Configure button in Window → MCP for Unity.

This issue tracks adding a first-class DroidConfigurator so Droid is detected and configured automatically, on parity with the other 20+ supported clients.

Proposed solution

Droid stores MCP server config in ~/.factory/mcp.json using the standard mcpServers container (same schema as Cursor/Claude Desktop), so it can reuse the existing JsonFileMcpConfigurator pipeline without any new base class:

public class DroidConfigurator : JsonFileMcpConfigurator
{
    public DroidConfigurator() : base(new McpClient
    {
        name = "Droid",
        windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".factory", "mcp.json"),
        macConfigPath     = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".factory", "mcp.json"),
        linuxConfigPath   = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".factory", "mcp.json"),
        SupportsHttpTransport = true,
    })
    { }

    public override bool SupportsSkills => true;

    public override string GetSkillInstallPath()
    {
        var userHome = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
        return Path.Combine(userHome, ".factory", "skills", "unity-mcp-skill");
    }
    // ...
}

Because McpClientRegistry auto-discovers configurators via TypeCache.GetTypesDerivedFrom<IMcpClientConfigurator>(), no manual registration is required — the class appears in the client list automatically once it compiles.

Scope

  • New MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs (+ .meta) targeting ~/.factory/mcp.json on all platforms
  • Enable skill install support (~/.factory/skills/unity-mcp-skill)
  • EditMode tests covering transport support, IsInstalled, config-format invariants, and skill path
  • Docs updates: capability matrix in clients.md, prerequisites in install.md, configurator guide in client-configurators.md

Why

  • Droid is a production AI coding agent with a growing user base; users are asking for the same one-click setup the other clients get.
  • The config format is already supported by the shared JSON pipeline, so the cost is one small class + tests.
  • No risk to existing clients — auto-discovery only adds the new entry; nothing else changes.

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.
  • Configured transport detection reuses the existing JsonFileMcpConfigurator.CheckStatus logic which already understands url, serverUrl, and httpUrl URL properties and the command/args stdio form.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions