Claude-skill-registry-data mcp-server-installer
Add MCP servers to Claude Code configuration at user level (~/.claude). Supports stdio, HTTP, and SSE transports with environment variable prompting. Use when "add mcp server", "install mcp", "configure mcp server", "new mcp", or "setup mcp server".
git clone https://github.com/majiayu000/claude-skill-registry-data
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/mcp-server-installer" ~/.claude/skills/majiayu000-claude-skill-registry-data-mcp-server-installer && rm -rf "$T"
data/mcp-server-installer/SKILL.mdMCP Server Installer
Autonomously add MCP (Model Context Protocol) servers to Claude Code configuration at the user level (
~/.claude/mcp.json).
When to Activate
- "add mcp server"
- "install mcp", "configure mcp"
- "new mcp server", "setup mcp"
- "add [server-name] mcp"
- User provides MCP server configuration JSON
Process
Step 1: Gather Server Information
Ask user for:
-
Server name (e.g., "mobile-mcp-server")
- Must be lowercase with hyphens
- Will be used as the key in mcpServers object
-
Transport type:
- Local command execution (most common)stdio
- Remote HTTP serverhttp
- Server-Sent Events (deprecated but supported)sse
-
Based on transport type:
For stdio:
- Command (e.g., "npx", "node", "/usr/local/bin/server")
- Arguments array (e.g.,
)["@daipham/mobile-mcp-server@latest"] - Environment variables (if needed)
For http:
- URL (e.g., "https://api.example.com/mcp")
- Headers (optional, e.g.,
){"Authorization": "Bearer ${API_KEY}"}
For sse:
- URL (e.g., "https://api.example.com/sse")
- Headers (optional)
Step 2: Collect Environment Variables
Always ask user: "Does this MCP server require any environment variables?"
If yes, for each variable:
- Variable name (e.g., "API_KEY", "DATABASE_URL")
- Description/purpose
- Whether it's required or optional
- Default value (if optional)
Document in output: List all required environment variables with instructions on where to set them.
Step 3: Read Existing Configuration
Check for existing
.mcp.json at user level:
cat ~/.claude/mcp.json
If file doesn't exist, create new structure. If exists, parse and merge.
Step 4: Generate Configuration
Use templates from
templates.md to generate the server configuration based on transport type.
Apply environment variable syntax:
- Required variable (will error if not set)${VAR}
- Optional variable with default value${VAR:-default}
Step 5: Update Configuration File
Merge strategy:
- Preserve existing servers
- Add new server to
objectmcpServers - Maintain JSON formatting (2-space indent)
- Validate JSON before writing
Write to
~/.claude/mcp.json.
Step 6: Create Environment File Reference
If environment variables are needed, inform user:
⚠️ Environment Variables Required: Set these in your shell profile (~/.zshrc or ~/.bashrc): export VAR_NAME="value" export ANOTHER_VAR="value" Or create a project-specific .env file and reference it: "envFile": "${workspaceFolder}/.env"
Step 7: Validate and Test
Run validation:
claude mcp list
Show the newly added server in the output.
Output Format
✅ MCP Server Added: [server-name] 📁 Configuration: ~/.claude/mcp.json 🔧 Transport: [stdio/http/sse] 📦 Command: [command with args] (if stdio) 🌐 URL: [url] (if http/sse) 📋 Configuration Added: ```json { "server-name": { // configuration here } }
⚠️ Environment Variables Required:
- VAR_NAME: [description]
- ANOTHER_VAR: [description]
💡 Set environment variables:
-
Add to ~/.zshrc or ~/.bashrc: export VAR_NAME="your-value"
-
Or use project .env file: "envFile": "${workspaceFolder}/.env"
✅ Restart Claude Code to activate the new MCP server.
🧪 Test with: claude mcp list
## Error Handling - **Invalid JSON**: Show parsing error, ask user to verify configuration - **Duplicate server name**: Ask if user wants to overwrite existing server - **Missing required fields**: Prompt for missing information - **File permission errors**: Suggest checking ~/.claude directory permissions ## Important Notes 1. **User-level scope**: Servers added at `~/.claude/mcp.json` are available across all projects 2. **Environment variables**: Always prompt for environment variables - many MCP servers require API keys or configuration 3. **Restart required**: Claude Code must be restarted after adding MCP servers 4. **Validation**: Use `claude mcp list` to verify the server was added successfully 5. **Security**: Never log or display actual environment variable values ## Reference See `templates.md` for configuration templates for each transport type.