Saltar al contenido principal

MCP (Protocolo de Contexto del Modelo)

¿Qué es MCP?

MCP, o Protocolo de Contexto del Modelo, es un protocolo abierto desarrollado por Anthropic que busca estandarizar la forma en que las aplicaciones y agentes de IA interactúan de manera fluida con sus herramientas y fuentes de datos.

Se inspira en protocolos y sistemas anteriores como las APIs, que estandarizaron la interacción entre el frontend y el backend de las aplicaciones web, y el LSP (Language Server Protocol), que estandarizó cómo los IDEs interactúan con herramientas específicas de lenguajes de programación. Al igual que el LSP permite que cualquier IDE compatible interactúe con las características de un lenguaje de programación una vez que se construye un servidor LSP para ese lenguaje, MCP estandariza cómo las aplicaciones de IA interactúan con sistemas externos.

¿Cómo estandariza MCP la interacción?

MCP estandariza esta interacción de tres maneras principales a través de tres interfaces que son parte del protocolo:

  • Prompts (Indicaciones): Plantillas predefinidas para interacciones comunes que un usuario podría tener con un servidor específico. Se consideran herramientas que el usuario invoca. Un ejemplo es un comando slash en un IDE para resumir un pull request.

  • Herramientas (Tools): Permiten el control del modelo. El servidor expone herramientas a la aplicación cliente, y el modelo (LLM) dentro de la aplicación puede elegir cuándo es el mejor momento para invocar esas herramientas. Las posibilidades son amplias, desde leer datos hasta escribir en sistemas externos o actualizar bases de datos.

  • Recursos (Resources): Son datos expuestos a la aplicación y están controlados por la aplicación. Un servidor puede definir o crear imágenes, archivos de texto o JSON, y la aplicación decide cómo utilizar ese recurso. Los recursos proporcionan una interfaz rica para la interacción entre aplicaciones y servidores que va más allá de la conversación textual.

La motivación detrás de MCP

La motivación principal detrás de MCP es la idea fundamental de que los modelos son tan buenos como el contexto que se les proporciona. Antes de MCP, Anthropic observó una gran fragmentación en la forma en que se construían los sistemas de IA. Diferentes equipos dentro de una misma empresa, e incluso en toda la industria, creaban aplicaciones de IA con implementaciones personalizadas para acceder a datos, lógica de prompts y formas de integrar herramientas.

El mundo con MCP busca ser un mundo de desarrollo de IA estandarizado. Una vez que un cliente es compatible con MCP, puede conectarse a cualquier servidor MCP sin trabajo adicional. Un servidor MCP actúa como un wrapper o una forma de federar el acceso a varios sistemas y herramientas relevantes para la aplicación de IA. Esto podría incluir bases de datos, CRMs o incluso sistemas locales.

Valor de MCP para diferentes partes del ecosistema

  • Desarrolladores de aplicaciones: Una vez que su cliente es compatible con MCP, pueden conectarlo a cualquier servidor con cero trabajo adicional.

  • Proveedores de herramientas o APIs: Pueden construir su servidor MCP una sola vez y ver su adopción en todas las diferentes aplicaciones de IA. MCP busca aplanar el problema de N veces M de cómo las aplicaciones cliente interactúan con los servidores.

  • Usuarios finales: Obtienen aplicaciones de IA más poderosas y ricas en contexto, capaces de interactuar con el mundo real y conocer sus necesidades.

  • Empresas: MCP proporciona una forma clara de separar las preocupaciones entre diferentes equipos que construyen diferentes partes de un sistema de IA. Un equipo puede ser dueño de la interfaz a un sistema (como una base de datos vectorial) y exponerla como un servidor MCP, que luego puede ser utilizado por otros equipos de manera centralizada. Esto acelera el desarrollo y reduce la necesidad de comunicación constante entre equipos.

Adopción de MCP

