Todos los recursos

Registra un servidor MCP para que Claude Code deje de adivinar sobre tu base de datos, tu API o tu sistema de archivos y llame herramientas reales, con alcance acotado, sin filtrar secretos y versionado en el repo.

Conecta un servidor MCP a Claude Code

En resumen

  • MCP es la capa adaptadora que le permite a Claude Code actuar sobre sistemas reales en vez de solo describir lo que haría.
  • Registra un servidor con «claude mcp add» y confírmalo con «/mcp». Si una herramienta nunca se dispara, lo más probable es que el servidor no esté conectado.
  • Elige bien el alcance: el de proyecto vive en «.mcp.json» y viaja con el repo; el de usuario es solo para tus herramientas personales.
  • Pasa los secretos como variables de entorno en el propio comando add, nunca escritos a mano en un string que vas a subir a git.
  • Arranca cada servidor en modo read-only cuando lo soporte, y amplía permisos una vez que confíes en la integración.

Recién instalado, Claude Code razona muy bien pero no tiene con qué tocar nada. Puede describir el SQL que correría, la API que llamaría o el archivo que leería, pero no puede ejecutar nada de eso sin un adaptador. El Model Context Protocol (MCP) es justamente eso: un proceso pequeño con el que Claude Code habla a través de una interfaz estándar para correr herramientas reales en vez de adivinar. Esta guía recorre el registro de un servidor MCP de punta a punta: cómo elegirlo, definirle el alcance, pasarle secretos de forma segura, verificar la conexión y evitar las fallas que hacen que un servidor parezca "roto" cuando en realidad lo único que pasa es que no está conectado.

01 · Qué es MCP en realidad (y cuándo conviene usarlo)

MCP es un estándar liviano para conectar un modelo con capacidades externas. Un servidor expone un conjunto de herramientas (y a veces recursos y prompts); Claude Code es el cliente que descubre esas herramientas y las llama por ti. La gracia del estándar es que no tienes que escribir una integración a medida para cada herramienta. Todo lo que hable MCP se conecta a Claude Code de la misma forma, y ese mismo servidor también funciona en otros clientes MCP.

Recurre a MCP cuando quieras que Claude actúe, no solo que sugiera. Consultar una base de datos en Supabase, crear un registro en tu gestor de tickets, pegarle a una API interna, leer más allá del directorio de trabajo: todo eso son efectos secundarios, y un efecto secundario necesita una herramienta. Si lo único que necesitas es un prompt reutilizable o una convención del proyecto, montar un servidor MCP es demasiado; un comando slash o una entrada en CLAUDE.md es mucho más liviano. La concesión, dicho sin rodeos: cada servidor que agregas es un proceso más, un conjunto de permisos más y una cosa más que puede filtrar un secreto o hacer algo irreversible. Agrégalos con criterio.

En la práctica te vas a topar con dos formas de transporte. Los servidores stdio son procesos locales que Claude Code arranca y con los que habla por entrada/salida estándar; así corre la mayoría de los paquetes de npm. Los servidores HTTP/SSE son endpoints remotos a los que apuntas por URL, útiles para servicios alojados e infraestructura compartida del equipo. Casi toda esta guía usa stdio porque es el caso más común, pero las reglas de alcance y de secretos aplican a los dos por igual.

Nota

MCP le da al modelo una palanca real sobre tus sistemas. Trata cada servidor que agregas con el mismo cuidado con que tratarías un script que tuviera ese mismo acceso, porque, en el fondo, es justo eso.

02 · Requisitos previos y un modelo mental de 60 segundos

Antes de agregar nada, ten esto listo:

  1. Claude Code instalado y con sesión iniciada. Corre claude dentro de un directorio de proyecto y confirma que arranca.
  2. El runtime que el servidor necesita. La mayoría de los servidores stdio vienen como paquetes de npm que arrancas con npx, así que necesitas Node.js en tu máquina. Los servidores en Python suelen usar uvx o pipx.
  3. Una credencial real para lo que vas a conectar: el connection string de una base de datos, una API key, un token de acceso. Tenla a mano, pero evita pegarla en cualquier lado donde pueda terminar subida al repo.
  4. El working tree de git limpio. Vas a escribir un archivo de configuración que tal vez termines subiendo al repo; parte de un estado conocido para que el diff quede claro.

El modelo mental son cuatro piezas. El servidor es el proceso adaptador. El comando de arranque es cómo Claude Code lo inicia (en stdio) o dónde lo encuentra (en HTTP). El alcance decide dónde se guarda el registro y quién lo ve. Los secretos son las credenciales que se le pasan al servidor al arrancar, fuera de la configuración que se sube al repo. Acierta en esas cuatro y todo lo demás son detalles.

Consejo

Si estás evaluando un servidor que no conoces, lee su README para sacar el nombre exacto del paquete y las variables de entorno que espera antes de correr claude mcp add. Dos minutos de lectura te ahorran una ronda confusa de "¿por qué rayos no conecta esto?".

03 · Registra tu primer servidor

El comando central es claude mcp add: le das un nombre y el comando que arranca el servidor. Todo lo que va después de -- es el comando de arranque, y se pasa tal cual, sin tocar.

claude mcp add supabase -- npx -y @supabase/mcp-server-supabase --read-only

Vale la pena fijarse en un par de cosas. El flag -y le dice a npx que no pida confirmación para instalar, algo que importa porque Claude Code lo arranca sin interacción. El flag --read-only es una opción del propio servidor, no de Claude Code; cuando un servidor ofrece modo read-only, empieza por ahí. Y el nombre (supabase) es lo que vas a ver en /mcp y lo que usarás cuando quieras invocar o depurar el servidor más adelante.

Para un servidor HTTP, en vez de un comando de arranque apuntas a una URL con el flag de transporte:

claude mcp add --transport http internal-api https://mcp.example.internal/v1

Después de agregarlo, reinicia Claude Code para que tome el servidor nuevo y corre el comando slash /mcp. Deberías ver tu servidor en la lista, marcado como conectado, junto con las herramientas que expone. Si aparece ahí y conectado, ya pasaste la parte difícil.

Cómo pasar los secretos bien

Casi todo servidor útil necesita una credencial. Pásala como variable de entorno en la misma línea de claude mcp add con -e, para que el secreto viva en el entorno de tu shell al momento de arrancar y no quede incrustado en un string:

claude mcp add supabase \
  -e SUPABASE_ACCESS_TOKEN="$SUPABASE_ACCESS_TOKEN" \
  -- npx -y @supabase/mcp-server-supabase --read-only

El detalle clave: $SUPABASE_ACCESS_TOKEN se lee de tu entorno, donde ya lo exportaste (desde un .env que no subes al repo, un gestor de secretos o tu perfil de shell). El token en sí nunca aparece en el comando, ni en el historial de tu shell en texto plano, ni, y esto es lo crítico, en el archivo de configuración si ese archivo termina versionado en git. Es la misma disciplina que aplico en todo lugar donde un secreto toca una herramienta, y es justo la idea detrás de Infuse, el gestor de secretos que estoy construyendo: la credencial existe en tiempo de ejecución y en ningún sitio permanente que tú no hayas elegido.

Atención

Nunca pongas un token directo en el string de arranque. Los servidores con alcance de proyecto se escriben en un archivo que viaja con el repo, así que un secreto literal ahí dentro es un secreto subido al repo, justo la fuga que estás tratando de evitar. Si alguna vez pegaste uno, rótalo y vuelve a agregar el servidor usando una variable de entorno.

04 · Define el alcance: proyecto, usuario o local

Dónde vive el registro de un servidor determina quién lo recibe y si viaja con tu código. Claude Code te ofrece varios alcances; los dos que más vas a usar son project y user.

  • El alcance de proyecto escribe el servidor en el .mcp.json de la raíz del repo. Sube ese archivo al repo y cada compañero que clone el repo obtiene el mismo servidor con el mismo comando de arranque. Es el default correcto para todo lo que el proyecto necesita de por sí, como la base de datos que usa la app o la API interna con la que habla.
  • El alcance de usuario registra el servidor solo para ti, en todos tus proyectos, y se guarda en tu config personal en vez del repo. Úsalo para herramientas tuyas que quieres tener en todos lados, como un servidor de notas o una herramienta de búsqueda personal, y que no tienen por qué imponérsele al resto del equipo.

Agrega un servidor con alcance de proyecto de forma explícita para que caiga en .mcp.json:

claude mcp add --scope project github \
  -e GITHUB_TOKEN="$GITHUB_TOKEN" \
  -- npx -y @modelcontextprotocol/server-github

El .mcp.json que subas al repo apuntará a la variable de entorno, no al valor del token, que es exactamente por qué la disciplina de secretos de la sección 03 no es opcional. Una config subida al repo con una referencia a una variable de entorno es segura y reproducible; una config subida al repo con un token literal es un incidente.

Importante

