Qué es un MCP: guía con ejemplos reales y los que uso con Claude Code
Un MCP (Model Context Protocol) es un estándar abierto que permite a un agente de IA, como Claude, conectarse a herramientas y datos externos: tu navegador, Search Console, WordPress o un generador de vídeo. Lo publicó Anthropic el 25 de noviembre de 2024 y desde diciembre de 2025 está bajo la Linux Foundation. Esta guía lo explica con animaciones y con los mensajes reales de dos servidores que he escrito yo, y te cuenta cuáles uso de verdad con Claude Code, medidos en 108 sesiones entre el 10 de septiembre y el 9 de octubre de 2026.
$ claude mcp list Checking MCP server health… ✔ openseo Connected ✔ vidiq Connected ✔ pollo Connected ✔ davinci-resolve Connected > hazme un vídeo del producto con un chico en monopatín ↳ pollo_estimate_generation_cost ↳ ≈ 23 créditos (3 imagen + 20 vídeo)
¿Qué es un MCP?
Un MCP es un estándar abierto para conectar aplicaciones de IA con sistemas externos: datos, herramientas y flujos de trabajo. Así lo define la documentación oficial del protocolo, que lo compara con un puerto USB-C: una sola forma de conectar cualquier dispositivo.
Con un MCP, un agente deja de ser solo conversación. Puede consultar tu Search Console, cambiar el extracto de un post, generar un vídeo o manejar tu navegador, porque cada una de esas herramientas se presenta al agente con el mismo formato. Antes de MCP había que programar una integración distinta para cada par de agente y herramienta.
Soy el agente. El MCP es mi enchufe.
Cliente o host
La aplicación donde hablas con la IA: Claude Code, Claude Desktop, ChatGPT o Cursor.
Servidor MCP
El programa que ofrece las herramientas. Puede ser un archivo en tu ordenador o un servicio en internet.
Herramienta (tool)
Una función que el servidor expone, con nombre, descripción y argumentos. Es lo que el agente decide llamar.
Encajan porque hablan el mismo estándar: no hay que fabricar una pieza distinta para cada pareja.
Qué pasa cuando le pides algo al agente
Elige un ejemplo real. Se reproduce solo al llegar aquí; también puedes ir paso a paso.
Esa animación usa tres casos reales: la prueba de Pollo.ai que enseño en el vídeo Pollo.ai MCP: crear vídeos con IA sin entrar a la web, el servidor de Search Console y el de WordPress que escribí el 8 y el 9 de octubre.
Si todavía no has usado Claude Code, empieza por los primeros pasos.
¿Cómo funciona un MCP por dentro?
Cliente y servidor se hablan con mensajes JSON-RPC 2.0, uno por línea si el servidor corre en tu ordenador: el agente pregunta qué herramientas hay y luego llama a la que necesita.
1 · Descubre
El cliente pregunta qué sabe hacer el servidor.
2 · Lista
El servidor responde con sus herramientas y sus argumentos.
3 · Llama
El agente elige una herramienta y la ejecuta con datos concretos.
4 · Responde
El servidor devuelve el resultado, o un error que el agente puede leer.
El servidor puede ofrecer tres cosas: herramientas (funciones que el modelo ejecuta), recursos (datos de contexto) y prompts (plantillas de mensajes). Mis dos servidores solo ofrecen herramientas. El protocolo define una revisión nueva, la 2026-07-28, donde cada petición lleva su versión y sus capacidades y ya no hay handshake. Las revisiones anteriores (hasta 2025-11-25) empiezan con un initialize. Un servidor puede atender a las dos épocas.
Los mensajes reales, uno a uno
Son las conversaciones que mantiene mi plantilla de servidor con un cliente de prueba. Las respuestas son las que devolvió, con las descripciones abreviadas.
{
"jsonrpc": "2.0",
"id": 1,
"method": "server/discover",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientInfo": {
"name": "probar.py",
"version": "1.0"
},
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}Fíjate en el último intercambio de la revisión anterior: cuando el agente intenta leer ../../etc/passwd, el servidor responde con isError: true y un mensaje que el modelo puede leer para corregirse. El protocolo distingue los errores de la herramienta de los errores del propio protocolo, y esa diferencia importa al escribir tu servidor.
¿En qué se diferencia un MCP de una API, un CLI, una skill o un plugin?
Un MCP es la forma estándar de que un agente descubra y use herramientas; una API es la puerta del servicio, un CLI es un programa de terminal, una skill son instrucciones que el agente carga cuando las necesita y un plugin es un paquete que puede traer todo lo anterior.
El CLI es un atajo lateral: si el agente tiene terminal, puede ejecutar un programa sin pasar por MCP.
| Qué es | Quién lo llama | Mi ejemplo | |
|---|---|---|---|
| API | La interfaz de un servicio para programas | Código que alguien escribe | La API de Search Console, la API REST de WordPress |
| MCP | Estándar para que el agente descubra y llame herramientas, normalmente por encima de una API | El agente, sin código a medida | Mis servidores de Search Console y WordPress |
| CLI | Un programa de terminal | Tú, un script o un agente con terminal | gsc, mi comando de Search Console; pollo, el de Pollo.ai |
| Skill | Instrucciones y scripts que el agente carga cuando hacen falta | El agente, según la tarea | La skill de edición de vídeo |
| Plugin | Un paquete instalable que puede incluir skills, comandos y servidores MCP | El agente | Mis conectores de marketing de Claude Code vienen dentro de un plugin |
¿Qué MCP uso yo de verdad, con cifras?
En 108 sesiones de Claude Code entre el 10 de septiembre y el 9 de octubre de 2026 hice 1.133 llamadas a herramientas MCP en 19 servidores; los cuatro más usados fueron DaVinci Resolve, Claude en Chrome, OpenSEO y vidIQ.
Conté cada llamada en las transcripciones de Claude Code de este ordenador. Cuenta solo Claude Code: no incluye Claude Desktop ni ChatGPT. El veredicto de la última columna es mío y depende de lo que hago, no es una valoración general de la herramienta.
74 %de mis llamadas se concentran en cuatro servidores: DaVinci Resolve, Claude en Chrome, OpenSEO y vidIQ. El resto es puntual o lo descarté.
| MCP y para qué lo uso | Llamadas | Sesiones | Periodo (día/mes) | Veredicto |
|---|---|---|---|---|
Dv DaVinci ResolveControla el editor de vídeo | 337 | 5 | 26/09 → 05/10 | Lo probé a fondo; hoy no es mi vía de edición |
Ch Claude en ChromeManeja mi navegador: clic, formularios, capturas | 172 | 10 | 10/09 → 09/10 | Uso habitual |
OS OpenSEO (el mío, autoalojado)Palabras clave, SERP y seguimiento de posiciones | 171 | 13 | 16/09 → 09/10 | Uso habitual |
vI vidIQPuntuar títulos, buscar y analizar YouTube | 157 | 10 | 17/09 → 09/10 | Uso habitual |
Fc FirecrawlBuscar y leer páginas web | 70 | 9 | 25/09 → 05/10 | Lo usé para investigar; hoy no lo tengo conectado |
Po Pollo.aiGenerar imágenes y vídeos con IA | 69 | 2 | 23/09 → 23/09 | Lo uso para vídeo e imagen de producto |
CC ChatCutEdición de vídeo en la nube | 58 | 1 | 02/10 → 02/10 | Prueba de un día; lo descarté |
Sh Google SheetsLeer y escribir hojas de cálculo | 32 | 1 | 09/10 → 09/10 | Puntual |
Cv CanvaGenerar y leer diseños | 18 | 3 | 13/09 → 07/10 | Puntual |
Ah AhrefsDatos SEO | 12 | 5 | 13/09 → 06/10 | Con mi plan no funciona («Insufficient plan») |
HS HappyScribeTranscripciones | 11 | 4 | 16/09 → 07/10 | Puntual |
Dr Google DriveBuscar y crear archivos | 6 | 2 | 28/09 → 09/10 | Puntual |
Gm GmailBuscar correos | 6 | 3 | 21/09 → 07/10 | Puntual |
M0 Mem0Memoria entre sesiones | 5 | 1 | 25/09 → 28/09 | Puntual |
Ca Google CalendarVer eventos | 5 | 5 | 10/09 → 09/10 | Puntual |
En EnvatoBuscar música | 1 | 1 | 03/10 → 03/10 | Descartado: solo busca, no deja descargar |
Los dos que escribí yo
Search Console
Cuatro herramientas de solo lectura: propiedades, rendimiento, inspección de URL y sitemaps. Reutiliza las funciones de mi CLI y lee las credenciales de un archivo con permisos 600.
WordPress
Cinco herramientas: buscar, leer un post, leer Rank Math, actualizar un post y actualizar Rank Math. Las dos de escritura guardan una copia antes de tocar nada.
No aparecen en la tabla porque están configurados en Claude Desktop y no en Claude Code, que es de donde salen las cifras.
Los que no he usado pero merecen la pena
Estos cuatro no los he probado todavía. Los incluyo porque salen en la documentación oficial o en el directorio de servidores y encajan con lo que hago; los repasaré cuando los use.
GitHub (oficial)
Repositorios, incidencias, pull requests y flujos de trabajo. Hay versión local con Docker y versión remota en vista previa. Documentación: docs.github.com.
Context7 (Upstash)
Documentación actualizada de librerías, para que el agente no use APIs antiguas.
claude mcp add --transport http context7 https://mcp.context7.com/mcp
Cloudflare (oficial)
Documentación, Workers, observabilidad y builds; uso Cloudflare Workers para mi OpenSEO. Hay un servidor por producto, p. ej. https://docs.mcp.cloudflare.com/mcp. Lista oficial.
Playwright (Microsoft)
Manejar un navegador desde el agente, con el árbol de accesibilidad de la página.
claude mcp add playwright npx @playwright/mcp@latest
Para elegir cuáles te hacen falta, el directorio mcpservers.org lista más de 9.800 servidores (consultado el 9 de octubre de 2026), pero la tabla de arriba es la mejor guía: instala uno cada vez, mide si lo usas y quita el que no. Mi stack completo está en mi página de herramientas.
¿Cómo se instala un MCP en Claude Code, Claude Desktop, ChatGPT y Cursor?
En Claude Code, un servidor remoto se añade con claude mcp add --transport http nombre url y uno local con claude mcp add nombre -- comando; después se comprueba con claude mcp list o con /mcp.
# Servidor remoto (HTTP), el recomendado cuando existe claude mcp add --transport http notion https://mcp.notion.com/mcp # Servidor local (stdio): lo que va después de -- es el comando del servidor claude mcp add --scope user notas -- python3 /ruta/absoluta/mi_mcp.py --carpeta /ruta/a/tus/notas # Ver, comprobar y quitar claude mcp list claude mcp get notas claude mcp remove notas
Los comandos son los de la documentación de Claude Code (consultada el 9 de octubre de 2026). El ámbito (--scope) decide dónde se guarda:
| Ámbito | Dónde se carga | Se comparte | Dónde se guarda |
|---|---|---|---|
local (por defecto) | Solo el proyecto actual | No | ~/.claude.json |
project | El proyecto actual | Sí, por git | .mcp.json en la raíz del proyecto |
user | Todos tus proyectos | No | ~/.claude.json |
Los servidores locales van en claude_desktop_config.json, dentro de mcpServers. Haz una copia antes de tocarlo y usa rutas absolutas para el intérprete y el script: la aplicación de escritorio no hereda el PATH de tu terminal. Después reinicia la aplicación.
{
"mcpServers": {
"notas": {
"command": "/usr/bin/python3",
"args": ["/ruta/absoluta/mi_mcp.py", "--carpeta", "/ruta/a/tus/notas"]
}
}
}ChatGPT admite MCP; sus instrucciones oficiales están en la documentación de OpenAI. En el caso de Pollo.ai, su página detalla dos pasos: abrir el plugin de Pollo, pulsar «Add» e iniciar sesión con tu cuenta, y pedirle a ChatGPT que genere una imagen, un vídeo o un audio con Pollo.
Cursor admite MCP; sus instrucciones oficiales están en la documentación de Cursor. No lo he probado, así que no te doy pasos propios.
¿Un MCP local o uno remoto?
Un servidor local corre en tu ordenador y habla por la entrada y salida estándar (stdio); uno remoto está en internet, habla por HTTP y casi siempre te pide iniciar sesión en el navegador una vez.
Local (stdio)
Mis servidores de Search Console y WordPress y la plantilla. Controlas el código y las credenciales, y no dependes de internet para arrancar. Te encargas tú de instalarlo, de las rutas y de actualizarlo.
Remoto (HTTPS + OAuth)
Pollo.ai, OpenSEO o vidIQ. No instalas nada y lo mantiene el proveedor. Dependes de su servicio y de su plan, y la sesión caduca: me ha pasado con OpenSEO el 9 de octubre.
¿Es seguro usar un MCP?
Un MCP puede ejecutar código y tocar tus datos, así que solo se instala el que conoces, con los permisos mínimos y con una copia antes de cualquier escritura.
Con casco y con copia de seguridad.
La documentación de Claude Code añade que debes verificar que confías en cada servidor, porque los que traen contenido de fuera exponen a inyección de instrucciones (prompt injection). Los servidores definidos por proyecto en .mcp.json piden tu aprobación antes de usarse. Y la especificación advierte de que las descripciones y anotaciones de una herramienta se consideran no fiables salvo que vengan de un servidor de confianza.
Lo que hago yo en mis servidores
Empiezo de solo lectura
Mi servidor de Search Console no puede escribir nada: las cuatro herramientas son de lectura y van marcadas como tal.
Copia antes de escribir
El de WordPress guarda el contenido anterior y devuelve la ruta; si la copia falla, no escribe.
Un usuario con lo mínimo
Para WordPress creé un usuario Editor, sin acceso de administrador, con su propia contraseña de aplicación revocable.
Credenciales en un archivo 600
Fuera de cualquier carpeta que se suba a git. Los errores pasan por un filtro que tapa los valores secretos.
Sin herramientas peligrosas
No hay ninguna para borrar, publicar ni tocar usuarios, plugins o ajustes.
Pruebo con datos que no importan
Antes de conectarlo a los de verdad, lo pruebo con un borrador o una carpeta de ejemplo.
Antes de instalar uno de terceros, lee su código o su descripción de permisos, mira quién lo mantiene y empieza con una cuenta de prueba. Y desconfía de una configuración copiada con un token ya pegado: reutilizarla es una fuga esperando a ocurrir.
¿Cómo creo mi propio MCP?
Un servidor MCP mínimo en Python son unas 170 líneas con la biblioteca estándar: lees mensajes JSON de la entrada, respondes con la lista de herramientas y ejecutas la que te pidan.
¡Ahora te toca construir a ti!
Escribí dos así. El primero fue el de Search Console: gsc_mcp.py importa las funciones de mi CLI y solo añade el protocolo. El segundo, el de WordPress, añade copia previa a cada escritura. La plantilla que reparto es una versión mínima de solo lectura: busca y lee notas de una carpeta, y se niega a salirse de ella.
# una tabla de herramientas… HERRAMIENTAS = [ {"name": "buscar_notas", "func": buscar_notas, "description": "Busca un texto en las notas (.md y .txt).", "inputSchema": {"type": "object", "required": ["texto"], "properties": {"texto": {"type": "string"}}}, "annotations": {"readOnlyHint": True}}, ] # …y una función que ejecuta la que te pidan def ejecutar(nombre, args): try: datos = POR_NOMBRE[nombre]["func"](args) return {"content": [{"type": "text", "text": json.dumps(datos)}], "structuredContent": datos, "isError": False} except Exception as e: # un fallo de la herramienta no tumba el servidor return {"content": [{"type": "text", "text": str(e)}], "isError": True}
Qué incluye la plantilla
$ python3 probar.py == Época moderna (2026-07-28) → server/discover ← 2026-07-28 → tools/list ← 2 herramientas → tools/call buscar ← 1 coincidencia == Época anterior (initialize) → initialize ← 2025-06-18 → tools/call leer_nota ← contenido → leer ../../etc/passwd ← rechazado Respuestas con error de protocolo: 0
- 1 · Escribe tu función: recibe un diccionario y devuelve un diccionario.
- 2 · Descríbela bien: el agente decide con el nombre y la descripción. Una descripción vaga hace que la use mal.
- 3 · Prueba el protocolo sin agente: la plantilla trae
probar.py, que habla con el servidor en las dos épocas. - 4 · Conéctalo:
claude mcp add --scope user notas -- python3 /ruta/mi_mcp.py --carpeta /ruta/notasyclaude mcp list.
Comprobado el 9 de octubre de 2026: Claude Code 2.1.293 lo muestra como ✔ Connected. Lo hice tras añadir la compatibilidad con las dos épocas del protocolo: la revisión 2026-07-28 deja fuera a los clientes que solo hablan la nueva con servidores que solo hablan la antigua, y mis dos servidores propios eran de los antiguos. Por eso ahora atienden a las dos.
Plantilla gratis, con el código completo, los datos de prueba y las instrucciones. Licencia MIT, sin datos personales y sin credenciales.
¿Qué errores da un MCP y cómo se arreglan?
Casi todos los fallos son de autorización caducada, de ruta que no existe o de plan que no incluye el acceso; el diagnóstico empieza siempre por claude mcp list, que muestra el estado de cada servidor.
Pistas, pistas… ¿qué dice el error?
«Needs authentication» o «needs you to sign in again»
- Qué significa
- El permiso OAuth no existe o caducó.
- Cómo se arregla
- Ejecuta
/mcp, elige el servidor y autentica; desde el terminal,claude mcp login nombre. - Dónde lo vi
- OpenSEO, el 9 de octubre (2 sesiones).
«Failed to connect»
- Qué significa
- El proceso no arranca o la URL no responde.
- Cómo se arregla
- Mira
claude mcp get nombre, lanza el comando a mano y usa rutas absolutas. - Dónde lo vi
- Estado definido en la documentación de Claude Code.
«Incompatible auth server: does not support dynamic client registration»
- Qué significa
- El servidor de autorización no deja registrarse solo.
- Cómo se arregla
- Registra una aplicación OAuth en el portal del proveedor y añade el servidor con
--client-idy--client-secret. - Dónde lo vi
- HubSpot (2 sesiones).
«MCP endpoint not found» (ENDPOINT_NOT_FOUND)
- Qué significa
- La URL del servidor ya no existe.
- Cómo se arregla
- Quítalo con
claude mcp remove nombreo corrige la URL. - Dónde lo vi
- Un conector de datos que apareció en mis sesiones.
«Insufficient plan»
- Qué significa
- Tu plan del servicio no incluye acceso por API o MCP.
- Cómo se arregla
- Comprueba el plan del proveedor; no es un fallo de la conexión.
- Dónde lo vi
- Ahrefs (6 sesiones).
Funciona en Claude Code pero no en Claude Desktop
- Qué significa
- La aplicación de escritorio no hereda tu PATH.
- Cómo se arregla
- Rutas absolutas del intérprete y del script, y reiniciar la aplicación.
- Dónde lo vi
- Lo evité en mis dos servidores usando rutas absolutas desde el principio.
«Tools are no longer available» a mitad de una sesión
- Qué significa
- El servidor se desconectó o se quitó.
- Cómo se arregla
- Reconecta con
/mcpo reinicia la sesión. - Dónde lo vi
- 15 sesiones.
Aviso de salida de más de 10.000 tokens
- Qué significa
- La herramienta devolvió demasiado texto.
- Cómo se arregla
- Pide menos filas o sube el límite con
MAX_MCP_OUTPUT_TOKENS(por defecto 25.000). - Dónde lo vi
- Documentación de Claude Code.
Un cliente nuevo no conecta con un servidor antiguo
- Qué significa
- El cliente solo habla la revisión 2026-07-28 y el servidor solo la anterior.
- Cómo se arregla
- Haz el servidor de doble época: que atienda
server/discovery tambiéninitialize. - Dónde lo vi
- Lo descubrí al revisar mis servidores.
El texto exacto de cada mensaje cambia según el cliente y la versión; las soluciones de autorización y de variables vienen de la documentación de Claude Code (9 de octubre de 2026).
¿Cuándo no conviene usar un MCP?
No uses un MCP cuando un CLI que ya tienes hace lo mismo y tu agente tiene terminal, ni cuando no vas a repetir la tarea: cada servidor añade herramientas al contexto y una cosa más que mantener.
Si basta un comando, usa el comando.
Cuando un CLI basta
En Claude Code, gsc y pollo funcionan por terminal sin servidor MCP. Envolví Search Console en un MCP solo porque Claude Desktop lo necesita.
Cuando la tarea es única
Para generar un solo vídeo, entrar en la web de Pollo.ai es más directo. Lo expliqué en el artículo de Pollo.ai MCP.
Cuando la salida es enorme
Claude Code avisa si una herramienta devuelve más de 10.000 tokens y corta en 25.000 por defecto: conviene pedir menos datos.
Cuando tu plan no incluye la integración
Con mi plan de Ahrefs el MCP responde «Insufficient plan». Para datos SEO uso OpenSEO, que cuento en OpenSEO frente a SEMrush.
Glosario de MCP
- MCP
- Model Context Protocol: el estándar abierto que conecta agentes de IA con herramientas y datos.
- Host o cliente
- La aplicación donde usas la IA y que se conecta a los servidores.
- Servidor MCP
- El programa o servicio que expone herramientas, recursos o prompts.
- Herramienta (tool)
- Una función con nombre, descripción y argumentos que el agente puede llamar.
- Recurso
- Datos de contexto que el servidor pone a disposición del agente o del usuario.
- Prompt
- Una plantilla de mensaje que el servidor ofrece para el usuario.
- stdio
- El transporte local: el servidor es un proceso que lee de la entrada estándar y escribe en la salida estándar.
- Streamable HTTP
- El transporte remoto: el servidor está en una URL y habla por HTTPS.
- JSON-RPC 2.0
- El formato de los mensajes: peticiones con método y parámetros, respuestas con resultado o error.
- OAuth
- El sistema de inicio de sesión que usan los servidores remotos para darte permisos sin compartir tu contraseña.
- Prompt injection
- Texto malicioso dentro de un contenido externo que intenta darle órdenes al agente.
- server/discover
- La petición de la revisión 2026-07-28 con la que un cliente pregunta qué versiones y capacidades ofrece un servidor.
Preguntas rápidas sobre MCP
¿MCP es lo mismo que una API?
¿Quién creó el MCP?
¿Qué MCP merece la pena instalar primero?
¿Un MCP es gratis?
¿Puedo usar MCP sin saber programar?
¿Cuántos MCP puedo tener conectados?
¿Funciona MCP con ChatGPT?
Aprende a dominar tus agentes de IA
Entra en mi comunidad de Skool: planteo cada MCP y cada herramienta como aquí, con datos medidos y sin humo.
¡Nos vemos dentro!
Más guías de agentes y MCP
Fuentes: documentación del protocolo (especificación 2026-07-28), anuncio de Anthropic del 25 de noviembre de 2024, documentación de MCP en Claude Code y datos propios medidos del 10 de septiembre al 9 de octubre de 2026. Gobierno del protocolo: Linuxiac y eeNews Europe.