A simple CLI tool to manage Model Context Protocol (MCP) servers across multiple AI coding assistants.
DamnGood MCP Manager
A simple CLI tool to manage Model Context Protocol (MCP) servers across multiple AI coding assistants.
Supported Clients
- Cursor -
~/.cursor/mcp.json - Claude (Code & Desktop) -
~/.claude/config.json - Gemini CLI -
~/.gemini/settings.json - OpenCode -
~/.config/opencode/opencode.json - Generic MCP -
~/.mcp/config.json - Custom Tools - Register any MCP-compatible tool
Install
Install globally with pip so you can use damngood from anywhere:
# Clone the repo
git clone https://github.com/5LV10/damngood.git
cd damngood
# Install in editable mode (for development)
pip install -e .
# Or install normally
pip install .
# All set, damngood is ready to be used
damngood --help
damngood list
Quick Start
# List servers (auto-detects client)
damngood list
# Add a server
damngood add filesystem --command npx --args "-y @modelcontextprotocol/server-filesystem"
# Toggle server on/off
damngood toggle filesystem
# Remove a server
damngood remove filesystem
Usage
damngood [options] <command>
Commands:
list List all configured servers
add <name> Add a new MCP server
remove <name> Remove a server
enable <name> Enable a server
disable <name> Disable a server
toggle <name> Toggle server state
export <path> Export config to file
register <name> Register a custom MCP client
Options:
-c, --config Specify custom config file path
--client Specify which client to use (cursor/gemini/opencode/claude/generic)
Specify Your Client
By default, the tool auto-detects which MCP client you're using based on existing config files. But you can explicitly specify:
# Use Cursor explicitly (ignores other configs)
damngood --client cursor list
# Use Gemini explicitly
damngood --client gemini add myserver --command npx
# Use OpenCode explicitly
damngood --client opencode enable myserver
This is useful when you have multiple MCP configs but want to manage a specific one.
Register Custom Tools
Want to use a tool that's not in our supported list? Register it:
# Register a custom tool (e.g., VS Code)
damngood register windsurf --path ~/.windsurf/mcp.json
# Register with custom config key (like OpenCode uses 'mcp' instead of 'mcpServers')
damngood register mytool --path ~/.mytool/config.json --key mcp
# Now use it like any other client
damngood --client windsurf list
damngood --client windsurf add myserver --command npx
Custom tools are saved to ~/.config/damngood/custom_tools.json and work exactly like built-in ones.
Why Use This?
- No manual JSON editing - Simple CLI commands
- Works everywhere - Auto-detects Cursor, Claude, Gemini, OpenCode
- Explicit control - Use
--clientto force a specific tool - Extensible - Register any MCP-compatible tool
- Safe - Can't break your config with typos
- Fast - Enable/disable servers in seconds
Examples
Auto-detection workflow
# Your Cursor MCP servers are acting up
$ damngood list
Configured MCP Servers (cursor):
------------------------------------------------------------
filesystem [enabled]
slack [enabled]
postgres [enabled]
# Disable the broken one
$ damngood disable slack
Server 'slack' disabled
Config saved to /home/dev/.cursor/mcp.json (cursor format)
Explicit client selection
# Force use of Claude even if other configs exist
$ damngood --client claude list
Configured MCP Servers (claude):
------------------------------------------------------------
No MCP servers configured.
# Add server to Claude specifically
$ damngood --client claude add github --command npx --args "-y @modelcontextprotocol/server-github"
Added MCP server: github
Config saved to /home/dev/.claude/config.json (claude format)
Custom tool registration
# Register VS Code as custom tool
$ damngood register vscode --path ~/.vscode/mcp.json
Registered custom tool 'vscode' -> /home/dev/.vscode/mcp.json (key: mcpServers)
# Use it
$ damngood --client vscode list
Configured MCP Servers (vscode):
------------------------------------------------------------
myserver [enabled]
Other ways to install
Option 1: Install with pip (Recommended)
Install globally so you can use damngood from anywhere:
# Clone the repo
git clone https://github.com/5LV10/damngood.git
cd damngood
# Install in editable mode (for development)
pip install -e .
# Or install normally
pip install .
# Now use it from anywhere!
damngood --help
damngood list
Option 2: Install from GitHub directly
pip install git+https://github.com/5LV10/damngood.git
# Use it anywhere
damngood --help
Option 3: Quick alias (no installation)
Add this to your ~/.bashrc or ~/.zshrc:
alias damngood="python3 /path/to/damngood/damngood-cli.py"
Then reload your shell:
source ~/.bashrc # or ~/.zshrc
damngood --help
Option 4: Run without installing
cd damngood
python3 damngood-cli.py --help
Config Locations
The tool searches for configs in this order:
~/.cursor/mcp.json(Cursor)~/.gemini/settings.json(Gemini CLI)~/.config/opencode/opencode.json(OpenCode)~/.claude/config.json(Claude)~/.mcp/config.json(Generic)
Project-level configs are also checked (e.g., ./.cursor/mcp.json).
Use --config <path> to specify an exact file, or --client <name> to use a specific client's default location.