Define el alcance con una sola pregunta: ¿el equipo necesita esto para trabajar en el proyecto? Si la respuesta es sí, alcance de proyecto y sube «.mcp.json» al repo. Si es solo para ti, alcance de usuario. Poner una herramienta personal en alcance de proyecto le ensucia el setup a todo el mundo; poner una herramienta crítica del proyecto en alcance de usuario significa que, sin que nadie se dé cuenta, no existe para quien clone el repo.

05 · Un ejemplo completo, de principio a fin

Digamos que estás armando una feature que necesita consultar tu base de datos en Supabase, y quieres que Claude Code lea el esquema y corra consultas seguras mientras trabajas, sin darle acceso de escritura desde el día uno.

  1. Exporta la credencial en tu shell, sacándola de un archivo que git ignora:
export SUPABASE_ACCESS_TOKEN="$(grep SUPABASE_ACCESS_TOKEN .env.local | cut -d= -f2)"
  1. Agrega el servidor con alcance de proyecto, en read-only:
claude mcp add --scope project supabase \
  -e SUPABASE_ACCESS_TOKEN="$SUPABASE_ACCESS_TOKEN" \
  -- npx -y @supabase/mcp-server-supabase --read-only
  1. Reinicia Claude Code y corre /mcp. Confirma que supabase aparezca conectado y liste herramientas como un lector de esquema y un ejecutor de consultas. Si no aparece conectado, salta a la siguiente sección.

  2. Úsalo. Pídele a Claude que describa una tabla o que cuente filas. La primera vez que llame una herramienta, Claude Code puede pedirte que la apruebes; apruébala para las que confíes. Ahora las respuestas salen de tu base de datos real, no de lo que el modelo supone que será tu esquema.

  3. Sube «.mcp.json» al repo. Tu compañero clona, exporta su propio SUPABASE_ACCESS_TOKEN, reinicia Claude Code y queda con el setup idéntico, sin tener que abrir un hilo en Slack preguntando "¿cómo conectaste esto?".

  4. Amplía después, con criterio. Cuando de verdad necesites escrituras, quita el --read-only, vuelve a agregar el servidor y trata esa ruta como si fuera acceso directo a la base de datos, porque a partir de ahí lo es. Empieza acotado; amplía solo cuando la integración se lo haya ganado.

06 · Errores comunes y cómo depurarlos

Cuando un servidor MCP se porta mal, casi siempre es una de un puñado de cosas. Revísalas en orden.

  • Una herramienta nunca se dispara, sin avisar. La causa habitual es un servidor que no conectó. Corre /mcp primero; un servidor sin conectar, o que ni siquiera aparece en la lista, lo explica al instante. El arreglo rara vez está en el prompt; está en el registro.
  • La conexión falla al arrancar. En servidores stdio esto suele ser un comando de arranque mal armado: una errata en el nombre del paquete, un -y faltante en npx que lo dejó colgado esperando una confirmación, o el runtime (Node, Python) fuera del PATH en el entorno desde el que arrancó Claude Code. Prueba corriendo a mano, en tu terminal, el comando exacto que va después del --; el error que salga ahí es el de verdad.
  • Errores de auth después de conectar. El servidor arrancó, pero la credencial está mala, vencida o en realidad no está en el entorno. Imprime la variable con echo en el mismo shell desde el que lanzaste claude para confirmar que está cargada, y revisa el README del servidor por el nombre exacto de la variable que lee; no están estandarizados de un servidor a otro.
  • La aprobación de primer uso parece una falla. Por defecto, las herramientas de un servidor recién agregado pueden pedirte aprobación la primera vez que se ejecutan. Eso es un control, no un bug. Si una herramienta parece inerte, fíjate si está esperando una aprobación antes de dar por sentado que está rota.
  • Un secreto subido al repo. Si en algún momento encuentras un token literal en .mcp.json, dalo por filtrado: rota la credencial en el proveedor y vuelve a agregar el servidor con una variable de entorno para que el valor nunca vuelva a escribirse en el archivo.

Consejo

Ante la duda, reproduce el comando de arranque del servidor en una terminal normal. Sacar a Claude Code de la ecuación te dice al instante si el problema es el servidor en sí o el registro que lo rodea.

Conectar un servidor MCP es, en el fondo, cuatro decisiones bien tomadas: qué servidor, cómo arranca, en qué alcance vive y cómo le llega su secreto sin subirse jamás al repo. Acierta en esas cuatro y Claude Code deja de adivinar sobre tus sistemas y empieza a trabajar con ellos directamente. Arranca en read-only, verifica con /mcp, sube la config al repo (nunca el secreto) y amplía el acceso solo cuando confíes en lo que hay del otro lado.

Puntos clave

  • MCP convierte a Claude Code de un razonador que describe acciones en uno que las ejecuta; agrega un servidor solo cuando de verdad necesitas un efecto secundario.
  • Todo el trabajo se reduce a cuatro decisiones: qué servidor, cómo arranca, en qué alcance vive y cómo le llega su secreto sin subirse al repo.
  • Reinicia después de agregar y verifica con «/mcp»; un servidor sin conectar es la razón número uno de que las herramientas "no funcionen."
  • Pasa los secretos como variables de entorno para que la config subida al repo sea reproducible y segura; un token literal en «.mcp.json» es una fuga.
  • Empieza en read-only, gánale confianza a la integración y luego amplía permisos, y trata un servidor con escritura como acceso directo al sistema que tiene detrás.

Preguntas frecuentes

¿Cuál es la diferencia entre un servidor MCP y un comando slash o un skill de Claude Code?

Un comando slash es una plantilla de prompt reutilizable; un skill empaqueta instrucciones que Claude carga bajo demanda. Ninguno de los dos le da a Claude una capacidad nueva de actuar sobre sistemas externos. Un servidor MCP hace justo eso: expone herramientas que ejecutan efectos secundarios reales (consultas, llamadas a API, escrituras). Usa un comando o un skill cuando lo que quieres es empaquetar instrucciones; usa MCP cuando necesitas que el modelo de verdad toque algo.

Agregué un servidor pero sus herramientas nunca se ejecutan. ¿Qué está fallando?

Corre «/mcp» primero; la causa más común es un servidor que no está conectado. Si falta o aparece desconectado, el problema está en el registro o en el comando de arranque, no en tu prompt. Busca una errata en el nombre del paquete, un «-y» faltante en «npx» o el runtime fuera del PATH. Confirma también que la herramienta no esté simplemente esperando una aprobación de primer uso: parece que no hace nada, pero en realidad es un control.

¿Es seguro subir .mcp.json al repo?

Sí, siempre que apunte a los secretos a través de variables de entorno en vez de contener el valor literal del token. Un «.mcp.json» subido al repo que apunta a «$MI_TOKEN» es reproducible y seguro; uno con el token real pegado es una credencial filtrada. Si encuentras un secreto literal adentro, rota esa credencial y vuelve a agregar el servidor con «-e».

¿Cuándo conviene usar alcance de proyecto y cuándo alcance de usuario?

Pregúntate si el equipo necesita el servidor para trabajar en el proyecto. Si la respuesta es sí, usa alcance de proyecto para que caiga en «.mcp.json» y viaje con el repo. Si es una herramienta tuya que quieres tener en todos tus proyectos, usa alcance de usuario para no ensuciarle el setup a los demás. El error en cada dirección es simétrico: una herramienta personal impuesta a todo el equipo, o una herramienta crítica del proyecto que sin que nadie lo note no existe para quien clona el repo.

¿Por qué arrancar un servidor en modo read-only?

Porque el costo de equivocarte es asimétrico. Un servidor read-only que falla, a lo sumo, desperdicia una consulta; uno con escritura que falla puede modificar o borrar datos reales. Arrancar en read-only te deja ganarle confianza a la integración, confirmar que conecta, que devuelve resultados sensatos y que tienes claro qué puede alcanzar, antes de darle la capacidad de cambiar cosas. Amplía los permisos solo cuando se los haya ganado, y trata cualquier ruta de servidor con escritura como equivalente a acceso directo al sistema que tiene detrás.

¿Tengo que reiniciar Claude Code después de agregar un servidor?

Sí, reinicia para que Claude Code tome el registro nuevo y luego corre «/mcp» para confirmar que conectó y ver las herramientas que expone. Saltarte el reinicio es una de las razones más frecuentes de que un servidor recién agregado parezca no hacer nada.

¿Prefieres que lo hagamos por ti?

Esto mismo lo construimos para negocios como el tuyo. La primera conversación es gratis y sin compromiso.

Escríbenos por WhatsApp

Escríbenos por WhatsApp

Escanéalo con tu teléfono para escribirnos por WhatsApp.

Escanéalo con tu teléfono para escribirnos por WhatsApp.

¿Estás desde el teléfono y no puedes escanear? Escríbenos a info@ilustrari.com

Primera conversación gratis. Te responde el fundador.

Recursos relacionados