MCP servers: cómo configurar en Claude Code

Por Ricardo Gutierrez · · 20 min lectura

En este artículo

  1. Cómo funciona
  2. Configuración paso a paso
  3. Servidores populares
  4. Ejemplo: GitHub MCP
  5. Ejemplo: Filesystem MCP
  6. Ejemplo: Supabase MCP
  7. Ejemplo: Slack MCP
  8. Ejemplo: Browser/Search MCP
  9. Seguridad y buenas prácticas
  10. Troubleshooting completo
  11. Crear tu propio MCP server
  12. Siguiente paso
  13. Preguntas frecuentes
💡 Experiencia del equipo: Tengo 12 MCPs configurados en mi entorno Claude Code: Supabase, GitHub, Docker, Obsidian, Gmail, Google Calendar, n8n, Zapier, filesystem, Exa, Tavily y más. Cada MCP que configuras es una capacidad nueva que Claude Code puede usar de forma autónoma.

Sin MCP, Claude Code solo puede leer archivos y ejecutar comandos de terminal. Con MCP, puede interactuar con GitHub, bases de datos, APIs, navegadores, servicios cloud y más.

MCP en una frase

MCP es el estándar que permite a Claude Code hablar con cualquier herramienta externa. Es como USB para la IA: un conector universal.

Resumen rápido

Guía para configurar MCP servers en Claude Code. Instalación, configuración JSON, servidores populares (GitHub, Supabase, filesystem) y troubleshooting.

Cómo funciona

La arquitectura es sencilla:

  1. Configuras un servidor MCP en tu settings.json
  2. Claude Code inicia el servidor como un proceso hijo
  3. El servidor anuncia sus herramientas disponibles (list tools)
  4. Claude Code usa las herramientas cuando tu tarea lo requiere
  5. El servidor ejecuta la acción y devuelve el resultado

Todo ocurre de forma transparente. No tienes que invocar herramientas manualmente: Claude Code decide cuándo usarlas basándose en tu petición.

El protocolo MCP usa comunicación stdio (standard input/output) por defecto. El servidor es un proceso local que se ejecuta en tu máquina. No hay conexiones de red adicionales (excepto las que el propio servidor haga a APIs externas como GitHub o Supabase). Esto significa que los datos fluyen: tu prompt → Claude Code → proceso MCP local → API externa. Claude Code no envía tus datos a ningún sitio adicional por el hecho de usar MCP.

Configuración paso a paso

Los MCP servers se configuran en .claude/settings.json (por proyecto) o ~/.claude/settings.json (global):

// .claude/settings.json
{
 "mcpServers": {
 "nombre-del-servidor": {
 "command": "comando-para-ejecutar",
 "args": ["argumento1", "argumento2"],
 "env": {
 "API_KEY": "tu-api-key"
 }
 }
 }
}

Cada servidor necesita:

Después de modificar settings.json, reinicia Claude Code con /mcp o cerrando y abriendo la sesión.

Configuración local vs global. Usa .claude/settings.json (dentro del proyecto) para MCPs que solo necesitas en ese proyecto. Usa ~/.claude/settings.json (home) para MCPs que usas en todos los proyectos (como GitHub o filesystem). La configuración local tiene prioridad sobre la global si hay conflicto de nombres.

Servidores populares

Los MCP servers más usados en 2026:

Ejemplo: GitHub MCP

El MCP más útil para desarrollo. Permite a Claude Code interactuar con repositorios sin usar la terminal.

// .claude/settings.json
{
 "mcpServers": {
 "github": {
 "command": "npx",
 "args": ["-y", "@modelcontextprotocol/server-github"],
 "env": {
 "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_tutoken"
 }
 }
 }
}

Cómo obtener el token: GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens. Permisos mínimos recomendados: Contents (read/write), Pull requests (read/write), Issues (read/write). Limita el token a los repos que necesites.

Con este servidor configurado, puedes pedirle a Claude Code:

Claude Code usa las herramientas de GitHub automáticamente sin que tengas que especificar cuál usar.

Ejemplo: Filesystem MCP

// Acceso controlado a directorios específicos
{
 "mcpServers": {
 "filesystem": {
 "command": "npx",
 "args": [
 "-y",
 "@modelcontextprotocol/server-filesystem",
 "/Users/tu-usuario/documentos",
 "/Users/tu-usuario/proyectos"
 ]
 }
 }
}

El servidor filesystem permite a Claude Code acceder a directorios fuera del proyecto actual. Útil cuando necesitas referenciar documentación, configuraciones compartidas, o archivos de otros proyectos.

Importante: solo los directorios que listes en args serán accesibles. Esto es un control de seguridad deliberado. No pongas "/" o tu home completo: limita el acceso a los directorios que realmente necesitas.

Ejemplo: Supabase MCP

Conecta Claude Code directamente con tu proyecto Supabase para ejecutar queries, crear migraciones y gestionar la base de datos.

{
 "mcpServers": {
 "supabase": {
 "command": "npx",
 "args": ["-y", "supabase-mcp-server"],
 "env": {
 "SUPABASE_ACCESS_TOKEN": "sbp_tu_token",
 "SUPABASE_PROJECT_REF": "tu-project-ref"
 }
 }
 }
}

Cómo obtener las credenciales: el Access Token se genera en supabase.com → Account → Access Tokens. El Project Ref es el ID del proyecto visible en la URL del dashboard (las letras después de "project/").

Con Supabase MCP puedes:

Para más detalle, revisa nuestro tutorial completo de MCP + Supabase.

Ejemplo: Slack MCP

Permite a Claude Code leer canales, buscar mensajes y enviar notificaciones.

{
 "mcpServers": {
 "slack": {
 "command": "npx",
 "args": ["-y", "@anthropic/mcp-server-slack"],
 "env": {
 "SLACK_BOT_TOKEN": "xoxb-tu-bot-token"
 }
 }
 }
}

Cómo configurar el bot: Ve a api.slack.com/apps, crea una nueva app, activa los permisos (scopes) que necesites: channels:read, channels:history, chat:write para lo básico. Instala la app en tu workspace y copia el Bot User OAuth Token.

Casos de uso prácticos:

Ejemplo: Browser/Search MCP

Para dar a Claude Code acceso a búsquedas web y contenido actual, hay varias opciones.

Exa (búsqueda semántica):

{
 "mcpServers": {
 "exa": {
 "command": "npx",
 "args": ["-y", "exa-mcp-server"],
 "env": {
 "EXA_API_KEY": "tu-api-key"
 }
 }
 }
}

Tavily (búsqueda + extracción):

{
 "mcpServers": {
 "tavily": {
 "command": "npx",
 "args": ["-y", "tavily-mcp-server"],
 "env": {
 "TAVILY_API_KEY": "tu-api-key"
 }
 }
 }
}

Exa es mejor para búsquedas semánticas (encontrar contenido similar a un concepto). Tavily es mejor para búsquedas factuales + extracción de contenido de páginas web. Ambos tienen planes gratuitos suficientes para uso personal.

Con un MCP de búsqueda configurado, Claude Code puede:

Seguridad y buenas prácticas

Configurar MCPs implica dar acceso a Claude Code a servicios externos. Sigue estas reglas para minimizar riesgos:

1. Principio de mínimo privilegio. Crea tokens con los permisos mínimos necesarios. Si solo necesitas leer repos de GitHub, no des permisos de escritura. Si solo necesitas leer canales de Slack, no des permisos de envío.

2. Tokens por proyecto, no globales. Cuando sea posible, usa tokens diferentes para cada proyecto. Si un token se compromete, el impacto está contenido.

3. Nunca commits con tokens. Añade .claude/settings.json a tu .gitignore. Mejor aún: usa variables de entorno del sistema y referéncialas en settings.json. O usa un fichero .env que settings.json lea.

4. Revisa las acciones. Claude Code pide confirmación antes de ejecutar acciones que modifiquen datos. No aceptes automáticamente: lee qué va a hacer, especialmente con MCPs que pueden escribir datos (Supabase, GitHub, Slack).

5. Rota tokens periódicamente. Especialmente si trabajas en equipo o si el settings.json ha sido visible en algún momento. La mayoría de servicios permiten revocar y recrear tokens sin perder configuración.

Regla de seguridad

Trata cada MCP como darías acceso SSH a un servicio. No des más permisos de los necesarios, no compartas tokens, y revisa lo que el MCP hace antes de confirmar acciones destructivas.

Troubleshooting completo

Problemas comunes al configurar MCP y cómo resolverlos:

"Server failed to start". El comando no se ejecutó. Verifica que el programa existe ejecutando el comando manualmente en terminal. Para MCPs basados en npx, prueba: npx -y @paquete/nombre --help. Si falla, puede ser un problema de Node.js (versión antigua) o de permisos.

"No tools available". El servidor arrancó pero no expone herramientas. Causas comunes: versión incorrecta del paquete, faltan variables de entorno requeridas, o el servidor necesita autenticación que no se configuró. Revisa los logs con /mcp.

API key inválida. El token ha expirado, no tiene los permisos necesarios, o está mal copiado (espacios en blanco al principio/final). Solución: regenera el token y cópialo con cuidado.

