Skip to content

MCP servers from project-level .factory/mcp.json not loading when same server exists in user config #492

@fahimanwer

Description

@fahimanwer

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

  1. Have identical MCP servers defined in both ~/.factory/mcp.json and .factory/mcp.json
  2. Remove a server (e.g., "oxylabs") from user config
  3. The server from project config is not automatically picked up
  4. 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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
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