Aller au contenu principal

Outils MCP

Sinaptic® DROID+ prend en charge le protocole Model Context Protocol (MCP) pour connecter des outils externes à vos agents. Les serveurs MCP fournissent des capacités telles que la recherche web, l'accès aux fichiers, les requêtes de base de données et toute API personnalisée — toutes disponibles pour vos agents en tant qu'outils appelables.

Fonctionnement du MCP dans Sinaptic® DROID+

Les serveurs MCP s'exécutent en tant que sous-processus aux côtés de Sinaptic® DROID+. Ils communiquent via stdio en utilisant JSON-RPC 2.0. Lorsqu'un agent a besoin d'utiliser un outil, Sinaptic® DROID+ envoie une requête au serveur MCP approprié et renvoie le résultat au LLM.

Agent → DROID+ → Serveur MCP (sous-processus) → Service externe
← Résultat

Chaque serveur MCP déclare un ensemble d'outils avec des noms, des descriptions et des schémas d'entrée. Le LLM les voit comme des appels de fonctions disponibles.

Configuration

Les serveurs MCP sont configurés dans droid.yaml sous la section 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"]

Chaque entrée de serveur spécifie :

  • command — l'exécutable à lancer
  • args — les arguments de la ligne de commande
  • env — les variables d'environnement transmises au sous-processus (prend en charge la syntaxe ${VAR})

Utilisation des outils MCP dans les agents

Une fois les serveurs MCP configurés globalement, les agents peuvent utiliser leurs outils en y faisant référence :

# configs/agents/research-agent.yaml
name: "research-agent"
description: "Agent capable de faire des recherches sur le web et de lire des fichiers"

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

personality: |
Vous êtes un assistant de recherche. Utilisez la recherche web pour trouver des informations actuelles
et le système de fichiers pour lire des documents de référence.

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

# Les outils MCP des serveurs configurés sont automatiquement disponibles

Lorsque des serveurs MCP sont configurés dans droid.yaml, leurs outils sont disponibles pour tous les agents. Le LLM reçoit les définitions des outils dans le cadre du schéma d'appel de fonctions et peut les invoquer selon les besoins.

Serveurs MCP populaires

Recherche Web (Brave)

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

Fournit l'outil web_search. Nécessite une clé API Brave Search.

Accès au système de fichiers

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

Fournit les outils read_file, write_file, list_directory. L'argument de chemin restreint l'accès à ce répertoire.

Base de données (PostgreSQL)

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

Fournit l'outil query pour les requêtes SQL en lecture seule sur votre base de données.

Serveurs MCP personnalisés

Vous pouvez écrire votre propre serveur MCP dans n'importe quel langage. Le serveur doit simplement :

  1. Accepter des messages JSON-RPC 2.0 sur stdin
  2. Écrire les réponses sur stdout
  3. Déclarer les outils disponibles via la méthode tools/list

Exemple avec un serveur MCP en Python :

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

Consultez la spécification MCP pour plus de détails sur la création de serveurs.

MCP + Docker

Lors de l'exécution de Sinaptic® DROID+ dans Docker, les serveurs MCP ont besoin que leurs environnements d'exécution soient disponibles dans le conteneur. Pour les serveurs MCP basés sur npm, vous aurez besoin de Node.js dans l'image.

Option 1 : Utilisez un Dockerfile personnalisé qui ajoute Node.js :

FROM sinapticai/droid:latest AS base
# Ajouter les dépendances du serveur 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/

Option 2 : Exécutez les serveurs MCP en tant que conteneurs séparés et configurez Sinaptic® DROID+ pour qu'il se connecte via le réseau plutôt que via stdio (nécessite un transport MCP compatible réseau).

Débogage du MCP

Activez la journalisation de débogage pour voir la communication MCP :

logging:
level: "debug"

Cela enregistrera tous les messages JSON-RPC entre Sinaptic® DROID+ et les serveurs MCP, y compris les invocations d'outils et les résultats.

Limitations

  • Les serveurs MCP de la Community Edition fonctionnent de la même manière que dans les éditions Pro/Enterprise — il n'y a aucune restriction de fonctionnalités sur le MCP.
  • Chaque serveur MCP s'exécute en tant que sous-processus séparé. Gardez un nombre raisonnable (généralement 2 à 5 serveurs).
  • Les serveurs MCP doivent être disponibles sur le système où Sinaptic® DROID+ s'exécute (ou dans le conteneur).