Agent skill

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".

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/mcp-server-installer

SKILL.md

MCP 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:

  1. Server name (e.g., "mobile-mcp-server")

    • Must be lowercase with hyphens
    • Will be used as the key in mcpServers object
  2. Transport type:

    • stdio - Local command execution (most common)
    • http - Remote HTTP server
    • sse - Server-Sent Events (deprecated but supported)
  3. 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:

bash
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:

  • ${VAR} - Required variable (will error if not set)
  • ${VAR:-default} - Optional variable with default value

Step 5: Update Configuration File

Merge strategy:

  • Preserve existing servers
  • Add new server to mcpServers object
  • 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:

bash
claude mcp list

Show the newly added server in the output.

Output Format

markdown
โœ… 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:

  1. Add to ~/.zshrc or ~/.bashrc: export VAR_NAME="your-value"

  2. 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.

Didn't find tool you were looking for?

Be as detailed as possible for better results