Arquitectura Core MCP
Entiende cómo funciona el Model Context Protocol: componentes principales, conceptos fundamentales y flujos de comunicación.
Arquitectura General
MCP sigue una arquitectura Cliente-Host-Servidor basada en JSON-RPC 2.0. Esta arquitectura permite una comunicación segura y estandarizada entre aplicaciones de IA y fuentes de datos.
Diagrama de Arquitectura MCP
El Host puede tener múltiples Clients, cada uno conectado a un Server diferente. Los Servers acceden a sus Data Sources de forma segura y controlada.
Componentes Principales
MCP Host
La aplicación de IA que quiere acceder a datos y herramientas (ej. Claude Desktop, IDEs como Cursor, VS Code).
MCP Client
Mantiene una conexión 1:1 con cada servidor MCP. Gestiona el protocolo JSON-RPC y la comunicación bidireccional.
MCP Server
Programa ligero que expone recursos, herramientas y prompts a través del protocolo estandarizado MCP.
Data Sources
Fuentes de datos locales (archivos, bases de datos) o remotas (APIs) que el servidor puede acceder de forma segura.
Conceptos Fundamentales
MCP define cuatro conceptos principales que permiten a los servidores exponer capacidades a los LLMs de forma estructurada.
Recursos (Resources)
Datos y contenido que el servidor expone al LLM. Pueden ser archivos, documentos, entradas de base de datos, etc.
Ejemplo: Un servidor de sistema de archivos expone archivos como recursos. El LLM puede leerlos pero no modificarlos directamente.
Herramientas (Tools)
Acciones que el LLM puede ejecutar a través del servidor. Permiten modificar datos, realizar operaciones, etc.
Ejemplo: Una herramienta 'create_file' permite al LLM crear nuevos archivos. El servidor valida y ejecuta la acción.
Prompts
Plantillas de prompts reutilizables que el servidor puede proporcionar al LLM para guiar su comportamiento.
Ejemplo: Un prompt 'code_review' puede contener instrucciones específicas para revisar código de manera consistente.
Sampling
Permite al servidor solicitar completaciones del LLM, útil para generar contenido o procesar datos.
Ejemplo: Un servidor puede pedir al LLM que genere documentación basada en el código fuente que expone como recurso.
Flujo de Solicitud/Respuesta
El protocolo MCP utiliza JSON-RPC 2.0 para la comunicación bidireccional. Este diagrama muestra el flujo completo cuando un LLM solicita ejecutar una herramienta.
Flujo Completo: LLM → Herramienta → Resultado
Ejemplo práctico: El LLM solicita obtener el clima de una ciudad usando la herramienta get_weather
Desglose del Flujo
El usuario hace una pregunta. El LLM analiza y decide que necesita una herramienta externa para responder.
El Host envía tools/call al Client. Este lo convierte en un mensaje JSON-RPC 2.0 y lo envía al Server.
El Server valida, ejecuta la herramienta y consulta la fuente de datos (API del clima). Obtiene los datos reales.
El Server formatea el resultado y lo devuelve al Client como JSON-RPC response. El Client lo entrega al Host/LLM.
El LLM procesa el resultado de la herramienta, lo integra en su contexto y genera una respuesta natural para el usuario: "En Madrid hace sol, con una temperatura de 22°C".
Punto Clave
Todo el flujo es síncrono y bidireccional. El LLM espera la respuesta antes de continuar. Los mensajes JSON-RPC incluyen un id único que permite correlacionar request y response.
Ejemplo de Mensaje JSON-RPC
Estructura típica de una solicitud y respuesta en el protocolo MCP
Solicitud (Request)
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": {
"city": "Madrid"
}
},
"id": 1
}Respuesta (Response)
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "El clima en Madrid es soleado, 22°C"
}
]
}
}¿Listo para profundizar?
Explora más sobre recursos, herramientas, prompts y la especificación completa del protocolo.