Skip to content
/ damngood Public

A simple CLI tool to manage Model Context Protocol (MCP) servers across multiple AI coding assistants.

Notifications You must be signed in to change notification settings

5LV10/damngood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

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 --client to 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:

  1. ~/.cursor/mcp.json (Cursor)
  2. ~/.gemini/settings.json (Gemini CLI)
  3. ~/.config/opencode/opencode.json (OpenCode)
  4. ~/.claude/config.json (Claude)
  5. ~/.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.

About

A simple CLI tool to manage Model Context Protocol (MCP) servers across multiple AI coding assistants.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages