Skip to content

Guía Completa de Claude Code MCP ​

¿Qué es Claude Code MCP? ​

Claude Code es la herramienta oficial de línea de comandos de IA de Anthropic, mientras MCP (Model Context Protocol) es el protocolo que permite a Claude Code conectarse a herramientas y servicios externos.

En pocas palabras, MCP convierte a Claude Code de un asistente de IA que solo puede leer y escribir archivos locales en un super asistente que puede acceder a GitHub, bases de datos, APIs y servicios en la nube.

¿Por qué usar MCP en Claude Code? ​

Claude Code sin MCP ​

text
Lo que puedes hacer:
✓ Leer archivos locales
✓ Editar código
✓ Ejecutar comandos
✓ Usar herramientas Bash

Lo que no puedes hacer:
✗ Ver tus Issues de GitHub
✗ Acceder a una base de datos en la nube
✗ Llamar a APIs externas
✗ Obtener el clima en tiempo real

Claude Code con MCP ​

text
Lo que puedes hacer:
✓ Todas las funciones originales
✓ Ver / crear Issues y PRs de GitHub
✓ Consultar bases de datos SQLite y PostgreSQL
✓ Acceder a servicios externos como Notion y Slack
✓ Obtener datos de clima y mapas en tiempo real
✓ Automatización del navegador
✓ ...y más

Inicio Rápido ​

Paso 1: Entender dónde están los archivos de configuración ​

Los archivos de configuración MCP de Claude Code se encuentran en:

NivelRuta del archivo de configuraciónAlcance
Nivel de usuario~/.claude.jsonTodos los proyectos
Nivel de proyecto.claude/mcp.jsonProyecto actual

Se recomienda usar primero la configuración a nivel de proyecto, para que diferentes proyectos puedan usar diferentes servicios MCP.

Paso 2: Añadir servidores MCP con lenguaje natural ​

En Claude Code, no necesitas editar manualmente los archivos de configuración ni memorizar comandos. Puedes describir lo que quieres en lenguaje natural:

text
Tú: Ayúdame a añadir un servidor MCP de GitHub. Mi token es ghp_xxx

Claude: Te ayudaré a configurar el servidor MCP de GitHub...

[Actualiza automáticamente .claude/mcp.json]
text
Tú: Añade un servidor de base de datos SQLite. El archivo de base de datos está en ./data/app.db

Claude: Bien, configuraré el servidor MCP de SQLite...
text
Tú: Añade un servidor MCP tipo HTTP con la dirección https://api.example.com/mcp

Claude: Añadiré ese servidor MCP remoto...

Paso 3: Verificar la configuración ​

Pregunta directamente a Claude Code:

text
Tú: ¿Qué servidores MCP están disponibles ahora?

Claude: Servidores MCP actualmente configurados:
• github - Integración con GitHub
• sqlite - Base de datos SQLite
• filesystem - Acceso al sistema de archivos

O usa el comando de diagnóstico:

text
/doctor

Paso 4: Comenzar a usarlo ​

Una vez que la configuración tenga éxito, puedes llamar funciones MCP directamente con lenguaje natural:

text
Tú: Ayúdame a crear un Issue en GitHub

Claude: Puedo ayudarte a crear un Issue de GitHub. Por favor dime:
- la dirección del repositorio, por ejemplo owner/repo
- el título del Issue
- la descripción del Issue

Gestión en lenguaje natural en Claude Code ​

Ver y gestionar servidores MCP ​

Puedes interactuar con Claude Code completamente en lenguaje natural:

text
Tú: Lista todos los servidores MCP configurados

Tú: Verifica el estado de conexión de los servidores MCP

Tú: Elimina el servidor MCP llamado notion

Tú: Actualiza el token del servidor github

Diagnosticar problemas ​

Cuando encuentres problemas:

text
Tú: Revisa qué hay de malo con la conexión MCP

Claude: [ejecutará diagnósticos automáticamente, analizará archivos de configuración y verificará el estado del servidor]

Métodos de configuración en detalle ​

Configuración a nivel de usuario, global ​

Edita ~/.claude.json:

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/tunombre/Documents"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "tu-token"
      }
    }
  }
}

Configuración a nivel de proyecto, recomendada ​

Edita .claude/mcp.json en la raíz del proyecto:

json
{
  "mcpServers": {
    "project-db": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data/app.db"]
    }
  }
}