Timeout al iniciar. Algunos servidores tardan en arrancar (especialmente los que descargan dependencias con npx la primera vez). Espera 30 segundos y ejecuta /mcp para verificar. La segunda ejecución será más rápida porque npx cachea los paquetes.

Conflicto de nombres. Si tienes dos servidores con el mismo nombre en configuración local y global, el local tiene prioridad. Usa nombres descriptivos y únicos.

El MCP funciona pero Claude Code no lo usa. Claude Code decide cuándo usar cada herramienta. Si crees que debería usarla, menciónala explícitamente: "Usa el MCP de GitHub para crear un PR" en vez de solo "Crea un PR".

Error "permission denied". El token no tiene permisos suficientes para la acción solicitada. Revisa los scopes del token en el servicio correspondiente. Para GitHub, necesitas write en Pull Requests para crear PRs. Para Slack, necesitas chat:write para enviar mensajes.

Usa /mcp dentro de Claude Code para ver el estado de todos los servidores configurados y diagnosticar problemas. Muestra qué servidores están activos, cuáles fallaron y cuántas herramientas expone cada uno.

Crear tu propio MCP server

Si necesitas conectar Claude Code con una herramienta que no tiene MCP oficial, puedes crear el tuyo. El protocolo es abierto y hay SDKs disponibles.

Con TypeScript:

// server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
 name: "mi-servidor",
 version: "1.0.0"
});

// Define una herramienta
server.tool(
 "buscar_productos",
 "Busca productos en el catálogo interno",
 { query: z.string(), limit: z.number().optional() },
 async ({ query, limit }) => {
   // Tu lógica de búsqueda aquí
   const results = await buscarEnCatalogo(query, limit || 10);
   return {
     content: [{ type: "text", text: JSON.stringify(results) }]
   };
 }
);

// Inicia el servidor
const transport = new StdioServerTransport();
await server.connect(transport);

Con Python:

# server.py
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("mi-servidor")

@mcp.tool()
def buscar_productos(query: str, limit: int = 10) -> str:
    """Busca productos en el catálogo interno."""
    results = buscar_en_catalogo(query, limit)
    return json.dumps(results)

if __name__ == "__main__":
    mcp.run()

Después, configúralo en settings.json como cualquier otro MCP:

{
 "mcpServers": {
 "mi-catalogo": {
 "command": "node",
 "args": ["./mcp-servers/server.js"]
 }
 }
}

Los SDKs gestionan toda la comunicación del protocolo. Tú solo defines las herramientas (nombre, descripción, parámetros, lógica). El SDK se encarga de anunciarlas a Claude Code y de serializar/deserializar las llamadas.

Siguiente paso

Configura tu primer MCP server (GitHub es el más útil para empezar). Después explora MCP + Supabase para bases de datos y MCP + GitHub para automatización de repositorios. Si quieres entender la base de Claude Code primero, lee qué es Claude Code.

Preguntas frecuentes

Es seguro dar acceso a Claude Code a mis servicios via MCP?

MCP pide confirmación antes de ejecutar acciones destructivas. Para minimizar riesgos: usa tokens con permisos mínimos (solo lectura cuando sea suficiente), configura MCPs por proyecto (no global) para limitar el alcance, nunca pongas tokens directamente en código que vayas a commitear, y rota tokens periódicamente.

Cómo creo mi propio MCP server?

Necesitas un programa que implemente el protocolo MCP sobre stdio. El SDK oficial (@modelcontextprotocol/sdk en TypeScript, mcp en Python) simplifica el proceso a definir herramientas con nombre, descripción y parámetros. El SDK gestiona toda la comunicación. Un servidor básico se crea en menos de 50 líneas de código.

Puedo usar MCPs con otros clientes que no sean Claude Code?

Sí. MCP es un protocolo abierto. Otros clientes como Cursor, Windsurf y aplicaciones que implementen el protocolo MCP pueden usar los mismos servidores. La configuración varía por cliente, pero los servidores son reutilizables.

Cuántos MCPs puedo tener activos a la vez?

No hay un límite técnico estricto, pero cada MCP es un proceso que consume memoria. En la práctica, 10-15 MCPs funcionan bien. Si notas que Claude Code tarda en iniciar o consume mucha RAM, reduce el número de MCPs globales y usa configuración por proyecto para los que no necesitas siempre.

Configura MCP como un pro

Los 3 primeros módulos de IAcademy son gratis. Incluyen configuración de MCP, servidores esenciales y patrones avanzados.

Empieza gratis

Curso completo: 108 módulos de IA aplicada

11 especializaciones por departamento. Dashboard con progreso. Quizzes y skills desbloqueables. Desde 399 EUR.

Ver precios Acceder al portal