Description
When an MCP server is defined in both the project-level .factory/mcp.json and user-level ~/.factory/mcp.json with the same name, the project-level config is never used, even after removing it from the user config.
Expected Behavior
- If a server is removed from user config but exists in project config, it should load from project config
- Or at minimum, a session restart should pick up the project-level config
Actual Behavior
- Servers always show as "loaded from user" when both configs have the same server name
- After removing a server from user config, it doesn't automatically load from project config
- Requires manual intervention/restart that doesn't always work
Steps to Reproduce
- Have identical MCP servers defined in both
~/.factory/mcp.json and .factory/mcp.json
- Remove a server (e.g., "oxylabs") from user config
- The server from project config is not automatically picked up
- Tools from that MCP server are not available in the session
Environment
- macOS darwin 25.0.0
- Droid CLI
Additional Context
The documentation states "User config takes priority over project config" but doesn't clarify that removing from user config should fall back to project config. The layering behavior is confusing for users who want project-level configs to be the source of truth for team collaboration.
Description
When an MCP server is defined in both the project-level
.factory/mcp.jsonand user-level~/.factory/mcp.jsonwith the same name, the project-level config is never used, even after removing it from the user config.Expected Behavior
Actual Behavior
Steps to Reproduce
~/.factory/mcp.jsonand.factory/mcp.jsonEnvironment
Additional Context
The documentation states "User config takes priority over project config" but doesn't clarify that removing from user config should fall back to project config. The layering behavior is confusing for users who want project-level configs to be the source of truth for team collaboration.