Ventajas de la configuración a nivel de proyecto:

  • Los miembros del equipo pueden compartir la configuración commitiéndola a Git
  • Diferentes proyectos pueden usar diferentes servicios MCP
  • La configuración es más flexible y no contamina los ajustes globales

Modos de transporte ​

Claude Code soporta tres modos de transporte:

STDIO, proceso local ​

json
{
  "mcpServers": {
    "local-tool": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
    }
  }
}

HTTP, servicio remoto ​

json
{
  "mcpServers": {
    "remote-api": {
      "url": "https://api.example.com/mcp",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer tu-token"
      }
    }
  }
}

SSE, eventos enviados por el servidor ​

json
{
  "mcpServers": {
    "streaming": {
      "url": "https://api.example.com/sse",
      "transport": "sse"
    }
  }
}

Ejemplos prácticos ​

Ejemplo 1: Automatización de flujo de trabajo con GitHub ​

text
Tú: Ayúdame a enviar los cambios actuales a GitHub, luego crea un PR titulado "Añadir nueva función"

Claude:
1. Verificar estado actual de git...
2. Crear nueva rama feature/new-feature...
3. Hacer commit de los cambios...
4. Enviar al remoto...
5. Llamar github_create_pull_request para crear el PR...
6. PR creado: https://github.com/owner/repo/pull/123

Ejemplo 2: Consulta de base de datos ​

text
Tú: Consulta los 10 usuarios más recién registrados en la base de datos

Claude:
1. Conectar a la base de datos SQLite...
2. Ejecutar consulta: SELECT * FROM users ORDER BY created_at DESC LIMIT 10
3. Retornar resultados:
   - Zhang San (zhang@example.com) - 2025-02-28
   - Li Si (li@example.com) - 2025-02-27
   ...

Ejemplo 3: Captura de pantalla y análisis de página web ​

text
Tú: Abre https://example.com, toma una captura de pantalla y analiza el diseño de la página

