Esta publicación describe la construcción de un sistema de agentes controlado por IA en n8n, que a través del Model Context Protocol (MCP) identifica, selecciona y ejecuta herramientas externas.

Objetivo

Un usuario hace una entrada en lenguaje natural, p. ej.: “Dame las 10 ciudades más grandes de Alemania. En orden descendente según el área. Busca también en Internet para comparar tu resultado.”

El agente detecta la intención, comprueba las herramientas disponibles, decide una selección de herramienta, realiza una búsqueda web si es necesario y genera una respuesta adecuada. El concepto de control subyacente se basa en MCP, un protocolo para la comunicación estructurada de herramientas en sistemas basados en agentes.

MCP (Model Context Protocol)

“MCP es un protocolo abierto que estandariza la manera en que las aplicaciones brindan contexto a los LLM. Piensa en MCP como un puerto USB-C para aplicaciones de IA. Así como USB-C proporciona una forma estandarizada de conectar tus dispositivos a varios periféricos y accesorios, MCP ofrece una forma estandarizada de conectar modelos de IA a diferentes fuentes de datos y herramientas.” [fuente]

En este ejemplo, MCP consta de dos componentes principales:

  • listTools: Proporciona una lista estructurada de todas las herramientas disponibles.
  • executeTool: Ejecuta una herramienta específica con parámetros definidos.

El protocolo abstrae la implementación concreta de las herramientas (local, API, base de datos, etc.) y permite un control unificado, controlado por IA, a través de lenguaje natural.

Ventajas de la integración de MCP

  • Separación de control y ejecución: El modelo de lenguaje toma decisiones, pero no ejecuta las herramientas directamente.
  • Escalabilidad: Se pueden añadir nuevas herramientas sin tener que ajustar el modelo o el agente.
  • Extensibilidad: Se pueden integrar herramientas a través de HTTP, DB, Python, Shell, etc., siempre que puedan invocarse mediante MCP.
  • Transparencia: Cada decisión del agente (selección de herramienta, parámetros, ejecución) queda documentada de forma rastreable.

Arquitectura en n8n

  • When chat message received: Punto de inicio para cada entrada de usuario
  • AI Agent: Centro de control: analiza, decide, delega
  • OpenAI Chat Model: Comprensión del lenguaje y lógica de decisión
  • Simple Memory: Contexto de sesión y gestión de estado
  • MCP Client (list): Implementación de listTools
  • MCP Client (execute): Implementación de executeTool

Descripción del proceso

Entrada e inicialización

El procesamiento comienza con el nodo When chat message received. Este entrega los siguientes datos al agente:

  • ID de sesión
  • Texto del mensaje (chatInput)
  • Indicador de acción (sendMessage)

Generación de contexto

El AI Agent carga mediante Simple Memory toda la información relevante de la sesión (p. ej. herramientas anteriores, resultados, preguntas). Esto es necesario para un procesamiento de contexto correcto y seguimientos.

Aviso del sistema

Comprensión del lenguaje

La primera llamada al OpenAI Chat Model analiza la entrada del usuario semánticamente. El modelo detecta:

  • Objetivo de la solicitud
  • Necesidad de datos externos
  • Posibles categorías de herramientas

Verificar disponibilidad de herramientas (listTools vía MCP)

El nodo MCP Client (list) se activa. Este implementa la función MCP listTools y devuelve la siguiente información de forma estructurada:

Selección de herramienta y generación de parámetros

Se realiza una segunda llamada al modelo de lenguaje para:

  • Seleccionar una herramienta adecuada de la lista
  • Generar los parámetros necesarios para la ejecución

Ejecución de la herramienta (executeTool vía MCP)

La herramienta se ejecuta mediante el nodo MCP Client (execute). Este implementa la función MCP executeTool.

Toolname: {{ $fromAI(“tool”, “selected tool to execute”) }}

Generación de respuesta

Una tercera llamada al OpenAI Chat Model crea, a partir de los resultados de MCP, una respuesta para el usuario. En este proceso, los contenidos más relevantes se filtran, resumen y, si es necesario, se formatean.

Almacenamiento del contexto

El estado actual del agente se almacena de nuevo en Simple Memory. Esto incluye:

  • Herramientas utilizadas
  • Respuestas
  • Intenciones del usuario
  • Conceptos derivados (p. ej. tema “Geografía”)