🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
MCP configuration manager for Claude Code and other clients
MCPick manages MCP server config, skills, and related client-specific tools from one CLI. It can list clients, enable or disable servers, validate config health, back up state, and run as an MCP server so agents can control it through tool calls.
Builders who want one command to manage MCP servers, skills, and profiles across several AI clients.
You can keep MCP setup consistent, audited, and safer without editing each client by hand.
What it does
Multi-client MCP management
Lists and edits MCP config for Claude Code, Claude Desktop, Codex CLI, Gemini CLI, VS Code / Copilot, Cursor, Windsurf, OpenCode, and Pi.
MCP server mode
Runs `mcpick serve` so agents can call tools like `mcpick_list`, `mcpick_enable`, `mcpick_add`, and `mcpick_doctor` over stdio.
Config health checks
`mcpick doctor` checks JSON validity, schema shape, missing commands, duplicate servers, plaintext secrets, and unpinned packages.
Portable skills management
Installs and updates GitHub-hosted SKILL.md packs through `gh skill`, with staging, validation, provenance, and pinning.
Claude Code extras
Includes commands for plugins, marketplaces, hooks, and cache management for Claude Code-specific workflows.
Profiles, backup, and rollback
Saves and loads MCP profiles, makes backups, restores from files, and rolls back safe-write changes.
Secret handling
Redacts known secret patterns in output and warns when values look like secrets or are stored in plaintext.
How to get it
- 1Run
npm install -g mcpick # or run without installing npx mcpick --help
- 2npx mcpick doctor checks every known client config: JSON validity, per-client schema…
npx mcpick doctor npx mcpick doctor --client cursor --json
README
MCPick
Vendor-neutral MCP configuration manager with first-class Claude Code support.
MCPick helps humans and LLM agents inspect, toggle, and back up MCP server configuration across multiple AI clients. Claude Code-specific plugins, hooks, marketplaces, and cache commands remain available, but they are no longer the core product model.
Install
npm install -g mcpick
# or run without installing
npx mcpick --help
Requirements:
- Node.js 22+
- Claude Code is required only for Claude Code-specific commands
- The GitHub CLI (
gh, authenticated) is required for portable skills commands; check-skills validates skills before install when available
Agent-first CLI
In non-TTY environments, MCPick shows help instead of launching the interactive TUI. This makes it safer for prompts like:
“Use mcpick to work out how to enable this MCP server.”
Start with:
npx mcpick --help
npx mcpick clients
npx mcpick list --json
MCPick redacts known secret patterns before printing output. MCP
configs often contain env vars and authorization headers, so env and
headers values are shown as *** in JSON output.
MCP server mode
npx mcpick serve runs MCPick itself as an MCP server over stdio, so
agents can manage MCP configuration through tool calls instead of
shelling out to the CLI. Tools:
- Read:
mcpick_list,mcpick_clients,mcpick_get,mcpick_doctor - Mutate:
mcpick_enable,mcpick_disable,mcpick_remove,mcpick_add,mcpick_add_json
Read-only/destructive annotations are set so clients can make safe
decisions; secret warnings and from_env resolution behave the same
as the CLI. Client config example:
{
"mcpServers": {
"mcpick": {
"command": "npx",
"args": ["-y", "mcpick", "serve"]
}
}
}
MCP clients
Supported client adapters:
| Client | Scopes | Command examples |
|---|---|---|
| Claude Code | local, project, user | mcpick list, mcpick enable <server> |
| Claude Desktop | user | mcpick list --client claude-desktop |
| Codex CLI | user | mcpick list --client codex |
| Gemini CLI | project, user | mcpick list --client gemini-cli --scope project |
| VS Code / Copilot | project | mcpick list --client vscode --scope project |
| Cursor | project, user | mcpick list --client cursor --scope user |
| Windsurf | user | mcpick list --client windsurf --scope user |
| OpenCode | project, user | mcpick list --client opencode --scope project |
| Pi via pi-mcp-adapter | project, user | mcpick list --client pi --scope user |
Show known config locations:
npx mcpick clients
npx mcpick clients --json
MCP server commands
# List Claude Code registry/status
npx mcpick list
npx mcpick list --json
# List another client
npx mcpick list --client pi --scope user --json
npx mcpick list --client opencode --scope project
# Claude Code enable/disable
npx mcpick enable <server> --scope local
npx mcpick disable <server> --scope local
# Add/remove Claude Code server definitions
npx mcpick add --name <server> --command npx --args "-y,package-name"
npx mcpick add --from-registry io.github.user/server
npx mcpick add-json <name> '{"command":"npx","args":["-y","package-name"]}'
npx mcpick remove <server>
add --from-registry requires an exact official MCP Registry name and
writes the package's exact published version. It currently supports
npm packages using stdio; unsupported package types fail without
writing a guessed configuration. Registry-declared required
environment variables must be supplied with --from-env or --env.
--dry-run works for adapter-backed clients.
MCPick warns when a value you write looks like a secret, redacts
printed output, and npx mcpick doctor flags plaintext secrets
already on disk. To keep secrets off the command line and out of LLM
conversation context, resolve them from the process environment:
pnpx nopeek run .env --only GITHUB_TOKEN -- npx mcpick add --name github --command npx --args "-y,@modelcontextprotocol/server-github" --from-env GITHUB_TOKEN --yes
MCP client config files may still store secrets in plain text because
that is how many clients currently load MCP credentials; prefer
${VAR} references where your client supports them.
Validate your setup
npx mcpick doctor checks every known client config: JSON validity,
per-client schema shape, missing commands on PATH, duplicate servers
across scopes, plaintext secrets, and unpinned server packages. It
exits non-zero when it finds errors, so it works in CI:
npx mcpick doctor
npx mcpick doctor --client cursor --json
Portable skills
MCPick installs portable SKILL.md packs through the GitHub CLI's
gh skill commands. Installs are staged in a temporary directory and
validated with check-skills before anything is written to your agent
directories, and each install records provenance (source repo, pinned
ref, target agents) shown in skills list --json.
# List installed skills for a client
npx mcpick skills list --agent pi --json
# Search GitHub, or see what a source offers without installing
npx mcpick skills search svelte
npx mcpick skills add spences10/skills --list
npx mcpick skills preview spences10/skills svelte-runes
# Install one skill, pinned for reproducibility
npx mcpick skills add spences10/skills --agent pi --skill svelte-runes --pin v1.2.0 --yes
# Install all skills from a repo at user scope
npx mcpick skills add spences10/skills --agent opencode --all --global --yes
# Check for updates, then apply them
npx mcpick skills update --dry-run --json
npx mcpick skills update
skills remove is not supported by the gh skill backend; it reports
the manual deletion paths instead.
Claude Code-specific tools
These commands wrap Claude Code concepts and are intentionally client-specific:
# Plugins
npx mcpick plugins list
npx mcpick plugins install <name>@<marketplace>
npx mcpick plugins enable <name>@<marketplace>
npx mcpick plugins disable <name>@<marketplace>
# Marketplaces
npx mcpick marketplace list
npx mcpick marketplace add <source>
npx mcpick marketplace update
npx mcpick marketplace remove <name>
# Hooks and plugin cache
npx mcpick hooks list
npx mcpick cache status
npx mcpick cache refresh
Profiles and backups
Profiles are portable MCP server snapshots. Claude Code plugin state is preserved as optional Claude-specific profile metadata.
# Legacy Claude Code shortcuts still work
npx mcpick --profile database
npx mcpick --save-profile mysetup
npx mcpick --list-profiles
# Save/load profiles for a specific MCP client
npx mcpick profile save work --client vscode --scope project
npx mcpick profile load work --client opencode --scope project
npx mcpick profile load work --client pi --scope user
npx mcpick backup
npx mcpick restore [file]
# Safe-write rollback backups created before config mutations
npx mcpick rollback --list
npx mcpick rollback [file]
Interactive TUI
Running npx mcpick in a terminal launches the human-facing menu:
MCPick - MCP Configuration Manager
What would you like to do?
Enable / Disable MCP servers
Validate configs (doctor)
Skills
Client-specific tools
Load profile
Save profile
Backup config
Restore from backup
Exit
The primary TUI flow is client-first: choose a client, then toggle its
MCP servers. Claude Code plugins, hooks, marketplaces, and cache live
under “Client-specific tools”. “Validate configs (doctor)” runs the
same read-only health checks as mcpick doctor (config parse errors,
schema-shape issues, missing commands, duplicate servers, plaintext
secrets, unpinned servers) and prints the report grouped by client.
Config locations
MCPick reads the standard locations used by each client adapter. Common paths include:
| Path | Purpose |
|---|---|
~/.claude.json | Claude Code local/user MCP config |
.mcp.json | Shared project MCP config |
.gemini/settings.json | Gemini CLI project config |
.vscode/mcp.json | VS Code / Copilot project config |
.cursor/mcp.json | Cursor project config |
opencode.json | OpenCode project config |
~/.config/mcp/mcp.json | Shared global MCP config used by pi-mcp-adapter |
.pi/mcp.json | Pi project override |
MCPick-owned state lives under $XDG_CONFIG_HOME/mcpick/
(~/.config/mcpick/ by default; override with MCPICK_CONFIG_DIR).
State previously kept in ~/.claude/mcpick/ is moved there
automatically on first run.
Development
pnpm install
pnpm test
pnpm run check
pnpm build
See docs/VENDOR_NEUTRAL_ARCHITECTURE.md for architecture notes.
Files in the repo
- .changeset
- .github
- .vscode
- .zed
- docs
- src
- .gitignore
- .npmignore
- CHANGELOG.md
- CONTEXT.md
- LICENSE
- package.json
- pnpm-lock.yaml
- pnpm-workspace.yaml
- README.md
- renovate.json
- tsconfig.json
- vite.config.ts
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More tools
The best-benchmarked open-source AI memory system. And it's free.
Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.