Supported agents
MUX's agent data comes in two layers:
- Audited definitions: 57 individually verified Agent definitions, 47 of which have a stable user-level global MCP config file that MUX can safely read and write; another nine are Skills-only targets, while Devin is read-only.
- Client directory: sourced from public MCP client directories and the official client matrix, used for discovery only. Its 201 entries combine with the audited definitions into 212 unique Agent identities after deduplication.
For MCP capability, clients whose global file path, top-level key, and entry structure have not been confirmed never become writable MCP targets. Skills-only Agents appear only after their user-level directory contract is verified independently. This keeps expanding coverage without writing a generic JSON guess into an unknown product's config.
MUX treats MCPs, Models, and Skills as central assets. Create, import, and maintain them in the top-level libraries first; an Agent page or the unified CLI then chooses which compatible assets that Agent should consume. MCPs and Skills are 0..N per Agent. Native multi-model Agents may have several assigned Profiles but at most one current Profile; single-model Agents remain 0..1. Asset Inspectors own lifecycle actions and show impact without editing Agent relationships.
Agent files and Skill links are observed state, not an alternate asset database. MUX projects them as synced, externally added, changed, removed, unparseable, ambiguous, or unsupported. Scanning never silently takes ownership. Each changed relationship can explicitly adopt the observation, restore MUX desired state, or detach ownership through one recoverable transaction.
MUX currently exposes 15 Model targets: 13 are managed, while MiniMax Code and Qoder remain the two guided targets because no equivalent safe writer is available.
Verified list
The results below are based on official docs, official source, or signed application bundles through 2026-07-22. Grok Build was verified against xAI's official documentation; MiniMax Code was verified from the official signed 3.0.51 macOS bundle.
The table focuses on MCP contracts: it lists the 47 writable targets and retains Devin as an explicit read-only comparison. See Skills capabilities below and User-level Skills for the Skills-only definitions.
The new Qoder Desktop MCP contract was verified against its official documentation on 2026-09-05.
| Agent | Format | Config key | User-level global path | Native transports |
|---|---|---|---|---|
| Agentkube | JSON | mcpServers | ~/.agentkube/mcp.json | stdio / http |
| Amp | JSON | amp.mcpServers | ~/.config/amp/settings.json | stdio / http |
| Amazon Q Developer IDE | JSON | mcpServers | ~/.aws/amazonq/default.json | stdio / http |
| Google Antigravity | JSON | mcpServers | ~/.gemini/config/mcp_config.json | stdio / http |
| Augment Code | JSON | mcpServers | ~/.augment/settings.json | stdio / http |
| BoltAI | JSON | mcpServers | ~/.boltai/mcp.json | stdio |
| Claude Code | JSON | mcpServers | ~/.claude.json | stdio / http |
| Claude Desktop | JSON | mcpServers | ~/Library/Application Support/Claude/claude_desktop_config.json | stdio |
| ChatMCP | JSON | mcpServers | ~/Library/Application Support/ChatMcp/mcp_server.json | stdio / http |
| Cline | JSON | mcpServers | ~/.cline/data/settings/cline_mcp_settings.json | stdio / http |
| CodeBuddy Code | JSON | mcpServers | ~/.codebuddy/.mcp.json | stdio / http |
| CodeWhale | JSON | servers | ~/.codewhale/mcp.json | stdio / http |
| Codex | TOML | mcp_servers | ~/.codex/config.toml | stdio / http |
| Continue | YAML | mcpServers | ~/.continue/config.yaml | stdio / http |
| GitHub Copilot CLI | JSON | mcpServers | ~/.copilot/mcp-config.json | stdio / http |
| Crush | JSON | mcp | ~/.config/crush/crush.json | stdio / http |
| Cursor | JSON | mcpServers | ~/.cursor/mcp.json | stdio / http |
| Devin | - | - | discovery only | - |
| Factory Droid | JSON | mcpServers | ~/.factory/mcp.json | stdio / http |
| Firebender | JSON | mcpServers | ~/.firebender/firebender.json | stdio / http |
| Gemini CLI | JSON | mcpServers | ~/.gemini/settings.json | stdio / http |
| Goose | YAML | extensions | ~/Library/Application Support/Block/goose/config/config.yaml | stdio / http |
| Grok Build | TOML | mcp_servers | ~/.grok/config.toml | stdio / http |
| Hermes Agent | YAML | mcp_servers | ~/.hermes/config.yaml | stdio / http |
| JetBrains Junie | JSON | mcpServers | ~/.junie/mcp/mcp.json | stdio / http |
| Kilo Code CLI | JSON | mcp | ~/.config/kilo/kilo.jsonc | stdio / http |
| Kimi Code CLI | JSON | mcpServers | ~/.kimi-code/mcp.json | stdio / http |
| Kiro | JSON | mcpServers | ~/.kiro/settings/mcp.json | stdio / http |
| LM Studio | JSON | mcpServers | ~/.lmstudio/mcp.json | stdio / http |
| MiniMax Code | JSON | mcpServers | ~/.mavis/mcp.json | stdio / http |
| Mistral Vibe | TOML | mcp_servers | ~/.vibe/config.toml | stdio / http |
| OpenCode | JSON | mcp | ~/.config/opencode/opencode.json | stdio / http |
| OpenHands CLI | JSON | mcpServers | ~/.openhands/mcp.json | stdio / http |
| Pi Coding Agent | JSON | mcpServers | ~/.pi/agent/mcp.json | stdio / http |
| Qoder IDE | JSON | mcpServers | ~/.qoder/mcp.json | stdio / http |
| Qoder Desktop | JSON | mcpServers | ~/.qoder/settings.json | stdio / http |
| Qoder CLI | JSON | mcpServers | ~/.qoder/settings.json | stdio / http |
| QoderWork | JSON | mcpServers | ~/.qoderwork/mcp.json | stdio / http |
| Qwen Code | JSON | mcpServers | ~/.qwen/settings.json | stdio / http |
| Roo Code | JSON | mcpServers | ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json | stdio / http |
| Atlassian Rovo Dev CLI | JSON | mcpServers | ~/.rovodev/mcp.json | stdio / http |
| Stakpak | TOML | mcpServers | ~/.stakpak/mcp.toml | stdio / http |
| Tabnine | JSON | mcpServers | ~/.tabnine/mcp_servers.json | stdio / http |
| Visual Studio Code | JSON | servers | ~/Library/Application Support/Code/User/mcp.json | stdio / http |
| VT Code | TOML | mcp.providers | ~/.vtcode/vtcode.toml | stdio / http |
| Warp | JSON | mcpServers | ~/.warp/.mcp.json | stdio / http |
| Windsurf | JSON | mcpServers | ~/.codeium/windsurf/mcp_config.json | stdio / http |
| Zed | JSON | context_servers | ~/.config/zed/settings.json | stdio / http |
Targets that need special distinction
- Pi: Pi's core does not include MCP. MUX's definition applies only to environments with the community
pi-mcp-adapterinstalled, so the UI clearly labels it a community extension. - Qoder IDE / CLI / Desktop: three separate entries. IDE (
qoder) keeps~/.qoder/mcp.json; new Desktop (qoder-desktop, 0.1.x) and CLI (qoder-cli) share~/.qoder/settings.json, so edits to the same MCP entry affect both. Configure Desktop models in Settings → Models and CLI models in/model. The new Desktop Skills write contract has not been verified. - Devin: the product supports MCP, but no stable user-level global file contract was verified, so it can only be viewed for discovery and not written to.
- QoderWork: user-defined MCP servers live in
~/.qoderwork/mcp.json; MUX does not modify the client's built-in MCP data. - Claude Desktop / BoltAI: the local files listed natively support stdio only. Remote MCP is managed by Claude Connectors or BoltAI's
mcp-remoteapproach, respectively. - Goose: the generic docs example uses
~/.config/goose/config.yaml, but the current macOS source actually uses~/Library/Application Support/Block/goose/config/config.yaml; MUX locates it by the runtime code. - Grok Build: MCP and custom models share
~/.grok/config.toml. MUX separately managesmcp_servers,[models].default, and one dedicated MUX model table across all three documented API backends while preserving other models, auth, timeout, permission, and tool settings. Authentication writes only anenv_keyname, never a secret value. - MiniMax Code: the main and MCP configurations are separate at
~/.mavis/config.yamland~/.mavis/mcp.json. MUX safely managesmcpServers; Models remains guided because the current custom-provider flow persistsoptions.apiKeyas plaintext YAML.
Skills capabilities
Skills paths are verified separately from the MCP config paths in the table above; MUX never infers one from the other. MUX currently declares Skills capabilities for 45 audited Agents with stable user-level contracts, and shows only Agents whose local installation probes succeed.
Skills assignments operate on physical directories, not Agent names. Cursor, Gemini CLI, OpenCode, and GitHub Copilot CLI may all read the ~/.agents/skills compatibility directory, so an operation on Codex's preferred directory can affect several installed Agents. MUX shows the real impact during review and normalizes duplicate links. See User-level Skills for the path matrix, installation sources, background safety checks, and current boundaries.
Format differences across agents
MUX does not treat every client as the same mcpServers JSON:
- OpenCode / Kilo use
type: local|remote, with a localcommandas an array. - Codex uses TOML tables and
http_headers; Grok Build usesmcp_serversTOML tables andheaders; Mistral Vibe uses a[[mcp_servers]]TOML list. - Continue uses a YAML list and requires root-level
name,version, andschema; Goose and Hermes also use their own YAML maps. - Gemini / Qwen use
httpUrl; Windsurf and Antigravity useserverUrl. - Cline puts connection fields in a
transportsub-object; Tabnine puts HTTP headers inrequestInit.headers. - Rovo, Amazon Q, Augment, OpenHands, etc. require an explicit transport type; Kimi / Hermes only write
transport: ssefor legacy SSE.
Each built-in target has its own codec. On upgrade, MUX updates the official schema metadata but preserves your choices for enabled state and global path.
Safe-write boundary
MUX parses agent files locally, but only provides the structured connection fields of the target MCP entry to the UI. The complete config file never enters the UI, logs, source cache, or the network, and MUX never overwrites your config by "deserializing the whole file and rewriting it."
- JSON / JSONC use a syntax tree to locate the target entry, preserving comments, indentation, key order, other servers, and other top-level settings.
- Both TOML maps and TOML lists are edited locally; YAML maps / lists likewise preserve unmanaged content and comments.
- Agent-private fields like
enabled, OAuth, timeouts, tool allowlists, and approval policies are preserved as-is. - If a ChatMCP file contains OAuth, token, or client-secret material, MUX treats the entire file as externally managed and refuses writes before backup; sensitive entries never enter MUX inventory or backups.
- Writes are refused on an invalid document, a wrong node type, duplicate target keys, a YAML multi-document file, a failed backup, or a concurrent modification.
- A timestamped independent backup is created before writing (directory
0700, file0600on Unix), and the final replacement is atomic via a temp file in the same directory; symlink targets and the original config file's permissions are left unchanged.
MUX currently manages only user-level global config and does not offer project-level writes.
Custom agents
Click + next to the desktop app's agent selector, or press n in the TUI's Agents screen, to add a custom JSON, TOML, or YAML global target. Custom targets use the standard map layout; only verified built-in targets enable product-specific field conversion. Built-in targets allow only overriding the path, to avoid accidentally turning an official schema into an incompatible format.
Next → FAQ