Claude:
1. Iniciar navegador...
2. Navegar a https://example.com...
3. Capturar captura de pantalla...
4. [Retorna captura de pantalla]
5. Análisis del diseño de la página:
   - El layout usa un diseño centrado con ancho máximo de 1200px
   - El color principal es azul (#3b82f6)
   - La barra de navegación está fija en la parte superior
   ...

Ejemplo 4: Integración con Notion ​

text
Tú: Guarda las notas que acabo de escribir en Notion

Claude:
1. Usar el servidor MCP de Notion...
2. Crear una nueva página...
3. Guardado: https://notion.so/page/xxx

Consejos de depuración ​

Diagnosticar con lenguaje natural ​

Cuando algo salga mal, simplemente díselo directamente a Claude Code:

text
Tú: Mi servidor MCP no puede conectarse. Por favor revísalo

Tú: La llamada a la herramienta MCP de GitHub falló. ¿Cuál es la razón?

Tú: ¿Por qué el servidor sqlite siempre muestra "conectando"?

Claude Code automáticamente:

  1. Verificará el formato del archivo de configuración
  2. Validará las variables de entorno
  3. Probará la conexión del servidor
  4. Proporcionará sugerencias concretas de solución

Solución de problemas comunes ​

ProblemaCausa posibleSolución
Servidor no conectadoError de formato en archivo de configuraciónVerificar sintaxis JSON
Herramienta no puede ser llamadaPermisos insuficientesVerificar variables de entorno
Tiempo de conexión agotadoProblema de redVerificar URL o red
Proceso se bloqueaBug en el código del servidorVerificar logs del servidor

Comando de diagnóstico manual ​

text
/doctor

Ejemplo de salida:

text
Informe de Diagnóstico del Sistema:
===============

Claude Code: v2.5.0 ✓
Node.js: v20.0.0 ✓

Estado del servidor MCP:
• github: ✓ Conectado (12 herramientas)
• sqlite: ✗ Conexión fallida - Archivo de base de datos no encontrado
• puppeteer: ✓ Conectado (8 herramientas)

Sugerencias:
1. Verifica si la ruta de la base de datos sqlite es correcta
2. Asegúrate de que el formato de .claude/mcp.json sea correcto

Mejores prácticas ​

1. Preferir la configuración a nivel de proyecto ​

¿Por qué se recomienda la configuración a nivel de proyecto?

Diferentes proyectos a menudo necesitan diferentes servicios MCP. Por ejemplo, un proyecto frontend puede necesitar herramientas de prueba de navegador, mientras un proyecto backend puede necesitar conexiones a bases de datos. Con la configuración a nivel de proyecto, cada proyecto puede tener su propio conjunto dedicado de servidores MCP, evitando el caos de una gran configuración global.

Más importante aún, la configuración a nivel de proyecto puede ser commitiada a Git. Después de que los miembros del equipo clonen el proyecto, pueden usar directamente los mismos servicios MCP sin reconfigurar todo.

text
Proyecto A, proyecto frontend -> .claude/mcp.json contiene MCP de prueba de navegador
Proyecto B, proyecto backend -> .claude/mcp.json contiene MCP de base de datos

2. Almacenar información sensible en variables de entorno ​

Nunca codifiques secretos en el archivo de configuración.

Los archivos de configuración pueden ser accidentalmente commitiados a Git y filtrar claves. El enfoque correcto es almacenar valores sensibles en variables de entorno y solo referenciar los nombres de las variables desde el archivo de configuración. De esa manera, incluso si el archivo de configuración se hace público, los secretos reales siguen ocultos.

json
{
  "env": {
    "GITHUB_TOKEN": "$GITHUB_TOKEN",
    "GITHUB_TOKEN": "ghp_abc123"
  }
}

La primera forma es buena porque lee de la variable de entorno. La segunda forma es mala porque codifica un secreto directamente.

3. Fijar versiones ​

¿Por qué necesitas fijar versiones?

Por defecto, npx -y siempre usará la última versión de un servidor MCP. Esto puede causar problemas: una nueva versión puede introducir cambios rompedores, o un paquete puede ser eliminado o renombrado repentinamente.

Al añadir @version al nombre del paquete, te aseguras de que siempre se use una versión validada, reduciendo sorpresas causadas por actualizaciones automáticas.

json
{
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-github@1.2.3"]
}

4. Documentar tu configuración MCP ​

Ayuda a los compañeros a entender la configuración MCP rápidamente

Cuando un proyecto incluye múltiples servidores MCP, los nuevos miembros del equipo pueden no entender para qué sirve cada servidor o qué configuración requiere. Crear un README.md bajo el directorio .claude/ que explique el propósito de cada servidor, la configuración requerida y cómo obtener credenciales puede reducir significativamente el costo de comunicación.

Crea .claude/README.md en tu proyecto:

markdown
# Notas de Configuración MCP

Servidores MCP usados en este proyecto:

## github
Usado para automatización de GitHub. Requiere GITHUB_TOKEN.

## sqlite
Se conecta a ./data/app.db para consultar y modificar datos.

## puppeteer
Usado para pruebas E2E.

Claude Code vs Claude Desktop ​

CaracterísticaClaude CodeClaude Desktop
Archivo de configuración~/.claude.json o .claude/mcp.jsonclaude_desktop_config.json
Configuración a nivel de proyecto✓ Soportado✗ No soportado
Gestión en lenguaje natural✓ Soportado✗ Requiere edición manual
Diagnósticos✓ /doctor✗ Ninguno
Recarga en caliente✓ Automática✗ Requiere reinicio de app
Casos de usoFlujo de trabajo de desarrollo, CI/CDUso diario, tareas de oficina

Servidores MCP comunes ​

💡 Para la lista completa de servidores MCP, por favor refiérete al apéndice: Directorio de Servidores MCP

Servidor GitHub ​

Función: Issues, PRs, gestión de repositorios

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "tu-token"
      }
    }
  }
}

Obtener token de: https://github.com/settings/tokens

Servidor SQLite ​

Función: Consultar y gestionar bases de datos SQLite

json
{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data/database.db"]
    }
  }
}

Servidor Filesystem ​

Función: Acceder a archivos dentro de un directorio específico

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/tunombre/Documents"]
    }
  }
}

Automatización de navegador Puppeteer ​

Función: Control del navegador, capturas de pantalla, pruebas automatizadas

json
{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
    }
  }
}

Servidor de búsqueda Brave ​

Función: Búsqueda web

json
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "tu-brave-api-key"
      }
    }
  }
}

Recursos de referencia ​

Documentación oficial ​

Servidores oficiales ​

Artículos tutoriales ​

Guías de configuración ​

Tutoriales de desarrollo ​

Recursos de servidores MCP ​

Servicios de mapas y clima ​

Recursos de la comunidad ​

Casos de aplicación en el mundo real ​