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
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.
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.jsonto wire up Unity MCP, while every other major client (Cursor, VS Code, Windsurf, Claude Code, Codex, etc.) gets a one-click Configure button inWindow → MCP for Unity.This issue tracks adding a first-class
DroidConfiguratorso Droid is detected and configured automatically, on parity with the other 20+ supported clients.Proposed solution
Droid stores MCP server config in
~/.factory/mcp.jsonusing the standardmcpServerscontainer (same schema as Cursor/Claude Desktop), so it can reuse the existingJsonFileMcpConfiguratorpipeline without any new base class:Because
McpClientRegistryauto-discovers configurators viaTypeCache.GetTypesDerivedFrom<IMcpClientConfigurator>(), no manual registration is required — the class appears in the client list automatically once it compiles.Scope
MCPForUnity/Editor/Clients/Configurators/DroidConfigurator.cs(+.meta) targeting~/.factory/mcp.jsonon all platforms~/.factory/skills/unity-mcp-skill)IsInstalled, config-format invariants, and skill pathclients.md, prerequisites ininstall.md, configurator guide inclient-configurators.mdWhy
Notes
~/.factory/mcp.jsonschema accepts the standardcommand/argsform as well as theurlform), soSupportsHttpTransport = trueis correct.JsonFileMcpConfigurator.CheckStatuslogic which already understandsurl,serverUrl, andhttpUrlURL properties and thecommand/argsstdio form.