Skip to content

Client Configuration

KiCad MCP Pro works with MCP clients that can start a local stdio server or connect to a Streamable HTTP endpoint. The most portable setup is local stdio with uvx.

Replace /absolute/path/to/your/kicad-project with your KiCad project directory. You can omit KICAD_MCP_PROJECT_DIR and call kicad_set_project() from the client instead, but setting it once in the client config gives you a persistent default project.

Use this command in clients that ask for a command and arguments:

command: uvx
args: ["kicad-mcp-pro"]

Recommended environment:

KICAD_MCP_PROJECT_DIR=/absolute/path/to/your/kicad-project
KICAD_MCP_PROFILE=default
KICAD_MCP_OPERATING_MODE=readonly

The default default profile is a bounded 24-tool review surface. Use review for the same explicit read-only contract, build with KICAD_MCP_OPERATING_MODE=write for plan/preview/apply/verify/rollback workflows, and release with KICAD_MCP_OPERATING_MODE=manufacturing for human-gated manufacturing handoff. Use expert or the backward-compatible full profile only when the client genuinely needs the complete catalog. Existing focused profiles such as pcb_only, schematic_only, manufacturing, high_speed, power, simulation, and analysis remain available. Profiles select the discovery surface; KICAD_MCP_OPERATING_MODE is an independent risk gate applied on top.

CLI Setup Command Variants

Use these command variants when the client can register MCP servers from its CLI. Use the JSON or TOML config examples below for clients that only read config files.

Linux and macOS:

codex mcp add kicad \
  --env KICAD_MCP_PROJECT_DIR=/absolute/path/to/your/kicad-project \
  --env KICAD_MCP_PROFILE=pcb_only \
  --env KICAD_MCP_OPERATING_MODE=readonly \
  -- uvx kicad-mcp-pro

claude mcp add --transport stdio --scope project \
  --env KICAD_MCP_PROJECT_DIR=/absolute/path/to/your/kicad-project \
  --env KICAD_MCP_PROFILE=pcb_only \
  --env KICAD_MCP_OPERATING_MODE=readonly \
  kicad -- uvx kicad-mcp-pro

gemini mcp add --scope project --transport stdio \
  -e KICAD_MCP_PROJECT_DIR=/absolute/path/to/your/kicad-project \
  -e KICAD_MCP_PROFILE=pcb_only \
  -e KICAD_MCP_OPERATING_MODE=readonly \
  kicad uvx kicad-mcp-pro

Windows PowerShell:

codex mcp add kicad `
  --env 'KICAD_MCP_PROJECT_DIR=C:\absolute\path\to\your\kicad-project' `
  --env 'KICAD_MCP_PROFILE=pcb_only' `
  --env 'KICAD_MCP_OPERATING_MODE=readonly' `
  -- uvx kicad-mcp-pro

claude mcp add --transport stdio --scope project `
  --env 'KICAD_MCP_PROJECT_DIR=C:\absolute\path\to\your\kicad-project' `
  --env 'KICAD_MCP_PROFILE=pcb_only' `
  --env 'KICAD_MCP_OPERATING_MODE=readonly' `
  kicad -- uvx kicad-mcp-pro

gemini mcp add --scope project --transport stdio `
  -e 'KICAD_MCP_PROJECT_DIR=C:\absolute\path\to\your\kicad-project' `
  -e 'KICAD_MCP_PROFILE=pcb_only' `
  -e 'KICAD_MCP_OPERATING_MODE=readonly' `
  kicad uvx kicad-mcp-pro

VS Code And GitHub Copilot

VS Code uses .vscode/mcp.json for workspace-level configuration and a user profile MCP configuration for global setup. GitHub Copilot in VS Code uses the same MCP server setup. The repository ships .vscode/mcp.example.json as the copyable workspace example; place the same shape in .vscode/mcp.json for your own project.

.vscode/mcp.example.json:

{
  "servers": {
    "kicad": {
      "type": "stdio",
      "command": "uvx",
      "args": ["kicad-mcp-pro"],
      "env": {
        "KICAD_MCP_PROJECT_DIR": "/absolute/path/to/your/kicad-project",
        "KICAD_MCP_PROFILE": "pcb_only",
        "KICAD_MCP_OPERATING_MODE": "readonly"
      }
    }
  }
}

