El archivo de configuración MCP
Los MCP se configuran en un archivo JSON que le indica a Claude Code qué servidores MCP lanzar y cómo conectarlos. Existen dos niveles de configuración: global, para tus herramientas personales, y por proyecto, para el stack técnico de cada repositorio.
Configuración global
El archivo ~/.claude/settings.json contiene los MCP disponibles en todos tus proyectos. Aquí colocas los MCP genéricos (Gmail, Slack, Calendar) y los tokens personales.
Configuración por proyecto
El archivo .mcp.json en la raíz de tu proyecto contiene los MCP específicos de ese proyecto. Aquí colocas los MCP ligados al desarrollo (Context7, Sentry, base de datos del proyecto).
Estructura del archivo .mcp.json
{"mcpServers": {"nombre-del-mcp": {"command": "npx","args": ["-y", "@package/mcp-server"],"env": {"API_KEY": "tu-clave-aqui"}}}}
Cada entrada en mcpServers define un MCP con:
command: el comando para lanzar el servidor MCP (npx,uvx,docker, o una ruta a un binario)args: los argumentos que se pasan al comando (el paquete npm, las opciones de configuración)env(opcional): las variables de entorno necesarias (tokens, claves API)
Instalación de un MCP: los tres métodos
Método 1: con el comando claude mcp add (recomendado)
La forma más simple de instalar un MCP. Claude Code se encarga de todo.
# Sintaxis generalclaude mcp add <nombre> -- <comando> <args...># Ejemplo: añadir Context7claude mcp add context7 -- npx -y @upstash/context7-mcp# Ejemplo: añadir GitHub con un tokenclaude mcp add github -- npx -y @modelcontextprotocol/server-github# Ejemplo: añadir un MCP con variables de entornoclaude mcp add slack -e SLACK_BOT_TOKEN=xoxb-tu-token -- npx -y @modelcontextprotocol/server-slack
Método 2: editar el archivo JSON manualmente
Para un control total, edita directamente el archivo de configuración.
{"mcpServers": {"context7": {"command": "npx","args": ["-y", "@upstash/context7-mcp"]},"github": {"command": "npx","args": ["-y", "@modelcontextprotocol/server-github"],"env": {"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_tu_token"}}}}
Método 3: con Docker (para MCP complejos)
Algunos MCP necesitan dependencias específicas. Docker lo aísla todo de forma limpia.
{"mcpServers": {"postgres": {"command": "docker","args": ["run", "-i", "--rm","-e", "DATABASE_URL","mcp/postgres"],"env": {"DATABASE_URL": "postgresql://user:pass@host:5432/dbname"}}}}
Configuración dentro de Claude Code
Comprobar los MCP instalados
Después de añadir un MCP, reinicia Claude Code y verifica que se haya conectado correctamente.
# Listar todos los MCP configuradosclaude mcp list# Resultado esperado:# context7: connected# Tools: query-docs, resolve-library-id# github: connected# Tools: list_issues, create_pull_request, search_code, ...# Eliminar un MCPclaude mcp remove <nombre># Ver los detalles de un MCPclaude mcp get <nombre>
Alcance de la configuración
# Añadir un MCP a nivel de proyecto (por defecto)claude mcp add context7 -- npx -y @upstash/context7-mcp# Añadir un MCP a nivel global (todos los proyectos)claude mcp add context7 --scope global -- npx -y @upstash/context7-mcp# Añadir un MCP a nivel de usuario (para este usuario)claude mcp add context7 --scope user -- npx -y @upstash/context7-mcp
Buena práctica: separar global y proyecto
Coloca los MCP universales (Gmail, Slack, Calendar) en global y los MCP específicos (Context7, Sentry, base de datos) en proyecto. Así, cada proyecto solo tiene acceso a las herramientas que necesita.
Depuración y solución de problemas
El MCP no se conecta
Comprobar que el comando es accesible
# Comprobar que npx está instaladowhich npx# Comprobar que el paquete MCP existenpx -y @upstash/context7-mcp --help# Si usas uvx (Python)which uvx
Consultar los logs de MCP
# Ver los logs de conexión MCPclaude mcp logs# Ver los logs de un MCP concretoclaude mcp logs context7
Comprobar la sintaxis JSON
Una coma de más o unas comillas que falten pueden romperlo todo. Usa un validador JSON.
# Validar tu archivo .mcp.jsoncat .mcp.json | python3 -m json.tool# O con Node.jsnode -e "console.log(JSON.parse(require('fs').readFileSync('.mcp.json','utf8')))"
Probar el MCP manualmente
Puedes lanzar el servidor MCP directamente para ver si arranca correctamente.
# Lanzar el servidor MCP directamentenpx -y @upstash/context7-mcp# Si el servidor arranca y queda a la espera de entradas stdin, va bien# Ctrl+C para salir
Errores habituales y soluciones
| Error | Causa probable | Solución |
|---|---|---|
command not found: npx | Node.js no instalado | Instalar Node.js 18+ |
ENOENT | El paquete MCP no existe | Comprobar el nombre del paquete |
ECONNREFUSED | Token inválido o caducado | Regenerar el token |
timeout | El servidor MCP tarda demasiado en arrancar | Aumentar el timeout o usar Docker |
permission denied | Permisos insuficientes | Comprobar los permisos del token/archivo |
Seguridad de los tokens
Nunca subas tus tokens a un repositorio Git. Usa la configuración global (~/.claude/settings.json) para la información sensible, o variables de entorno del sistema.
Ejemplo completo: configurar tres MCP
Aquí tienes un ejemplo realista de configuración con tres MCP para un proyecto de desarrollo web.
{"mcpServers": {"context7": {"command": "npx","args": ["-y", "@upstash/context7-mcp"]},"playwright": {"command": "npx","args": ["-y", "@playwright/mcp"]},"github": {"command": "npx","args": ["-y", "@modelcontextprotocol/server-github"],"env": {"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."}}}}
Con esta configuración, puedes pedirle a Claude Code:
"Consulta la documentación de Next.js 14, crea una página de error 404 siguiendo las buenas prácticas, pruébala en el navegador y crea una pull request."
Claude Code encadenará automáticamente Context7 (documentación), la edición de archivos (creación de la página), Playwright (prueba visual) y GitHub (pull request).
Próximos pasos
¿Ya tienes tu primer MCP configurado? Descubre ahora los mejores MCP por categoría.
- Entender los MCP: cómo funciona el protocolo MCP explicado
- Mejores MCP de productividad: Gmail, Slack, Calendar, Figma, Lighthouse
- Mejores MCP de desarrollo: Context7, GitHub, Sentry, bases de datos
- Mejores MCP de diseño y UI: Playwright, Chrome DevTools, 21st.dev Magic