MCP: El USB-C para la IA de Anthropic al detalle

La esfera de los Modelos de Lenguaje Grandes (LLMs) frecuentemente necesita conectarlos a recursos externos como repositorios de datos, herramientas especializadas, o Interfaces de Programación de Aplicaciones (APIs) para liberar su verdadero potencial. Sin embargo, un método estandarizado para esta integración ha estado notoriamente ausente – hasta ahora.

Anthropic ha dado un paso adelante con una solución potencial: el Protocolo de Contexto del Modelo (MCP), un protocolo abierto que apunta a convertirse en el “USB-C” del mundo de la IA. Exploremos MCP en detalle, examinando sus funcionalidades, aplicaciones, desafíos, y estrategias de implementación.

Introducido recientemente, MCP es un proyecto de código abierto encabezado por los creadores del modelo Claude. Visualiza un estándar universal, abierto que conecta sin problemas sistemas de IA con varias fuentes de datos.

MCP extiende su alcance más allá de simples bases de datos, habilitando el acceso a una diversa variedad de herramientas y recursos. Estas capacidades incluyen consultar bases de datos, iniciar contenedores Docker, e incluso interactuar con plataformas de mensajería populares como Slack o Discord.

Ya sea que la meta sea integrar un LLM con una base de datos SQL, gestionar un clúster de Kubernetes, o automatizar tareas de Jira, hay una alta probabilidad de que un servidor MCP adecuado ya exista. El ímpetu del proyecto ha sido notable, atrayendo significativo interés y apoyo de gigantes de la industria como OpenAI y Google.

Esta exploración ahondará en los aspectos prácticos de MCP, resaltando sus potenciales aplicaciones, inherentes desafíos, y métodos para implementar e integrar servidores MCP con Claude Desktop y modelos personalizados usando Open WebUI.

Entendiendo MCP: Una Arquitectura Cliente-Servidor

MCP opera sobre una arquitectura cliente-servidor convencional, compuesta de tres elementos fundamentales: el host, el cliente, y el servidor.

  • El host es típicamente una interfaz orientada al usuario, como Claude Desktop o un Entorno de Desarrollo Integrado (IDE) como Cursor. Es responsable de gestionar uno o más clientes MCP.

  • Cada cliente establece una conexión dedicada con el servidor vía el protocolo MCP. La comunicación entre cliente y servidor ocurre a través de mensajes JSON-RPC, con la capa de transporte variando en base a la implementación específica. Actualmente las capas de transporte soportadas incluyen Stdio, HTTP, y eventos enviados por el servidor (SSE).

  • El servidor MCP expone capacidades específicas al cliente, haciéndolas accesibles al host de una manera estandarizada. Esta accesibilidad uniforme es la razón principal por la cual MCP es frecuentemente comparado a USB-C para IA.

De manera similar a cómo USB revolucionó la conectividad eliminando la necesidad de interfaces dispares para periféricos y dispositivos de almacenamiento, MCP se esfuerza por crear un lenguaje común para que los modelos interactúen con datos y herramientas.

El rol del servidor MCP depende de la ubicación del recurso. Para recursos locales, como una base de datos SQLite, el servidor accede directamente al recurso. Para recursos remotos, como un bucket S3, actúa como un puente, retransmitiendo llamadas API. Esta función de puente refuerza la analogía con USB-C, ya que los servidores MCP frecuentemente sirven como adaptadores, traduciendo interfaces específicas del proveedor a un formato estandarizado que los modelos de lenguaje pueden entender fácilmente.

La exposición y el mecanismo de respuesta consistentes son un aspecto clave de MCP, asegurando uniformidad a través de diferentes recursos.

Una de las características más intrigantes de MCP es su capacidad de comunicación bidireccional. No solo puede la aplicación host solicitar datos del servidor, sino que el servidor también puede comunicarse con el LLM a través de solicitudes de muestreo/createMessage al cliente. Si bien esta funcionalidad aún no es universalmente soportada, abre el camino para emocionantes flujos de trabajo agénticos.

Con un entendimiento fundamental de MCP, examinemos su aplicación práctica.

Práctica con MCP: Probando con Claude Desktop

Dado el desarrollo de MCP por Anthropic, Claude Desktop proporciona un entorno directo para la experimentación inicial.

Para usuarios que prefieran evitar proveedores de LLM de terceros, la sección subsiguiente cubrirá la conexión de servidores MCP a modelos locales y la interfaz Open WebUI.

Más allá de Claude Desktop, unas pocas dependencias son necesarias ya que los servidores MCP pueden operar en varios entornos. Para esta demostración, Node.js, Python 3, y el gestor de paquetes UVX para Python deben estar instalados.

Después de instalar las dependencias necesarias, lance Claude Desktop e inicie sesión usando una cuenta de Anthropic. Navegue a la configuración de la aplicación y luego a la pestaña “Developer”.

Hacer clic en el botón “Edit Config” generará automáticamente un archivo claude_desktop_config.json vacío en la carpeta ~/Library/Application Support/Claude/ en macOS o la carpeta %APPDATA%\\Claude\\ en Windows. Este archivo alojará la configuración del Cliente MCP. Los servidores MCP de Hora del Sistema y Sistema de Archivos serán usados para propósitos de prueba.

Abra el archivo claude_desktop_config.json en un editor de texto o IDE (ej. VSCodium) y reemplace sus contenidos con la siguiente configuración de servidor de tiempo, ajustando la zona horaria como desee:

Aquí tienes el código de ejemplo para el servidor de tiempo: