Agentes de IAGen en entornos corporativos II: Herramientas seguras con MCP
Explora la galería de fotos
Ir al enlace
imagotipo de Tinámica, de color blanco
Desde Tinámica seguimos compartiendo nuestra visión sobre la IA Generativa. Hay empresas que ya tienen proyectos de RAG en producción y algún agente sencillo en fase piloto, pero la pregunta que se hace el sector es: ¿Cómo construir agentes en un entorno corporativo?

Las principales cuestiones son:

- Que los agentes sigan un patrón de desarrollo común.

- Crear un ecosistema gobernado de herramientas para los agentes.

Y vamos a darles respuesta explicando la arquitectura MCP.

MCP: Un estándar abierto para la construcción de Agentes en un entorno corporativo

Como decíamos, el núcleo del Agente reside en su capacidad para planificar acciones y ejecutarlas mediante interacciones con herramientas disponibles en su entorno. El gran reto de construir agentes en un entorno corporativo es solucionar la interfase entre el LLM-Aumentado y las herramientas.

Una solución inicial sería hacer una definición de las herramientas para cada agente, recordando que hay que aportarle al LLM una descripción detallada de cada herramienta. Sin embargo, el desafío es cómo compartir herramientas entre varios agentes.

Para resolverlo, en noviembre de 2024, Anthropic introdujo el Protocolo Modelo-Contexto (MCP por sus siglas en inglés), un estándar abierto (que se puede aplicar con cualquier tipo de LLM) para conectar nuestras aplicaciones de IA Gen (Agentes) con las herramientas y datos que habilitemos.

Arquitectura de MCP

La idea principal consiste en desacoplar la lógica de la aplicación de IA Gen y de las herramientas (el entorno). El gran éxito de esta arquitectura en usar conceptos tradicionales (arquitectura cliente-servidor) en el novedoso paradigma de la IA Gen de manera efectiva.

El anfitrión MCP (host) es la aplicación de IA Gen en sí, que contiene la lógica del agente (memoria, interfaz con el LLM, políticas, etc.) así como los clientes MCP.

Las herramientas, en un entorno corporativo, deben ser de acceso remoto a través de APIs, por ejemplo, API de acceso a nuestra base de datos o a servicios como Jira, Github, etc. Adicionalmente, en un Servidor MCP es donde se implementa la definición formal de la herramienta para que el LLM pueda entenderla.

Por ejemplo, si se desea que el agente interactúe con una PAI para obtener la información meteorológica, en el Servidor MCP implementaremos como herramientas los métodos para consultar esta API, como get_forecast(lat, long, n_days) y report_weather(lat,long, date).

Aunque se articule el ejemplo sobre herramientas, un Servidor MCP también puede implementar acceso a recursos como plantillas de prompts o un sistema de ficheros o incluso, otros agentes.

El cliente MCP controla la conexión al Servidor MCP en un esquema 1:1. Estos clientes se ejecutan dentro de la aplicación de AI Gen (Anfitrión MCP) y son los que realizan las llamadas concretas al LLM para cada tarea además de hacer accesible al LLM la definición de cada herramienta descubierta en el Servidor MCP.

Siguiendo el ejemplo, gracias al Cliente MCP, el agente sabe que puede acceder a herramientas de información meteorológica, que tiene concretamente dos métodos y los parámetros de entrada de cada uno.

La capa de transporte y autenticación merece un artículo aparte, así que, en esta ocasión, solo se proporciona una descripción. La capa de transporte se basa en el formato JSON-RCP 2.0 y permite usar los siguinetes tipos de transporte:

- Standard Input/Output (stdio)

- SSE (Server Sent Events)

- Implementación de transporte personalizado

La elección de uno u otro deberá adecuarse a nuestra arquitectura corporativa. Del mismo modo, MCP soporta la implementación de esquemas de autorización, por ejemplo, OAuth 2.1. En este caso, además deberemos tener en cuenta la naturaleza de la aplicación y de IA Gen y de la herramienta a la que accedemos.

Por ejemplo, si el Cliente MCP actúa impersonando al usuario (humano) mediante un código de autorización, o si es una aplicación (no humana) que adquiere credenciales de cliente. En este marco, siendo muy esquemático:

- Servidor MCP: Servidor OAuth 2.1 en recursos

- Cliente MCP: Cliente OAuth 2.1

La inteligencia del Agente

Todo el desarrollo que implementa la lógica del Agente se ejecuta en el Anfitrión MCP. Aquí es donde dotaremos al Agente de memoria, capacidad para realizar un plan de acción, políticas. etc.

Esta parte de construcción de agentes la trataremos en otro artículo, por ejemplo, podremos implementar un agente ReAct.

Recordemos que en el anfitrión MCP también se ejecutan los clientes MCP que comunican con los Servidores MCP.

Ventajas de MCP

El uso de MCP permite crear un pool de herramientas corporativas siguiendo tres pasos:

1. Crear el acceso al recurso (base de datos, servicio, etc.) mediante una REST API.

2. Implementar un Servidor MCP que defina el acceso al recurso, esto es, que para cada método de la REST API, defina la herramienta correspondiente.

3. Desarrollar un Cliente MCP responsable de la conexión al servidor MCP y del descubrimiento de las herramientas.

De tal modo que las definiciones de Servidor y Cliente MCP no están ligadas a la lógica del Agente o al LLM empleado, así se pueden compartir corporativamente y hacer posible que se apliquen procesos sistemáticos de gobierno que incluyan revisión entre pares, testing y publicación segura.

Además, muchos proveedores (como Slack, Jira o GitHub) están comenzando a ofrecer Clientes y Servidores MCP listos para su uso empresarial, lo que acelera la adopción y reduce los costes de implementación.

Finalmente, cabe destacar que esta arquitectura es compatible con cualquier tipo de LLM (Anthropic, OpenAI, LLMs open source...) y con cualquier tipo de plataforma tecnológica.

Riesgos y consideraciones de MCP

La aplicación de la arquitectura MCP no está exenta de riesgos, sin embargo, estos son los naturales al desarrollo de software. El principal riesgo es el denominado tool-poisoning.

Anteriormente mencionábamos que hay una gran cantidad deClientes-Servidores MCP desarrollados, sin embargo, esto abre una puerta a lacreación de herramientas maliciosas, que filtran información sensible.De ahí que desde Tinámica destaquemos que la mayor ganancia de este poolcorporativo de herramientas es la gobernanza: el poder establecer unproceso sistemático y seguro de publicación.

Del mismo modo, en la implementación de una aplicación mediante MCP, deben respetarse las buenas prácticas clásicas de desarrollo de software, como protección de la información sensible, implementar un sistema de autentificación seguro, etc.

Conclusiones

Existen otros frameworks como A2A de Google, o incluso es totalmente viable hacer una implementación "desde cero". No obstante ,es conveniente recoger las ideas centrales de MCP en cualquier tipo de solución de IA Gen basada en Agentes:

- Plantear el diseño de software en una arquitectura cliente-servidor.

- Estandarizar la creación de herramientas para crear un pool corporativo que permita poner en marcha procesos de gobierno de las mismas.

Y por supuesto, afrontar el desafío como tratamos de afrontarlo en Tinámica, con una perspectiva multidisciplinar, donde Científicos de Datos, Ingenieros de Software, Arquitectos y DevOps no olviden las buenas prácticas clásicas y sean capaces de entenderse en un lenguaje común para asegurar que nuestros agentes sean exitosos.

Muchas gracias. Hemos recibido tu mensaje
¡Uy! Algo ha ido mal al enviar el formulario.