Saltar al contenido principal

Herramientas MCP

Sinaptic® DROID+ es compatible con el protocolo Model Context Protocol (MCP) para conectar herramientas externas a sus agentes. Los servidores MCP proporcionan capacidades como búsqueda web, acceso a archivos, consultas a bases de datos y cualquier API personalizada, todo disponible para sus agentes como herramientas invocables.

Cómo funciona MCP en Sinaptic® DROID+

Los servidores MCP se ejecutan como subprocesos junto con Sinaptic® DROID+. Se comunican a través de stdio utilizando JSON-RPC 2.0. Cuando un agente necesita utilizar una herramienta, Sinaptic® DROID+ envía una solicitud al servidor MCP correspondiente y devuelve el resultado al LLM.

Agente → DROID+ → Servidor MCP (subproceso) → Servicio externo
← Resultado

Cada servidor MCP declara un conjunto de herramientas con nombres, descripciones y esquemas de entrada. El LLM las ve como llamadas a funciones disponibles.

Configuración

Los servidores MCP se configuran en droid.yaml bajo la sección mcp:

mcp:
servers:
web-search:
command: "npx"
args: ["-y", "@anthropic/mcp-web-search"]
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"

filesystem:
command: "npx"
args: ["-y", "@anthropic/mcp-filesystem", "/data"]

Cada entrada de servidor especifica:

  • command: el ejecutable a ejecutar.
  • args: argumentos de la línea de comandos.
  • env: variables de entorno pasadas al subproceso (admite la sintaxis ${VAR}).

Uso de herramientas MCP en agentes

Una vez que los servidores MCP están configurados globalmente, los agentes pueden utilizar sus herramientas haciendo referencia a ellas:

# configs/agents/research-agent.yaml
name: "research-agent"
description: "Agente que puede buscar en la web y leer archivos"

model:
name: "gpt-4o-mini"

personality: |
Eres un asistente de investigación. Utiliza la búsqueda web para encontrar información actual
y el sistema de archivos para leer documentos de referencia.

tools:
- name: "current_time"
type: "builtin"

# Las herramientas MCP de los servidores configurados están disponibles automáticamente

Cuando los servidores MCP están configurados en droid.yaml, sus herramientas están disponibles para todos los agentes. El LLM recibe las definiciones de las herramientas como parte del esquema de llamada a funciones y puede invocarlas según sea necesario.

Servidores MCP populares

Búsqueda web (Brave)

mcp:
servers:
web-search:
command: "npx"
args: ["-y", "@anthropic/mcp-web-search"]
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"

Proporciona la herramienta web_search. Requiere una clave API de Brave Search.

Acceso al sistema de archivos

mcp:
servers:
filesystem:
command: "npx"
args: ["-y", "@anthropic/mcp-filesystem", "/data/docs"]

Proporciona las herramientas read_file, write_file, list_directory. El argumento de ruta restringe el acceso a ese directorio.

Base de datos (PostgreSQL)

mcp:
servers:
database:
command: "npx"
args: ["-y", "@anthropic/mcp-postgres"]
env:
DATABASE_URL: "${DATABASE_URL}"

Proporciona la herramienta query para realizar consultas SQL de solo lectura en su base de datos.

Servidores MCP personalizados

Puede escribir su propio servidor MCP en cualquier lenguaje. El servidor solo necesita:

  1. Aceptar mensajes JSON-RPC 2.0 en stdin.
  2. Escribir respuestas en stdout.
  3. Declarar las herramientas disponibles a través del método tools/list.

Ejemplo con un servidor MCP de Python:

mcp:
servers:
my-tools:
command: "python"
args: ["./tools/my_server.py"]
env:
API_TOKEN: "${MY_API_TOKEN}"

Consulte la especificación MCP para obtener detalles sobre la creación de servidores.

MCP + Docker

Cuando se ejecuta Sinaptic® DROID+ en Docker, los servidores MCP necesitan que sus tiempos de ejecución estén disponibles dentro del contenedor. Para los servidores MCP basados en npm, necesitará Node.js en la imagen.

Opción 1: Utilice un Dockerfile personalizado que añada Node.js:

FROM sinapticai/droid:latest AS base
# Añadir dependencias del servidor MCP
COPY --from=node:20-alpine /usr/local/bin/node /usr/local/bin/
COPY --from=node:20-alpine /usr/local/bin/npx /usr/local/bin/

Opción 2: Ejecute los servidores MCP como contenedores separados y configure Sinaptic® DROID+ para conectarse a través de la red en lugar de stdio (requiere un transporte MCP con capacidad de red).

Depuración de MCP

Habilite el registro de depuración para ver la comunicación MCP:

logging:
level: "debug"

Esto registrará todos los mensajes JSON-RPC entre Sinaptic® DROID+ y los servidores MCP, incluidas las invocaciones de herramientas y los resultados.

Limitaciones

  • Los servidores MCP en Community Edition funcionan igual que en Pro/Enterprise: no hay restricciones de funciones en MCP.
  • Cada servidor MCP se ejecuta como un subproceso independiente. Mantenga un número razonable (normalmente de 2 a 5 servidores).
  • Los servidores MCP deben estar disponibles en el sistema donde se ejecuta Sinaptic® DROID+ (o en el contenedor).