Skip to content

πŸ€– feat: Global MCP configuration with per-project toggle supportΒ #1649

@stirby

Description

@stirby

Problem

Currently, MCP servers are configured per-project in .mux/mcp.jsonc. This means users who want to use the same MCP server (e.g., Svelte, GitHub, a custom tooling server) across multiple projects must manually duplicate the configuration in each project's .mux/mcp.jsonc file.

This is tedious and repetitive, especially for:

  • Framework-specific MCPs (Svelte, React, Vue) used across many projects
  • General-purpose MCPs (GitHub, Slack, database tools) that are useful everywhere
  • Custom internal MCPs that a developer uses in their daily workflow

When an MCP configuration needs updating (e.g., new command flags, updated path), users must update it in every project individually.

Proposed Solution

Introduce a global MCP configuration that lives in ~/.mux/mcp.jsonc (or similar). This would define MCP servers available across all projects without duplication.

Key requirements:

  1. Global config file: ~/.mux/mcp.jsonc containing MCP server definitions
  2. Per-project toggle: Projects should be able to:
    • Enable/disable specific global MCPs (not all global MCPs are relevant to all projects)
    • Override global MCP settings at the project level if needed
  3. Precedence: Project-level config should take precedence over global config for the same server name
  4. UI support: The MCP panel should show:
    • Which MCPs are global vs project-level
    • Toggle controls for enabling/disabling global MCPs in the current project

Example configuration hierarchy:

~/.mux/mcp.jsonc (global)
β”œβ”€β”€ github-mcp (enabled everywhere by default)
β”œβ”€β”€ svelte-mcp (enabled everywhere by default)
└── internal-tools (enabled everywhere by default)

<project>/.mux/mcp.jsonc (project-level)
β”œβ”€β”€ svelte-mcp: disabled (this project uses Vue)
β”œβ”€β”€ vue-mcp: { ... } (project-specific)
└── internal-tools: { command: "..." } (override global config)

Alternatives Considered

  • Copy config via Mux agent: Users can ask Mux to copy MCP config from project A to B, but this still results in duplication and drift over time
  • Symlinks: Technical users could symlink config files, but this is fragile and not user-friendly

Additional Context

User feedback from Discord highlights this as a common pain point for developers working across multiple projects with shared tooling needs.


Generated with mux β€’ Model: anthropic:claude-opus-4-5 β€’ Thinking: high β€’ Cost: $0.58

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or functionalityneeds-alignmentPR or Issue needs contributor alignment on design before implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions