MCP me recuerda a los años 80 (en el buen sentido)

El Protocolo de Contexto de Modelos (MCP) aún está dando sus primeros pasos, o al menos eso espero, pero ya está abriendo nuevas y atractivas vías para conectar los LLM a herramientas y servicios reales. Me siento como cuando tuve mi primer módem y pude conectar mi ordenador a la velocidad de 1200 bits por segundo a otros ordenadores (sonidos de marcación, timbre y los alegres tonos y pitidos del apretón de manos).

Como nota al margen, este vídeo es divertido de ver con los subtítulos activados: https://youtu.be/xalTFH5ht-k

En Nimble Gravity, hemos estado automatizando procesos con servidores MCP que habrían sido muy difíciles de hacer sin la potencia de MCP (y LLM) y queríamos compartir algunos aprendizajes.

 

Generalmente nos quedamos con el SDK MCP de Anthropic 

Hay una plétora de variantes de MCP SDK emergiendo. Nos gusta la versión de Anthropic porque, bueno, es la original y además está bien documentada y proporciona todo lo que necesitamos. 

 
Las descripciones importan 

Cuando se implementan herramientas, es obvio que hay que tener claro qué hacen las herramientas, qué hacen los parámetros (¡y los enums!), cuáles son los retornos esperados, etc. Resulta útil pensar en los esquemas como algo que pueda ser analizado por la máquina y explicado por el ser humano. ¿Qué formato tiene la fecha de vencimiento? 

 

Eres un usuario, piensa como un usuario    

El hecho de que ya dispongas de una API concreta no significa que sea útil para lo que los usuarios querrán hacer realmente. Las herramientas pueden ser un "haz un armario" en lugar de un "cómo serrar" y ese mayor nivel de abstracción es genial.

Así que considera una herramienta "get_customer_orders", por ejemplo, que acepte un nombre de cliente o un ID para luego llamar primero a tu API de búsqueda de ID a partir del nombre o simplemente llamar directamente a tu API para consultar los pedidos a partir del ID puede ser útil. Siempre y cuando definas bien la herramienta, el LLM generalmente se dará cuenta de que es una función que se puede utilizar de varias maneras diferentes. Y es mucho más rápido. Esto no te impide tener una herramienta de ayuda también, si es útil por alguna otra razón.

 

Guardar en caché y ser selectivo 

A veces, si el LLM tiene que hacer varias llamadas para averiguar algo y ese algo no cambia con mucha frecuencia (piense en contactos de CRM, tal vez), un patrón de caché puede ser útil. Así que cuando inicie su cliente puede ir a agarrar lo que podría necesitar un par de veces y luego a partir de entonces se está ejecutando localmente desde la caché. Sólo un recordatorio de que se aplican las mejores prácticas típicas de ingeniería de software.

Y si hay algo que estás devolviendo al LLM que no necesitas, simplemente no lo hagas. O si hay algo en lo que vas a repetir frecuentemente los mismos pasos considera una única herramienta para manejarlos en lugar de que el LLM los orqueste. Llenarás la ventana de longitud/contexto de chat permitida y lo pasarás mal.

Herramientas como Inngest para una orquestación más compleja también podrían ser útiles, aunque todavía no hemos tenido que llegar a eso.

  

Los LLM se esfuerzan 

Si hay algo que no manejas explícitamente (o que no describiste bien), o que en realidad no es posible, el LLM a veces lo intentará. Puede que incluso invente los valores de los parámetros. A veces eso funciona bien (como lo que es una industria válida para pasar a un CRM MCP, por ejemplo) pero a veces un poco de codificación defensiva va un largo camino. Y un mejor manejo de los casos de uso con el tiempo es útil para ver cómo la gente está realmente utilizando el servidor. 

 
Las API con un punto final Discover son un sueño 

Si hay una API disponible que describa otra API o cuáles son los parámetros, es bueno utilizarlas porque entonces puedes decirle al LLM qué hacer. Por ejemplo, puedes llamar a una API de HubSpot para obtener todas las propiedades de un tipo de objeto (p. ej., contactos) y evitar codificarlas en tu herramienta de actualización de contactos. Esto crea una especie de "garantía de futuro" para que tus herramientas puedan seguir siendo mínimas y componibles. 

 
En Inspector MCP es práctico, también lo son los registros de Claude

Tener una interfaz de usuario sencilla para probar las herramientas es muy útil. Es una especie de Postman para las interfaces LLM.

Además, para los problemas que viven en algún lugar entre el LLM y su MCP, Claude (por ejemplo) tiene registros muy útiles para cualquier cosa que va bien o mal - un registro por servidor MCP para que sepa dónde buscar. Escribir esto también dice que es un espacio nuevo con herramientas muy tempranas y anticipo que muchas cosas mejorarán en este espacio. 

 
Planifique su uso con cuidado, como  

Si de repente estás incorporando muchos más datos, es posible que empieces a chocar con los límites de ventana contextual y de conversación. Así que, si necesitas hacer 20 cosas, puede que tengas que dividirlas en dos o más sesiones para evitar (o minimizar) los mensajes del tipo "por favor, inicia una nueva conversación para seguir chateando". 

 

Parecen días de conexión telefónica  

Este espacio es temprano. Realmente temprano. Pero siento nostalgia del módem de acceso telefónico (en el buen sentido). Puedes sentir el potencial futuro en estas interfaces: puntos finales seguros, modulares y semánticamente ricos para la IA. Hoy es como la caja beige conectada a tu ordenador. ¿Y mañana? Infraestructura central. 

 

La revolución de la conexión telefónica  

Nosotros también seguimos buscando las mejores prácticas. Si estás experimentando con MCP, nos encantaría intercambiar impresiones.

Envíanos un mensaje a Nimble Gravity si estás construyendo algo interesante (o te estás atascando).  

 

 

¿Listo para construir lo que realmente importa?

Hablemos