commit 5a69be63f2b7c0110b9ab22a192411afdb0e0344 Author: Zhongwei Li Date: Sun Nov 30 08:42:10 2025 +0800 Initial commit diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..64c17c3 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,15 @@ +{ + "name": "mcp-manager", + "description": "Manage MCP servers - add, list, enable, and disable", + "version": "1.0.0", + "author": { + "name": "Nathan Vale", + "email": "hi@nathanvale.com" + }, + "skills": [ + "./skills" + ], + "commands": [ + "./commands" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..2ada8c1 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# mcp-manager + +Manage MCP servers - add, list, enable, and disable diff --git a/commands/disable.md b/commands/disable.md new file mode 100644 index 0000000..8e2e3b4 --- /dev/null +++ b/commands/disable.md @@ -0,0 +1,26 @@ +--- +description: Disable an MCP server without removing it +argument-hint: [--global] +--- + +# Disable MCP Server + +Run the mcp-manager CLI to disable servers: + +```bash +# Parse arguments from $ARGUMENTS +ARGS="$ARGUMENTS" + +if [ -z "$ARGS" ]; then + echo "Usage: /mcp-manager:disable [--global]" + echo "" + echo "Examples:" + echo " /mcp-manager:disable filesystem" + echo " /mcp-manager:disable filesystem tavily-mcp" + echo " /mcp-manager:disable all" + echo " /mcp-manager:disable all --global" + exit 1 +fi + +bun ${CLAUDE_PLUGIN_ROOT}/src/cli.ts disable $ARGS +``` diff --git a/commands/enable.md b/commands/enable.md new file mode 100644 index 0000000..f6a241d --- /dev/null +++ b/commands/enable.md @@ -0,0 +1,26 @@ +--- +description: Enable a disabled MCP server +argument-hint: [--global] +--- + +# Enable MCP Server + +Run the mcp-manager CLI to enable servers: + +```bash +# Parse arguments from $ARGUMENTS +ARGS="$ARGUMENTS" + +if [ -z "$ARGS" ]; then + echo "Usage: /mcp-manager:enable [--global]" + echo "" + echo "Examples:" + echo " /mcp-manager:enable filesystem" + echo " /mcp-manager:enable filesystem tavily-mcp" + echo " /mcp-manager:enable all" + echo " /mcp-manager:enable all --global" + exit 1 +fi + +bun ${CLAUDE_PLUGIN_ROOT}/src/cli.ts enable $ARGS +``` diff --git a/commands/list.md b/commands/list.md new file mode 100644 index 0000000..bbbe3b0 --- /dev/null +++ b/commands/list.md @@ -0,0 +1,11 @@ +--- +description: List all configured MCP servers +--- + +# List MCP Servers + +Run the mcp-manager CLI to list all servers: + +```bash +bun ${CLAUDE_PLUGIN_ROOT}/src/cli.ts list +``` diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..b384ebf --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,57 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:nathanvale/side-quest-marketplace:plugins/mcp-manager", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "fb2079a036987626526ad9ad7148fdf0149f0dce", + "treeHash": "6c440a7c74d73d26624580a2aa1356326610e57adff41945775c2b79612bab35", + "generatedAt": "2025-11-28T10:27:16.320643Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "mcp-manager", + "description": "Manage MCP servers - add, list, enable, and disable", + "version": "1.0.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "b6d61bdca80c8fb0ca6091f94461cb58bf13027169217d892df01c34fd913121" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "a0957869b7d09cae6795bcdab5a09b51e85c476ae72fb55bd5186218d7937406" + }, + { + "path": "commands/disable.md", + "sha256": "20083b26c60da477ac2af23763481c0840df2c6a3c5559b05a22856ec7975aaa" + }, + { + "path": "commands/enable.md", + "sha256": "bf5f6f33a3220c191a6d1ee6e1bce7895bdb50acbac2c22a74ba667d4fb42c17" + }, + { + "path": "commands/list.md", + "sha256": "1a45e9d24941c7ad70114184122bdc0c5a5cae2ec315fd3e4c57f82cefdbf2a1" + }, + { + "path": "skills/mcp-manager/SKILL.md", + "sha256": "600bb00ae894fda3d2ba496644014e3085859ec24f21fbf90da7ad44cd7d7335" + } + ], + "dirSha256": "6c440a7c74d73d26624580a2aa1356326610e57adff41945775c2b79612bab35" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file diff --git a/skills/mcp-manager/SKILL.md b/skills/mcp-manager/SKILL.md new file mode 100644 index 0000000..bd883d0 --- /dev/null +++ b/skills/mcp-manager/SKILL.md @@ -0,0 +1,88 @@ +--- +name: mcp-manager +description: Manage MCP servers - add, list, enable, and disable. Use when users ask about MCP server configuration, want to add new servers, or need to enable/disable existing ones. +--- + +# MCP Manager + +## Overview + +Manage MCP (Model Context Protocol) servers in Claude Code. This skill helps with: +- Listing configured MCP servers +- Adding new MCP servers +- Enabling disabled servers +- Disabling servers without removing them + +## When to Use This Skill + +- User asks "what MCP servers do I have?" +- User wants to "add an MCP server" +- User needs to "enable" or "disable" a server +- User asks about MCP configuration + +## Quick Reference + +| Task | Command | +|------|---------| +| List servers | `claude mcp list` | +| Add HTTP server | `claude mcp add --transport http ` | +| Add stdio server | `claude mcp add --transport stdio -- ` | +| Get server details | `claude mcp get ` | +| Remove server | `claude mcp remove ` | +| Check status | `/mcp` (in Claude Code) | + +## Scopes + +MCP servers can be configured at different scopes: + +| Scope | Flag | Description | +|-------|------|-------------| +| local | `--scope local` | Private to you, current project only (default) | +| project | `--scope project` | Shared via `.mcp.json`, version controlled | +| user | `--scope user` | Available across all your projects | + +## Enable/Disable via Settings + +Servers can be enabled/disabled without removing them: + +```json +// In ~/.claude/settings.json or .claude/settings.json +{ + "enableAllProjectMcpServers": true, + "enabledMcpjsonServers": ["github", "sentry"], + "disabledMcpjsonServers": ["filesystem"] +} +``` + +## Common Server Examples + +### GitHub + +```bash +claude mcp add --transport http github https://api.githubcopilot.com/mcp/ +``` + +### Sentry + +```bash +claude mcp add --transport http sentry https://mcp.sentry.dev/mcp +``` + +### PostgreSQL Database + +```bash +claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \ + --dsn "postgresql://user:pass@localhost:5432/mydb" +``` + +### Filesystem (Local) + +```bash +claude mcp add --transport stdio filesystem -- npx -y @anthropics/mcp-filesystem +``` + +## Troubleshooting + +1. **Server not connecting**: Check with `/mcp` command in Claude Code +2. **Permission denied**: May need to re-authenticate with `/mcp` +3. **Changes not applying**: Restart Claude Code after config changes