Qué es MCP (Model Context Protocol): guía del protocolo
¿De dónde viene MCP?
MCP fue anunciado por Anthropic en noviembre de 2024 como un estándar abierto para conectar modelos de lenguaje con fuentes de datos externas. La especificación es pública y está en modelcontextprotocol.io.
Desde su lanzamiento fue adoptado por un ecosistema creciente: Claude Desktop, Cursor, Zed, Sourcegraph, Replit, Cline y muchos otros clientes y servidores comunitarios. Hoy existen cientos de servidores MCP públicos (para GitHub, Slack, Postgres, Google Drive, Jira, etc.).
El "USB-C de la IA": ¿qué problema resuelve?
Antes de MCP, cada integración entre un LLM y una herramienta era un desarrollo custom. Si querías que Claude leyera tu GitHub, había que escribir código específico. Si querías que Cursor leyera tu Postgres, otro código distinto. Cada cliente × cada herramienta = una integración diferente.
MCP estandariza eso con dos piezas:
- Servidor MCP: programa que expone capacidades (tools, recursos, prompts) en un formato común.
- Cliente MCP: cualquier aplicación con un LLM (Claude, Cursor, tu propio agente) que sabe cómo hablar con servidores MCP.
Es exactamente la metáfora del USB-C: cualquier dispositivo con puerto USB-C se conecta con cualquier cable USB-C. Cualquier cliente MCP se conecta con cualquier servidor MCP.
💡 La diferencia clave con las integraciones custom: el cliente no necesita saber nada específico del servidor. Descubre sus capacidades al vuelo. Un cliente puede conectarse a un servidor MCP que se creó después que él, sin actualizar nada.
MCP vs Function Calling vs RAG
Esta es la tabla que más gente busca. Los tres conceptos se confunden todo el tiempo porque los tres conectan LLMs con datos externos, pero resuelven problemas distintos.
| Function Calling | RAG | MCP | |
|---|---|---|---|
| Qué es | Capacidad del LLM de invocar funciones predefinidas en respuesta a un prompt | Técnica para recuperar documentos relevantes e inyectarlos en el contexto del prompt | Protocolo estándar para que LLMs se conecten a fuentes externas |
| Qué resuelve | ¿Cómo hace el LLM para hacer cosas (crear tarea, leer DB, enviar email)? | ¿Cómo hace el LLM para saber cosas que no estaban en su entrenamiento? | ¿Cómo se estandariza la conexión LLM ↔ fuente de datos? |
| Nivel | Capacidad del modelo | Patrón de arquitectura | Protocolo de interoperabilidad |
| Ejemplo | "Llama a create_task(title='x') cuando el usuario pida crear una tarea" | "Antes de responder, busca los 5 documentos más parecidos a la pregunta e inclúyelos en el prompt" | "Cualquier agente puede leer mi GitHub si expongo un servidor MCP" |
| ¿Reemplaza a los otros? | No | No | No |
Los tres son complementarios, no excluyentes. Un buen agente moderno combina los tres. La comparativa a fondo está en MCP vs function calling vs RAG. Si quieres ver cómo funciona la recuperación de documentos, lee RAG local explicado sin jerga.