Clase 5 • Junio 2026 • Basado en especificación oficial, código fuente y datos de mercado verificados
El Model Context Protocol (MCP) es un protocolo abierto que define cómo los modelos de lenguaje grandes (LLMs) se conectan con herramientas externas, fuentes de datos, APIs y sistemas. Su nombre completo es revelador: no es solo un protocolo de "tools" — es un protocolo de contexto. Esto significa que no solo permite ejecutar herramientas, sino también inyectar información contextual (documentos, bases de conocimiento, resultados de queries) directamente en el prompt del modelo.
JSON-RPC 2.0, stateful, bidireccional. Bajo Linux Foundation, MIT license.
Cualquier LLM, cualquier proveedor, cualquier lenguaje. 10 SDKs oficiales.
Ecosistema más grande de servidores y herramientas para IA agentica.
Así como LSP estandarizó cómo los editores de código se comunican con lenguajes de programación (un protocolo para todos los editores × todos los lenguajes), MCP estandariza cómo los LLMs se comunican con herramientas y datos (un protocolo para todos los LLMs × todas las herramientas).
Sin MCP, cada plataforma de IA necesita implementar su propio sistema de tools, cada proveedor de herramientas necesita un SDK diferente por plataforma, y los usuarios pierden portabilidad. Con MCP, escribes un server una vez y funciona con cualquier cliente compatible.
MCP tiene una arquitectura de tres capas bien definida, tomando prestados conceptos de LSP pero adaptándolos al contexto de LLMs. Es un protocolo stateful (a diferencia de REST), bidireccional (el server puede hacer solicitudes al host), y negociado (cliente y server acuerdan capacidades al iniciar).
| Capa | Rol | Ejemplos |
|---|---|---|
| Host | Aplicación de IA que inicia la conexión. Es el "usuario" del protocolo: necesita acceso a herramientas y datos. | Claude Desktop, Claude Code, VS Code, OpenCode, Cursor, Windsurf, Continue.dev |
| Client | Conexión 1:1 con un server. El host crea un client por cada server MCP al que se conecta. | Cada conexión MCP en la sesión: un client para cada server configurado |
| Server | Expone herramientas (tools), datos (resources), y plantillas (prompts) al LLM vía el protocolo. | Servidor filesystem, servidor PostgreSQL, servidor Playwright, servidor Memory |
MCP define múltiples transportes, cada uno optimizado para un escenario distinto. La versión 2025-11-25 estabiliza Streamable HTTP como el transporte remoto recomendado, deprecando SSE.
| Transporte | Tipo | Estado | Cuándo usarlo |
|---|---|---|---|
| STDIO | Local | Estable | Servidores locales, desarrollo, herramientas de sistema (filesystem, git, shell) |
| Streamable HTTP | Remoto | Estable (v2025-11-25) | Servidores remotos, APIs SaaS, despliegue en producción. Reemplaza SSE. |
| SSE | Remoto | Deprecado | Legacy. Migrar a Streamable HTTP. Server-Sent Events unidireccional. |
| WebSocket | Remoto | Experimental | Casos bidireccionales de baja latencia. No oficial en spec pero soportado por SDKs. |
.well-known/mcp.
El lifecycle es simple pero estricto, y sigue el patrón JSON-RPC 2.0 con tres fases:
initialize con su versión y capacidades. Server responde con su versión y capacidades. Sin esto, no hay sesión.tools/list, tools/call, resources/list, resources/read, prompts/get, etc.shutdown y cierra el transporte.// Handshake de inicialización MCP (JSON-RPC 2.0)
{
"jsonrpc": "2.0",
"id": "1",
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {
"tools": {},
"resources": {},
"prompts": {},
"sampling": {}
},
"clientInfo": {
"name": "my-client",
"version": "1.0.0"
}
}
}
MCP define tres primitivas del lado del server y tres del lado del client. No confundir: las primitivas definen qué puede hacer cada lado, no qué debe implementar.
| Primitiva | Métodos | Descripción |
|---|---|---|
| Tools | tools/list, tools/call | Funciones ejecutables que el LLM puede invocar. Similar a function calling, pero agnóstico al provider. El server las describe y el host (a través del LLM) decide cuándo llamarlas. |
| Resources | resources/list, resources/read, resources/subscribe | Datos expuestos con URI scheme. Pueden ser archivos, documentos, registros de DB, resultados de API. El host puede leerlos bajo demanda o suscribirse a cambios. |
| Prompts | prompts/list, prompts/get | Plantillas de prompt reutilizables con argumentos dinámicos. El usuario o el host pueden invocarlas para inyectar contexto estructurado. |
| Primitiva | Métodos | Descripción |
|---|---|---|
| Sampling | sampling/createMessage | El server puede solicitar al host que genere una respuesta del LLM. Permite que un server "piense" o "complete" texto usando el modelo del host. |
| Elicitation | elicitation/prompt | El server puede pedir input al usuario a través del host. Útil para flujos que requieren confirmación humana. |
| Logging | logging/setLevel, notificaciones | El server puede enviar logs estructurados al host para depuración y monitoreo. |
La historia de MCP es inusualmente rápida para un protocolo abierto. En menos de 18 meses pasó de ser un experimento interno de Anthropic a un estándar bajo la Linux Foundation con adopción masiva.
| Fecha | Evento |
|---|---|
| Nov 2024 | Anthropic publica MCP como draft abierto. David Soria Paria y Justin Spahr-Summers son los autores principales. Lanzan SDKs para Python y TypeScript. |
| Dic 2024 | Primeros servidores comunitarios. La especificación atrae atención de la comunidad agentica. Se crea el repo modelcontextprotocol/servers con servidores oficiales. |
| Mar 2025 | Versión 2025-03-26. Se estabilizan tools, resources, y prompts como primitivas core. Se añade soporte para Streamable HTTP como transporte remoto experimental. |
| Jun 2025 | Versión 2025-06-18. MCP se transfiere a Linux Foundation. Se forma un comité técnico multi-empresa (Anthropic, OpenAI, Microsoft, Google, AWS). Se añade sampling y logging. Primer marketplace comunitario (Smithery). |
| Sep 2025 | Streamable HTTP se estabiliza. SSE se depreca. Se añade OAuth 2.0 como mecanismo de autenticación estándar. Glama alcanza 10K servidores listados. |
| Nov 2025 | Versión 2025-11-25 — latest stable. Elicitation se añade como primitiva. WebSocket experimental. Python SDK v1 estable. TypeScript SDK v1 estable. |
| Jun 2026 | 47.8K GitHub followers, 31,818 servidores en Glama, 10 SDKs oficiales. Python SDK v2 en main. TypeScript SDK v2 pre-alpha (Q3 2026). |
MCP está viviendo su "momento LSP" — así como LSP unificó la experiencia de editores de código con lenguajes de programación, MCP está unificando la experiencia de LLMs con herramientas. La analogía es casi perfecta:
| Dimensión | LSP (2016) | MCP (2024–2025) |
|---|---|---|
| Problema | Cada editor tenía su propio sistema de plugins para autocompletado, cada lenguaje su propio protocolo. | Cada plataforma de IA tiene su propio sistema de tools, cada proveedor su propia integración. |
| Solución | Protocolo común: cualquier editor × cualquier lenguaje | Protocolo común: cualquier LLM × cualquier herramienta |
| Creador | Microsoft (VS Code team) | Anthropic (Claude team) |
| Gobierno | Abierto (comité multi-empresa) | Linux Foundation (comité multi-empresa) |
| Adopción | ~2 años para adopción masiva | ~1 año para adopción masiva (más rápida) |
Actualmente hay 10 SDKs oficiales para MCP, cubriendo los lenguajes más populares del ecosistema de IA. La calidad y madurez varía significativamente entre ellos.
| Lenguaje | Package | Stars | Estado | Notas |
|---|---|---|---|---|
| Python | pip install mcp[cli] | 23.3K | v1 stable | SDK más usado. Incluye FastMCP, CLI, y helpers de transporte. v2 en main (pre-alpha). |
| TypeScript | npm i @modelcontextprotocol/sdk | 12.6K | v1 stable | SDK oficial de referencia. v2 pre-alpha esperado Q3 2026. |
| Go | github.com/mark3labs/mcp-go | 3.5K | Maduro | Mantenido por mark3labs. Soporta STDIO y HTTP. Usado en producción. |
| Rust | crates.io/crates/mcp-core | 3.5K | Maduro | SDK oficial en Rust. Buen rendimiento. Usado para servidores de alto throughput. |
| Java | Spring AI MCP | — | Maduro | Integración con Spring AI. Ideal para ecosistemas Java enterprise. |
| Kotlin | MCP Kotlin SDK | — | Beta | Basado en el SDK de Java. Funcionalidad completa. |
| C# (.NET) | MCP .NET SDK | 4.3K | Maduro | Buena adopción en ecosistema .NET. Documentación clara. |
| Swift | MCP Swift SDK | — | Beta | Para macOS/iOS clients. Uso nicho. |
| PHP | MCP PHP SDK | — | Beta | Comunidad activa. Bueno para servidores web PHP. |
| Ruby | MCP Ruby SDK | — | Beta | Menor adopción pero funcional. |
El SDK de Python es, con diferencia, el más popular del ecosistema MCP. Incluye FastMCP, una abstracción de alto nivel que permite crear servidores en pocas líneas:
from mcp.server.fastmcp import FastMCP
# Crear server con FastMCP
mcp = FastMCP("Mi Servidor", port=8080)
# Tool — ejecutable por el LLM
@mcp.tool()
def calcular_precio(producto: str, cantidad: int) -> float:
"""Calcula el precio total para un producto"""
precio_base = {"laptop": 999.99, "mouse": 29.99}
return precio_base.get(producto, 0) * cantidad
# Resource — datos accesibles por URI
@mcp.resource("catalog://productos/{producto}")
def get_producto(producto: str) -> dict:
"""Obtiene info de un producto"""
return {"nombre": producto, "stock": 42}
# Prompt — plantilla reutilizable
@mcp.prompt()
def revisar_pedido(pedido_id: str) -> str:
"""Prompt para revisar un pedido"""
return f"Revisa el pedido {pedido_id} y verifica..."
if __name__ == "__main__":
mcp.run() # STDIO por defecto
FastMCP maneja automáticamente la serialización JSON-RPC, el descubrimiento de tools/resources/prompts, y la negociación de capacidades. El mismo server funciona con STDIO (local) y Streamable HTTP (remoto) sin cambiar código.
pip install mcp[cli] instala el SDK + CLI de MCP. El CLI incluye mcp run, mcp dev, mcp install, y mcp inspector.
MCP no es la única forma de conectar LLMs con el mundo exterior. Existen al menos cuatro paradigmas compitiendo. Entender sus diferencias es crucial para elegir el correcto.
| Dimensión | MCP | REST API | A2A (Google) | Function Calling (OpenAI) |
|---|---|---|---|---|
| Filosofía | Protocolo para LLMs → herramientas | Arquitectura stateless para APIs web | Protocolo para agentes → agentes | Formato inline para definir funciones en requests LLM |
| Stateful | Sí — sesión negociada | No — stateless | Sí — cards + sesiones | No — por request |
| Bidireccional | Sí — server → host (sampling, elicitation) | No — solo cliente inicia | Sí — agent-to-agent | No — LLM responde herramientas |
| Autodescubrimiento | Sí — tools/list, resources/list, prompts/list | No — documentación externa | Sí — Agent Card | No — las defines tú en el prompt |
| Transporte | STDIO, HTTP, WebSocket | HTTP(S) | HTTP(S) + SSE | HTTP(S) — vía API de OpenAI |
| Provider-agnóstico | Sí — cualquier LLM | Sí | Sí — cualquier agente | No — solo OpenAI |
| Servidores reusables | Sí — mismo server para cualquier cliente | Sí — misma API para cualquier cliente | Sí — mismo agente para cualquier agente | No — definición inline en cada request |
| Resources + Prompts | Sí — datos y plantillas como primitivas | No — solo endpoints | No — solo skills/tasks | No — solo funciones |
| Madurez | v2025-11-25 estable, 47.8K stars | Décadas de uso | Draft 2025, <5K adoption | Maduro pero propietario |
Cuando tu LLM necesita conectarse a herramientas y datos externos de forma agnóstica al proveedor.
Cuando construyes una API web tradicional para consumo humano o machine-to-machine stateless.
Cuando necesitas que agentes autónomos colaboren entre sí (orquestación multi-agente).
La combinación más potente hoy es MCP + A2A: MCP para conectar cada agente con sus herramientas y datos, A2A para conectar los agentes entre sí. MCP es la capa de "recursos", A2A la capa de "orquestación".
Ejemplo: Un agente analista financiero usa MCP para consultar datos de mercado (tool) y leer informes PDF (resource), luego usa A2A para delegar a un agente de visualización que genera gráficos, y a otro agente de reportes que redacta el informe final.
No todas las plataformas agenticas soportan MCP por igual. Esta tabla muestra el nivel de soporte real de cada plataforma a junio 2026, basado en documentación oficial y análisis de código fuente.
| Plataforma | Nivel | Transportes | Per-agent | OAuth 2.0 | Notas |
|---|---|---|---|---|---|
| Claude Code | Nativo (inventor) | stdio, http, sse, ws | Sí nativo | Completo | Config via .mcp.json o claude mcp add. 3 scopes (local/project/user). Per-agent nativo via mcpServers en YAML frontmatter (inline o referencia). MCP servers pueden hacer elicitation. claude mcp serve expone Claude Code como MCP server. |
| OpenCode | Nativo | stdio, http | Parcial | Completo | Config via opencode.json → mcp. Per-agent via glob patterns (servername_toolname) — solo habilita/deshabilita servers globales. Remote MCP defaults via .well-known/opencode. CLI: opencode mcp auth/list/logout/debug. |
| Cursor | Nativo | stdio, http | No | Limitado | Config via .cursor/mcp.json. Soporte básico de tools, sin resources/prompts. |
| Windsurf | Nativo | stdio, http | No | Limitado | Config via .windsurf/mcp_config.json. Soporte básico. |
| Continue.dev | Nativo | stdio | No | No | Config via continue.json → experimental.mcpServers. Solo STDIO. Bueno para desarrollo. |
| VS Code (GitHub Copilot) | Extensión | stdio, http | No | Limitado | Vía extensión "MCP Client" o "Continue". No nativo en Copilot. |
| Codex CLI (OpenAI) | Soporta | stdio, http, sse | Sí nativo | Parcial | Config via ~/.codex/agents/*.toml → mcp_servers. Cada custom agent define sus propios MCP servers. Clientes: CLI e IDE Extension. Codex Desktop: sin soporte documentado. |
| Zencoder | No soporta | N/A | N/A | N/A | Ecosistema cerrado. No hay soporte MCP. |
Al ser el inventor de MCP, Claude Code tiene el soporte más completo y maduro. Algunas capacidades exclusivas:
~/.claude/settings.local.json (local), .mcp.json (proyecto), .mcp.json en home (user). Precedencia clara y predecible.elicitation/prompt. Esto permite flujos de "confirmar antes de ejecutar" sin salir del chat.claude mcp serve expone la sesión de Claude Code como un MCP server. Esto permite que otro cliente MCP (u otro agente) interactúe con Claude Code programáticamente.OpenCode es la única plataforma que ofrece MCP per-agent nativo, sin necesidad de plugins. Esto significa que puedes configurar qué MCP servers están disponibles para cada agente individualmente:
// opencode.json — configuración MCP
{
"mcp": {
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
},
"db": {
"command": "python",
"args": ["mcp_server_db.py"]
}
}
},
"agents": {
"coder": {
"model": "anthropic/claude-sonnet-4-20250514",
"mcp": {"filesystem": "allow"} // solo filesystem para coder
},
"analyst": {
"model": "openai/gpt-5",
"mcp": {"db": "allow"} // solo DB para analyst
}
}
}
OpenCode también soporta Remote MCP Discovery via .well-known/opencode — un estándar que permite que un proyecto declare sus MCP servers remotos automáticamente al abrirse, sin configuración manual.
mcp_servers en TOML). Zencoder tiene un ecosistema completamente cerrado. Si la portabilidad entre plataformas es importante, esto es una limitación a considerar.
El ecosistema de servidores MCP es vasto y crece rápidamente. Estos son los servidores más importantes, categorizados por función. Datos verificados a junio 2026.
| Server | Autor | Función | Stars |
|---|---|---|---|
| Playwright MCP | Microsoft | Browser automation headless. Navegación, clicks, formularios, screenshots. El servidor MCP más popular. | 33.6K |
| Brave Search | Brave | Web search + local search. Integración con Brave Search API. | — |
| Fetch | Oficial (modelcontextprotocol) | Web fetching. Descarga y procesa URLs. | — |
| Server | Autor | Función |
|---|---|---|
| Filesystem | Oficial | Operaciones de archivos seguras con path sandboxing. Leer, escribir, mover, copiar dentro de directorios permitidos. |
| Git | Oficial | Comandos git desde el LLM: status, diff, log, commit, push, pull, branch. |
| Shell | Comunitario | Ejecución de comandos shell con sandboxing. Peligroso pero útil para automatización. |
| Server | Tipo | Función |
|---|---|---|
| PostgreSQL | Oficial | Consultas SQL, esquemas, migrations. El DB server más usado. |
| SQLite | Oficial | Bases de datos locales embebidas. Ideal para prototipado. |
| Redis | Comunitario | Operaciones con Redis: get/set, keys, pub/sub. |
| Neo4j | Comunitario | Consultas Cypher, grafos de conocimiento. |
| Server | Función |
|---|---|
| Slack (Zencoder) | Canales, mensajes, búsqueda, reacciones. Publicar y leer en Slack desde el LLM. |
| GitHub | Issues, PRs, repos, code review. Gestión de repositorios completa. |
| GitLab | Análogo a GitHub pero para GitLab. Issues, MRs, pipelines. |
| Jira | Issues, sprints, proyectos. Gestión de tareas. |
| Linear | Issues, equipos, ciclos. Alternativa moderna a Jira. |
| Notion | Páginas, bases de datos, búsqueda. Documentación. |
| Figma | Componentes, archivos, comentarios. Diseño. |
| Gmail / Google Calendar | Email y calendario. Gestión de comunicación. |
| Server | Función |
|---|---|
| Sentry | Issues, eventos, performance. Depuración de errores. |
| Datadog | Métricas, logs, trazas, dashboards. Monitoreo. |
| Cloudflare | DNS, Workers, Pages, KV. Gestión de infraestructura. |
| AWS / GCP / Azure | Servicios cloud: S3, EC2, Lambda, etc. |
| Server | Función |
|---|---|
| Memory (Oficial) | Knowledge graph persistente. El servidor MCP de memoria más usado. Almacena entidades, relaciones, y observaciones como grafo. Persistencia en archivo JSON. |
| Mem0 / Memobase | Memoria a largo plazo con vectores y PostgreSQL. Alternativas más escalables que Memory oficial. |
El ecosistema MCP ha generado múltiples marketplaces y plataformas de hosting. Cada uno tiene un enfoque distinto:
| Plataforma | Servidores | Tipo | Características |
|---|---|---|---|
| Glama | 31,818 | Registry + Hosting + Gateway | El más grande. Hosting gerenciado, API gateway, quality scoring, analytics. Freemium con tiers. Ideal para producción. |
| MCP Registry (GitHub) | vendor-neutral | Metadata-only (JSON) | Repositorio oficial bajo github.com/mcp. Solo metadatos — sin hosting, sin gateway. El estándar de referencia para descubrimiento. |
| Smithery | ~5,000 | Marketplace + Discovery | Primer marketplace comunitario. UI amigable, instalación con 1 click. Bueno para descubrimiento y prototipado. |
| PulseMCP | ~3,000 | Newsletter + Discovery | Comunidad + newsletter semanal. Reviews de servidores, tutoriales, caso de uso. Para estar al día. |
| Composio | 985 toolkits | Enterprise Integrations + Auth | No es un marketplace de servidores MCP puro, sino una plataforma de integración SaaS que expone 20K+ tools vía MCP. Auth OAuth gerenciado, rate limiting, logging. |
Además de los marketplaces, existen opciones para hostear tus propios MCP servers:
El ecosistema MCP incluye herramientas para desarrollo, debugging, testing, y seguridad en producción.
| Herramienta | Función | Stars | Uso Principal |
|---|---|---|---|
| MCP Inspector | UI browser-based para inspeccionar MCP servers. Conecta, lista tools/resources/prompts, ejecuta tools, ve logs en tiempo real. | 10K | Debugging durante desarrollo de servidores |
| mcp-cli | CLI para interactuar con MCP servers desde terminal. mcp-cli connect smithery.ai/playwright | — | Testing rápido y scripting |
| MCPProxy | Proxy intermedio que loggea, rate-limita, y transforma requests entre client y server MCP. | — | Producción — monitoreo y seguridad |
| mcp-guardian | Security layer para MCP. Políticas de permisos, whitelist de tools, validación de args, detección de anomalías. | — | Producción — seguridad |
| FastMCP | Framework Python de alto nivel para construir MCP servers (incluido en SDK). | — | Desarrollo — creación rápida de servidores |
| FastAPI-to-MCP | Convierte APIs FastAPI existentes en MCP servers automáticamente. | — | Migración — exponer APIs REST como MCP |
| Spring AI MCP | Framework Java/Spring para MCP servers. | — | Desarrollo enterprise Java |
El MCP Inspector es la herramienta más útil para desarrollo. Se ejecuta en el navegador y permite:
# Usar MCP Inspector vía CLI
npx @modelcontextprotocol/inspector \
npx @modelcontextprotocol/server-filesystem /tmp
# O vía Python
mcp inspector run my_server.py
# mcp-cli: conectar a un server y listar tools
mcp-cli connect stdio --command "python my_server.py"
> tools/list
MCP no es perfecto. Como protocolo joven (18 meses desde su creación), tiene áreas de mejora importantes. Este análisis balanceado cubre ambos lados.
| Dimensión | Puntuación | Comentario |
|---|---|---|
| Estandarización | ★★★★★ | El único protocolo abierto multi-provider para LLM→tool |
| Adopción | ★★★★★ | 47.8K stars, 31K+ servers, soporte en 5+ plataformas en 18 meses |
| Gobernanza | ★★★★★ | Linux Foundation, multi-empresa, MIT license |
| SDKs | ★★★★☆ | 10 lenguajes, pero solo 2 maduros (Python, TS) |
| Seguridad | ★★★☆☆ | OAuth 2.0 existe pero es opcional, sin modelo de permisos estándar |
| Rendimiento | ★★★★☆ | JSON-RPC es verboso pero STDIO es rápido para local |
| Cobertura platforms | ★★★☆☆ | 5+ soportan, pero Codex CLI y Zencoder no |
| Documentación | ★★★★☆ | Buena spec y ejemplos, pero fragmentada entre múltiples fuentes |
| Global | ★★★★☆ | El estándar emergente más prometedor, con debilidades propias de su juventud |
¿Cuándo deberías usar MCP? ¿Cuándo NO? Esta guía te ayuda a decidir.
¿Necesitas conectar un LLM con herramientas externas?
├── Sí
│ ├── ¿Tu plataforma target soporta MCP?
│ │ ├── Sí (Claude Code, OpenCode, Cursor, Windsurf, Continue)
│ │ │ └── ✅ Usa MCP — ganas portabilidad y estandarización
│ │ └── No (Zencoder)
│ │ └── ❌ No puedes usar MCP — usa plugin system nativo
│ │
│ ├── ¿Necesitas también orquestación multi-agente?
│ │ ├── Sí → MCP + A2A (combinación ideal)
│ │ └── No → MCP solo es suficiente
│ │
│ └── ¿Necesitas solo function calling simple?
│ ├── Sí → MCP puede ser overkill; considera function calling nativo
│ │ si usas un solo proveedor
│ └── No → MCP es la mejor opción
│
└── No
├── ¿Necesitas API web tradicional?
│ ├── Sí → REST
│ └── No → No necesitas MCP ni REST
│
└── ¿Necesitas orquestación agent-to-agent?
├── Sí → A2A
└── No → Evalúa si realmente necesitas un protocolo
Todas las afirmaciones en esta clase están respaldadas por documentación oficial, especificaciones, y datos de mercado verificados a junio 2026.
mcp en PyPI — Python SDK oficial con FastMCP@modelcontextprotocol/sdk — TypeScript SDK oficialÚltima verificación: Junio 2026. Las especificaciones y documentación pueden cambiar; consulte las fuentes oficiales para información actualizada.