Servidores MCP — Integraciones Externas
Que Es MCP
El Model Context Protocol (MCP) es un estandar abierto que define como los modelos de IA se conectan a herramientas y fuentes de datos externas. En lugar de que Claude este limitado a leer archivos y ejecutar comandos de shell, MCP le permite interactuar con sistemas en vivo -- obteniendo datos de pull requests de GitHub, consultando bases de datos, enviando mensajes de Slack, controlando un navegador web y mucho mas.
MCP funciona a traves de una arquitectura cliente-servidor. Claude Code actua como el cliente, y cada integracion se ejecuta como un servidor MCP separado. Cuando Claude necesita interactuar con GitHub, envia una solicitud al servidor MCP de GitHub. Cuando necesita consultar una base de datos, habla con el servidor MCP de base de datos. Cada servidor expone un conjunto de herramientas que Claude puede invocar igual que sus herramientas integradas.
El resultado es que Claude Code se convierte en un hub de integraciones. Puedes conectarlo a cada servicio en tu stack de desarrollo, y Claude los orquesta todos a traves de lenguaje natural.
Por Que Importa MCP
Sin MCP, obtener datos en vivo en Claude requiere trabajo manual. Ejecutas un comando, copias la salida, la pegas en Claude y repites. MCP elimina este ciclo por completo.
Considera un flujo de trabajo tipico de revision de codigo. Sin MCP, abres el PR en tu navegador, copias el diff, lo pegas en Claude, pides la revision y luego publicas los comentarios de revision manualmente. Con el servidor MCP de GitHub, puedes decir "revisa el PR 42 y publica tu feedback como comentarios de revision" -- Claude obtiene los datos del PR, analiza el diff y publica comentarios directamente, todo en una sola interaccion.
MCP tambien le da a Claude acceso a datos que no puede obtener del sistema de archivos. Contenidos de bases de datos, respuestas de API, conversaciones de Slack, contenido de paginas web -- todo esto vive fuera del directorio de tu proyecto pero es critico para muchas tareas de desarrollo.
Agregando Servidores MCP
La forma mas rapida de agregar un servidor MCP es a traves del CLI:
# Agregar un servidor con nombre y comando de inicio
claude mcp add github -- npx -y @modelcontextprotocol/server-github
# Agregar un servidor con variables de entorno
claude mcp add database -- npx -y @modelcontextprotocol/server-postgres \
--connection-string "$DATABASE_URL"
# Agregar un servidor para automatizacion de navegador
claude mcp add browser -- npx -y @anthropic-ai/mcp-server-playwright
Cada comando registra el servidor MCP para que Claude Code lo inicie automaticamente al comienzo de cada sesion. El servidor se ejecuta como un proceso en segundo plano y se comunica con Claude a traves de entrada/salida estandar.
Para ver todos los servidores registrados:
claude mcp list
Para eliminar un servidor:
claude mcp remove github
Configuracion: El Archivo .mcp.json
Para configuraciones MCP a nivel de proyecto que deben compartirse con tu equipo, usa el archivo .mcp.json en la raiz de tu proyecto:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
},
"database": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_CONNECTION": "${DATABASE_URL}"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "./docs", "./config"]
}
}
}
Las variables de entorno usan la sintaxis ${VAR_NAME} y se resuelven desde tu entorno de shell al inicio. Esto significa que puedes hacer commit de .mcp.json al control de versiones sin exponer secretos -- cada desarrollador establece los valores reales en su propio entorno.
Servidores MCP Populares
El ecosistema MCP esta creciendo rapidamente. Aqui estan los servidores mas utiles para desarrollo de software:
GitHub -- Acceso completo a repositorios, pull requests, issues, actions y busqueda de codigo. Claude puede crear PRs, publicar comentarios de revision, gestionar issues y activar workflows.
claude mcp add github -- npx -y @modelcontextprotocol/server-github
Filesystem -- Acceso controlado a directorios fuera de tu proyecto. Util para leer documentacion, archivos de configuracion o recursos compartidos.
PostgreSQL / MySQL -- Consultas directas a base de datos. Claude puede inspeccionar esquemas, ejecutar consultas de lectura y ayudarte a escribir migraciones basadas en las estructuras reales de las tablas.
Slack -- Leer y enviar mensajes en canales de Slack. Claude puede buscar historial de conversaciones, publicar actualizaciones y responder preguntas del equipo.
Brave Search -- Capacidades de busqueda web. Claude puede buscar en internet documentacion, respuestas de Stack Overflow y referencias de librerias.
Playwright -- Automatizacion de navegador. Claude puede navegar paginas web, llenar formularios, tomar capturas de pantalla e interactuar con aplicaciones web.
Memory -- Un grafo de conocimiento que persiste entre sesiones. Claude puede almacenar y recuperar informacion estructurada entre conversaciones.
Configurando el MCP de GitHub
El servidor MCP de GitHub es la integracion mas comunmente usada. Aqui esta una configuracion completa:
-
Genera un token de acceso personal de GitHub con los scopes repo y read:org.
-
Establece el token en tu entorno:
export GITHUB_TOKEN=ghp_tu_token_aqui
- Agrega el servidor:
claude mcp add github -- npx -y @modelcontextprotocol/server-github
- Inicia una sesion de Claude Code y prueba estas interacciones:
claude
> Lista los pull requests abiertos en este repositorio
> Revisa el PR #42 y resume los cambios
> Crea un issue titulado "Refactorizar modulo de auth" con una descripcion de lo que necesita cambiar
> Cuales son las verificaciones fallidas en el PR #38?
Claude ahora tiene acceso completo de lectura/escritura a tu repositorio de GitHub a traves de lenguaje natural. Puede obtener diffs de PRs, leer comentarios de revision, crear issues e incluso activar GitHub Actions.
Configurando un MCP de Base de Datos
Conectar Claude a tu base de datos desbloquea capacidades poderosas para analisis de esquemas, depuracion de consultas y planificacion de migraciones:
# Establece tu cadena de conexion
export DATABASE_URL="postgresql://user:password@localhost:5432/myapp"
# Agrega el servidor
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres \
--connection-string "$DATABASE_URL"
Ahora puedes hacerle preguntas a Claude sobre tus datos en vivo:
claude
> Muestrame el esquema de las tablas users y orders
> Escribe una consulta para encontrar usuarios que hicieron mas de 5 pedidos en el ultimo mes
> Que indices existen en la tabla orders? Falta alguno para las consultas comunes?
Ten cuidado con los servidores MCP de base de datos en entornos de produccion. Considera usar un usuario de base de datos de solo lectura o conectarte a una replica de staging en lugar de produccion.
Soporte OAuth
Algunos servidores MCP soportan autenticacion OAuth para servicios que lo requieren. Cuando agregas un servidor habilitado con OAuth, Claude Code te guiara a traves del flujo de autenticacion -- tipicamente abriendo una ventana de navegador para que inicies sesion y autorices el acceso.
Esto es comun para servidores que se integran con Google Workspace, Microsoft 365, productos de Atlassian y otros servicios empresariales que usan OAuth 2.0.
Creando Servidores MCP Personalizados
Si ningun servidor existente cubre tu caso de uso, puedes construir el tuyo propio. Los servidores MCP se comunican a traves de uno de tres protocolos de transporte:
stdio -- Entrada/salida estandar. El servidor lee mensajes JSON-RPC desde stdin y escribe respuestas en stdout. Este es el transporte mas simple y el que la mayoria de herramientas CLI usan.
SSE (Server-Sent Events) -- Streaming basado en HTTP. El servidor se ejecuta como un endpoint HTTP que transmite eventos al cliente. Bueno para servidores remotos.
HTTP -- Solicitud/respuesta HTTP estandar. Cada llamada a herramienta es una solicitud HTTP separada. El mas simple de desplegar pero no soporta streaming.
Un servidor MCP minimo en Node.js se ve asi:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new McpServer({
name: "my-custom-server",
version: "1.0.0",
});
// Registrar una herramienta
server.tool(
"get_weather",
"Get the current weather for a city",
{ city: { type: "string", description: "City name" } },
async ({ city }) => {
// Tu logica aqui — obtener datos del clima, consultar una API, etc.
return {
content: [
{ type: "text", text: `Clima en ${city}: 22C, soleado` },
],
};
}
);
// Iniciar el servidor
const transport = new StdioServerTransport();
await server.connect(transport);
Registralo con Claude Code:
claude mcp add weather -- node ./my-mcp-servers/weather-server.js
Ahora Claude puede llamar a get_weather tan naturalmente como cualquier otra herramienta.
Consideraciones de Seguridad
Los servidores MCP se ejecutan con tus permisos de usuario. Un servidor MCP de base de datos puede ejecutar cualquier consulta que tu cadena de conexion permita. Un servidor de filesystem puede leer cualquier directorio al que le des acceso. Un servidor de GitHub puede crear PRs y modificar issues usando tu token.
Antes de instalar cualquier servidor MCP de terceros, revisa su codigo fuente. Entiende que permisos necesita y que acciones puede tomar. Usa el principio de minimo privilegio: otorga acceso de solo lectura cuando sea posible, restringe el acceso al filesystem a directorios especificos y usa tokens de API con alcance limitado en lugar de tokens de acceso completo.
Para entornos de equipo, define tu configuracion MCP en .mcp.json y revisala en code review igual que cualquier otra configuracion de infraestructura. Documenta que servidores se usan, por que son necesarios y que permisos requieren.
Solucion de Problemas
Cuando un servidor MCP no esta funcionando, comienza con estos pasos de diagnostico:
# Listar todos los servidores y su estado
claude mcp list
# Verificar logs del servidor (si el servidor soporta logging)
claude mcp logs github
Los problemas comunes incluyen variables de entorno faltantes (el token no esta configurado), conflictos de version (el servidor requiere una version mas nueva de Node.js) y conflictos de puerto (otro proceso esta usando el mismo puerto para servidores SSE/HTTP).
Prueba este ejercicio: configura el servidor MCP de GitHub para uno de tus repositorios. Inicia una sesion de Claude Code y pide a Claude que liste tus PRs abiertos, resuma el mas reciente y sugiera mejoras. Luego crea un servidor MCP personalizado simple que exponga una sola herramienta -- quizas una que retorne el estado de despliegue de tu proyecto o el endpoint de health check. Registralo con Claude Code y verifica que Claude pueda invocarlo.