Skip to main content

MCP profile manager for Claude Code — pick which MCP servers load per project

Project description

mancp

A lightweight MCP profile manager for Claude Code and Conductor. Pick which MCP servers load per project instead of dumping them all into every session.

The problem

Claude Code merges user-level MCPs from ~/.claude.json into every project, always. There's no per-project exclusion. With 10+ MCPs configured, you burn 30-50k tokens on tool definitions before writing a line of code.

mancp stores all your MCPs in a central registry and lets you toggle each one independently between user scope (~/.claude.json) and project scope (.mcp.json).

Install

uvx mancp

Or install permanently:

uv tool install mancp

Quick start

# 1. Import your existing MCPs (once)
mancp init

# 2. Open the TUI in any project
cd ~/repos/my-project
mancp

mancp init reads all MCP servers from ~/.claude.json (global + all project scopes) into ~/.config/mancp/mcps.json. Safe to re-run -- skips duplicates.

TUI

  mancp  |  my-project  |  12 in store
 U  P  name                        command / url
 U  -  github                      npx  -y  @modelcontextprotocol/server-github
 -  P  motherduck                  npx  -y  @motherduck/mcp-server
 U  P  filesystem                  npx  -y  @anthropic/mcp-server-filesystem
 -  -  slack                       npx  -y  @anthropic/mcp-server-slack
  j/k navigate   u user   p project   enter detail   d delete   s save   q quit

Each MCP has two independent toggles:

Key Action
u Toggle user scope (~/.claude.json) for current row
p Toggle project scope (.mcp.json) for current row
j / k or arrows Navigate list
enter Open detail view (shows config, secrets masked)
s / ctrl+s Save all changes
q / esc Quit without saving

Status columns

  • U (yellow) -- active in ~/.claude.json user scope (loads in all projects)
  • P (cyan) -- active in project .mcp.json (loads only in this project)
  • - (dim) -- not active in that scope

An MCP can be in both scopes, neither, or just one. On save, mancp writes ~/.claude.json and .mcp.json to match what you see.

Detail view

Press enter on any row to see the full MCP config (secrets masked). From there:

  • d -- delete from store permanently
  • q / esc -- close

Other commands

mancp list       # Show store with active status indicators
mancp clean      # Remove all MCPs from ~/.claude.json (with confirmation)

Store format

~/.config/mancp/mcps.json -- plain JSON, same structure as .mcp.json's mcpServers block. You can edit it directly to rename entries or fix configs.

Notes

  • .mcp.json should be in .gitignore if it contains tokens
  • ~/.claude.json is backed up automatically before every write
  • The TUI auto-detects new MCPs added via claude mcp add since last init

Development

git clone https://github.com/dumkydewilde/mancp
cd mancp
uv sync --dev
uv run pytest

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mancp-0.2.0.tar.gz (54.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mancp-0.2.0-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

Details for the file mancp-0.2.0.tar.gz.

File metadata

  • Download URL: mancp-0.2.0.tar.gz
  • Upload date:
  • Size: 54.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mancp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b675ebfed904bd8159317451154f8a3bb94dccf56d28f65c811d77e403e271e6
MD5 d6276873d257ca196a21d48e5a0c6900
BLAKE2b-256 a3b66ddce61f4adc2260ad201b6e2f260d9d6850dad45fd6da521a810ada6200

See more details on using hashes here.

Provenance

The following attestation bundles were made for mancp-0.2.0.tar.gz:

Publisher: publish.yml on dumkydewilde/mancp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mancp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mancp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 42.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mancp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd1c16ee84997f3a90fc35d92befd62b4a0d4798a00ab0b4c041183dee9e4836
MD5 776a099e75585af9ba46a58e1cf8e326
BLAKE2b-256 c2615f6866d1ff0c692772dde0c4bd34d737bf00f6797685ce436a8e9689ba7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mancp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on dumkydewilde/mancp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page