MCP ha visto una adopción emocionante en los últimos meses. Esto incluye:

  • Aplicaciones e IDEs: Proporciona una forma para que los desarrolladores en IDEs proporcionen contexto a su entorno de trabajo y para que los agentes dentro de esos IDEs interactúen con sistemas externos como GitHub y sitios de documentación.

  • Lado del servidor: Se han construido y publicado más de 1100 servidores creados por la comunidad. También hay servidores construidos por empresas con integraciones oficiales para conectar a sus sistemas.

  • Open source: Mucha contribución al protocolo central y la capa de infraestructura alrededor de MCP.

Construyendo con MCP

Un cliente MCP invoca herramientas, consulta recursos e interpola prompts. El constructor del servidor expone herramientas, recursos y prompts de manera que puedan ser consumidos por cualquier cliente que se conecte a él.

  • Herramientas: El LLM dentro del cliente elige cuándo invocarlas basándose en descripciones proporcionadas por el servidor.
  • Recursos: La aplicación decide cuándo y cómo utilizarlos. Pueden ser estáticos o dinámicos, y el servidor puede notificar al cliente sobre actualizaciones.
  • Prompts: El usuario decide cuándo invocarlos; son plantillas predefinidas para interacciones comunes.

MCP y Agentes de IA

MCP se está convirtiendo en el protocolo fundacional para los agentes de IA.

  • LLMs Aumentados: MCP facilita que los LLMs interactúen con sistemas de recuperación, herramientas y memoria de manera estandarizada.
  • Expansión Dinámica: Los agentes pueden descubrir nuevas capacidades e interacciones incluso después de su inicialización.
  • Enfoque en la Lógica del Agente: Los desarrolladores de agentes pueden centrarse en el bucle principal del agente, la gestión del contexto y el modelo utilizado, dejando que MCP se encargue de la conexión con el mundo exterior.
  • Ejemplo con mCP Agent: Un framework open source que permite definir agentes y sub-agentes, dándoles acceso a servidores MCP para realizar tareas complejas como investigación y generación de informes.

Capacidades del Protocolo para Agentes

  • Sampling (Muestreo): Un servidor MCP puede solicitar finalizaciones (inferencia del LLM) al cliente. Esto permite que el servidor acceda a la inteligencia del LLM sin tener que implementarlo o alojarlo directamente. El cliente tiene control sobre estas solicitudes, incluyendo privacidad y costos.
  • Composabilidad: Cualquier aplicación, API o agente puede ser tanto un cliente MCP como un servidor MCP. Esto permite construir arquitecturas complejas con múltiples capas de sistemas LLM donde cada uno se especializa en una tarea particular.

Hoja de Ruta y Futuro de MCP

  • Servidores Remotos y OAuth: Soporte para servidores alojados remotamente a través de SSE y autenticación OAuth 2.0. Esto permitirá que los servidores vivan en URLs públicas y sean más fácilmente descubribles. El servidor controla el handshake de autenticación, y el cliente recibe un token de sesión.

  • Registro MCP: Una API de metadatos unificada y alojada por el equipo de MCP para descubrir y encontrar servidores MCP. Esto resolverá el problema de la fragmentación y la falta de un lugar centralizado para encontrar y publicar servidores. Proporcionará información sobre el protocolo, la ubicación (local o URL), el creador y la verificación. También facilitará el versionado.

  • Versioning (Versionado): Se está considerando cómo manejar mejor el versionado de servidores y el protocolo para evitar cambios disruptivos. El registro también ayudará a rastrear los cambios.

  • Well-known: Un enfoque complementario al registro donde un dominio (ej. shopify.com) podría tener un archivo .well-known/mcp.json que proporcione información sobre sus endpoints MCP.

  • Otras áreas en consideración: Conexiones con estado vs. sin estado, streaming de datos, namespacing de herramientas, comportamiento proactivo del servidor.

MCP busca ser una capa fundamental para la interacción entre aplicaciones de IA, agentes y el mundo que los rodea, facilitando la innovación y la construcción de sistemas más inteligentes y contextualmente conscientes.