Use an absolute KiCad project path for KICAD_MCP_PROJECT_DIR. Some VS Code MCP setups do not expand ${workspaceFolder} and may fail at server startup.

Destination Paths

Copy the example into the client-owned config file. Keep repository examples inert by leaving their .example.* filenames unchanged. The Windows paths use %USERPROFILE% and %APPDATA% conventions used on Windows 11 and current supported Windows releases.

Client Linux/macOS destination Windows destination
VS Code and GitHub Copilot <project>/.vscode/mcp.json, or the user-profile config opened by MCP: Open User Configuration <project>\.vscode\mcp.json, or the user-profile config opened from VS Code
Codex CLI / IDE extension ~/.codex/config.toml, or a trusted <project>/.codex/config.toml %USERPROFILE%\.codex\config.toml, or <project>\.codex\config.toml
Claude Code <project>/.mcp.json, or use claude mcp add --scope project <project>\.mcp.json, or use claude mcp add --scope project
Claude Desktop macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Linux users should use Claude Code MCP %APPDATA%\Claude\claude_desktop_config.json
Cursor <project>/.cursor/mcp.json or ~/.cursor/mcp.json <project>\.cursor\mcp.json or %USERPROFILE%\.cursor\mcp.json
Gemini CLI ~/.gemini/settings.json or <project>/.gemini/settings.json %USERPROFILE%\.gemini\settings.json or <project>\.gemini\settings.json
Generic stdio client The client's MCP config file The client's MCP config file
Generic HTTP client The client's remote/HTTP MCP config file The client's remote/HTTP MCP config file

Codex CLI And Codex IDE Extension

Codex stores MCP servers in ~/.codex/config.toml or a trusted project-scoped .codex/config.toml.

CLI setup:

codex mcp add kicad \
  --env KICAD_MCP_PROJECT_DIR=/absolute/path/to/your/kicad-project \
  --env KICAD_MCP_PROFILE=pcb_only \
  --env KICAD_MCP_OPERATING_MODE=readonly \
  -- uvx kicad-mcp-pro

~/.codex/config.toml:

[mcp_servers.kicad]
command = "uvx"
args = ["kicad-mcp-pro"]
startup_timeout_sec = 20
tool_timeout_sec = 120

[mcp_servers.kicad.env]
KICAD_MCP_PROJECT_DIR = "/absolute/path/to/your/kicad-project"
KICAD_MCP_PROFILE = "pcb_only"
KICAD_MCP_OPERATING_MODE = "readonly"

Claude Desktop

Add the server to claude_desktop_config.json:

{
  "mcpServers": {
    "kicad": {
      "command": "uvx",
      "args": ["kicad-mcp-pro"],
      "env": {
        "KICAD_MCP_PROJECT_DIR": "/absolute/path/to/your/kicad-project",
        "KICAD_MCP_PROFILE": "pcb_only",
        "KICAD_MCP_OPERATING_MODE": "readonly"
      }
    }
  }
}

Claude Code

Use KiCad MCP Pro 1.0.0 or newer for Claude Code stdio setups. That release defers heavy tool registration until after the MCP initialize handshake, avoiding startup races on slower WSL or cold KiCad environments.

Project-scoped .mcp.json:

{
  "mcpServers": {
    "kicad": {
      "command": "uvx",
      "args": ["kicad-mcp-pro"],
      "env": {
        "KICAD_MCP_PROJECT_DIR": "/absolute/path/to/your/kicad-project",
        "KICAD_MCP_PROFILE": "pcb_only",
        "KICAD_MCP_OPERATING_MODE": "readonly"
      }
    }
  }
}

CLI setup:

claude mcp add kicad \
  --scope project \
  --env KICAD_MCP_PROJECT_DIR=/absolute/path/to/your/kicad-project \
  --env KICAD_MCP_PROFILE=pcb_only \
  --env KICAD_MCP_OPERATING_MODE=readonly \
  -- uvx kicad-mcp-pro

