Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/davidpastorvicente/mcpx-cli/llms.txt

Use this file to discover all available pages before exploring further.

MCPX translates the single canonical .agents/mcp.json file into 8 different provider-specific configuration formats. Each provider has its own file location, root key, serialization format, and field-naming conventions. You never need to touch these generated files directly — MCPX manages them for you. This page documents exactly what each provider expects so you understand what MCPX produces and why.

Valid provider IDs

The following IDs are accepted in the providers array of the canonical config file:
  • antigravity-cli
  • claude-code
  • copilot-cli
  • intellij
  • kimi-cli
  • openai-codex
  • opencode
  • vscode

Provider details

Provider ID: claude-code
AspectDetail
Project config.mcp.json
Global config~/.claude.json
FormatJSON
Root keymcpServers
Scope supportProject and global
Field mappings:
  • Every server entry receives an explicit type field set to "stdio" or "http" matching the canonical transport value.
  • env maps directly to env.
  • HTTP servers emit url and optional headers.
Global scope behavior: When writing to the global ~/.claude.json, MCPX merges the mcpServers key into the existing file so that other Claude Code settings (such as preferences) are preserved.Example output (project):
{
  "mcpServers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-github-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    }
  }
}
Provider ID: antigravity-cli
AspectDetail
Project config.gemini/config/mcp_config.json
Global config~/.gemini/config/mcp_config.json
FormatJSON
Root keymcpServers
Scope supportProject and global
Field mappings:
  • Unlike most other providers, Antigravity CLI does not emit a type field.
  • HTTP servers use serverUrl (not url) for the remote endpoint.
  • Disabled servers (where enabled: false) are included in the output with disabled: true rather than omitted.
  • env and headers map directly.
Example output:
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-github-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    },
    "remote-api": {
      "serverUrl": "https://mcp.example.com",
      "headers": {
        "Authorization": "Bearer sk-xxx"
      }
    }
  }
}
Provider ID: kimi-cli
AspectDetail
Project config.kimi-code/mcp.json
Global config~/.kimi-code/mcp.json
FormatJSON
Root keymcpServers
Scope supportProject and global
Field mappings:
  • No type field is emitted.
  • HTTP servers emit url directly.
  • env and headers map directly.
  • Disabled servers are omitted from output entirely.
Global path override: The global config path respects the $KIMI_CODE_HOME environment variable. If KIMI_CODE_HOME is set, MCPX writes the global config to $KIMI_CODE_HOME/mcp.json instead of ~/.kimi-code/mcp.json.Example output:
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-github-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    }
  }
}
Provider ID: openai-codex
AspectDetail
Project config.codex/config.toml
Global config~/.codex/config.toml
FormatTOML
Root keymcp_servers
Scope supportProject and global
Field mappings:
  • The only provider that uses TOML format instead of JSON.
  • The root key is mcp_servers (underscore, not camelCase).
  • HTTP servers emit url and http_headers (not headers).
  • Disabled servers are omitted.
Smart merge: When a .codex/config.toml already exists, MCPX parses the full file, replaces only the mcp_servers table, and re-serializes it. This preserves any existing Codex settings such as model, approval_mode, and custom instructions.Example output:
[mcp_servers.github]
command = "npx"
args = ["-y", "@anthropic-ai/mcp-github-server"]

[mcp_servers.github.env]
GITHUB_PERSONAL_ACCESS_TOKEN = "ghp_xxx"
Provider ID: opencode
AspectDetail
Project configopencode.json
Global config~/.config/opencode/opencode.jsonc (falls back to ~/.config/opencode/opencode.json)
FormatJSONC (global) / JSON (project)
Root keymcp
Scope supportProject and global
Field mappings:
  • command and args are merged into a single array under the command key: [command, ...args].
  • Environment variables are stored under environment (not env).
  • stdio servers receive type: "local".
  • HTTP servers receive type: "remote".
  • The enabled field is written explicitly in every server entry.
  • The generated file always includes a $schema key pointing to the OpenCode config schema.
Example output (project):
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "github": {
      "enabled": true,
      "type": "local",
      "command": ["npx", "-y", "@anthropic-ai/mcp-github-server"],
      "environment": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    }
  }
}
Provider ID: copilot-cli
AspectDetail
Project config.copilot/mcp-config.json
Global config~/.copilot/mcp-config.json
FormatJSON
Root keymcpServers
Scope supportProject and global
Field mappings:
  • Every server entry receives an explicit type field ("stdio" or "http").
  • Every server entry also receives a tools field defaulted to ["*"], which grants access to all tools exposed by that server.
  • Disabled servers are omitted.
  • env and headers map directly.
Example output:
{
  "mcpServers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-github-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      },
      "tools": ["*"]
    }
  }
}
Provider ID: vscode
AspectDetail
Project config.vscode/mcp.json
Global configNot supported
FormatJSON
Root keyservers
Scope supportProject only
Field mappings:
  • Root key is servers (not mcpServers).
  • Every server entry receives an explicit type field.
  • HTTP transport is mapped to type: "sse" (not "http"), because VS Code uses the SSE transport label for remote servers.
  • Disabled servers are omitted.
  • env and headers map directly.
Example output:
{
  "servers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-github-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    },
    "remote-api": {
      "type": "sse",
      "url": "https://mcp.example.com",
      "headers": {
        "Authorization": "Bearer sk-xxx"
      }
    }
  }
}
Provider ID: intellij
AspectDetail
Project config.idea/mcp.json
Global configNot supported
FormatJSON
Root keymcpServers
Scope supportProject only
Field mappings:
  • No type field is emitted. IntelliJ IDEA infers the transport type from the presence of command (stdio) or url (HTTP).
  • env and headers map directly.
  • Disabled servers are omitted.
Example output:
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-github-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    }
  }
}

Summary table

Provider IDDisplay NameFormatProject ConfigGlobal Config
claude-codeClaude CodeJSON.mcp.json~/.claude.json
antigravity-cliAntigravity CLIJSON.gemini/config/mcp_config.json~/.gemini/config/mcp_config.json
kimi-cliKimi CLIJSON.kimi-code/mcp.json~/.kimi-code/mcp.json
openai-codexOpenAI CodexTOML.codex/config.toml~/.codex/config.toml
opencodeOpenCodeJSONC/JSONopencode.json~/.config/opencode/opencode.jsonc
copilot-cliCopilot CLIJSON.copilot/mcp-config.json~/.copilot/mcp-config.json
vscodeVS CodeJSON.vscode/mcp.jsonNot supported
intellijIntelliJ IDEAJSON.idea/mcp.jsonNot supported
When a provider is removed from the providers array and mcpx sync is run, MCPX deletes that provider’s config file for the active scope. Make sure the file is not checked in anywhere critical before removing a provider, or commit the deletion intentionally.

Build docs developers (and LLMs) love