Cursor

Use .cursor/mcp.json for project configuration or ~/.cursor/mcp.json for global configuration:

{
  "mcpServers": {
    "kicad": {
      "type": "stdio",
      "command": "uvx",
      "args": ["kicad-mcp-pro"],
      "env": {
        "KICAD_MCP_PROJECT_DIR": "/absolute/path/to/your/kicad-project",
        "KICAD_MCP_PROFILE": "pcb_only",
        "KICAD_MCP_OPERATING_MODE": "readonly"
      }
    }
  }
}

Gemini CLI

Add the server to ~/.gemini/settings.json:

{
  "mcpServers": {
    "kicad": {
      "command": "uvx",
      "args": ["kicad-mcp-pro"],
      "env": {
        "KICAD_MCP_PROJECT_DIR": "/absolute/path/to/your/kicad-project",
        "KICAD_MCP_PROFILE": "pcb_only",
        "KICAD_MCP_OPERATING_MODE": "readonly"
      },
      "timeout": 120000
    }
  }
}

Antigravity And Other MCP Clients

If your client accepts the common mcpServers JSON shape, use this as the starting point:

{
  "mcpServers": {
    "kicad": {
      "type": "stdio",
      "command": "uvx",
      "args": ["kicad-mcp-pro"],
      "env": {
        "KICAD_MCP_PROJECT_DIR": "/absolute/path/to/your/kicad-project",
        "KICAD_MCP_PROFILE": "pcb_only",
        "KICAD_MCP_OPERATING_MODE": "readonly"
      }
    }
  }
}

Client-specific behavior can vary. If the client supports only HTTP servers, use the HTTP setup below.

Streamable HTTP Setup

Start KiCad MCP Pro as an HTTP server:

Linux and macOS:

KICAD_MCP_PROJECT_DIR=/absolute/path/to/your/kicad-project \
KICAD_MCP_PROFILE=pcb_only \
KICAD_MCP_OPERATING_MODE=readonly \
uvx kicad-mcp-pro --transport http --host 127.0.0.1 --port 3334

Windows PowerShell:

$Env:KICAD_MCP_PROJECT_DIR = 'C:\absolute\path\to\your\kicad-project'
$Env:KICAD_MCP_PROFILE = 'pcb_only'
$Env:KICAD_MCP_OPERATING_MODE = 'readonly'
uvx kicad-mcp-pro --transport http --host 127.0.0.1 --port 3334

The default endpoint is:

http://127.0.0.1:3334/mcp

The loopback examples above do not need KICAD_MCP_AUTH_TOKEN. Non-loopback HTTP requires a strong bearer token plus an explicit KICAD_MCP_HTTP_BOUNDARY: direct TLS certificate/key termination, loopback-proxy for a bind-all container published only to host loopback, or tls-proxy with an HTTPS KICAD_MCP_PUBLIC_BASE_URL. Clients must send the same bearer token. Store tokens and TLS key material in local environment/secret storage, never checked-in examples.

VS Code HTTP example:

{
  "servers": {
    "kicad": {
      "type": "http",
      "url": "http://127.0.0.1:3334/mcp"
    }
  }
}

Codex HTTP example:

[mcp_servers.kicad]
url = "http://127.0.0.1:3334/mcp"
tool_timeout_sec = 120

Gemini CLI HTTP example:

{
  "mcpServers": {
    "kicad": {
      "httpUrl": "http://127.0.0.1:3334/mcp",
      "timeout": 120000
    }
  }
}

References

  • Agent onboarding and examples: ../../../docs/agents/client-configs.md
  • VS Code MCP configuration: https://code.vscode.dev/docs/copilot/customization/mcp-servers
  • Codex MCP configuration: https://developers.openai.com/codex/config-reference
  • Claude Code MCP configuration: https://docs.anthropic.com/en/docs/claude-code/mcp
  • Anthropic MCP overview: https://docs.anthropic.com/en/docs/mcp
  • Cursor MCP configuration: https://docs.cursor.com/en/context/mcp
  • Gemini CLI MCP setup notes: https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md