ConfigurationMCP

MCP

Bob Shell prend en charge le Model Context Protocol (MCP), qui vous permet d'étendre les capacités de Bob en vous connectant à des services et outils externes.

Qu'est-ce que MCP ?

Un serveur MCP (Model Context Protocol) agit comme un pont entre Bob et des services externes tels que des bases de données, des API ou des scripts personnalisés. Avec MCP, vous pouvez étendre les capacités de Bob au-delà de ses fonctionnalités intégrées.

Les serveurs MCP fournissent à Bob :

  • Découverte d'outils : Accès aux outils disponibles avec leurs descriptions et paramètres
  • Invocation d'outils : La capacité d'invoquer des outils spécifiques avec des arguments et de recevoir des réponses structurées
  • Accès aux ressources : La capacité de lire des données à partir de ressources spécifiques

Avantages de MCP

  • Étendre les fonctionnalités : Ajoutez des capacités personnalisées à Bob qui ne sont pas disponibles par défaut
  • Intégrer avec des services : Connectez Bob à vos bases de données, API et autres systèmes
  • Automatiser les flux de travail : Créez des outils spécialisés pour vos besoins spécifiques
  • Partager les capacités : Distribuez des outils utiles dans votre équipe

Configuration des serveurs MCP

Vous pouvez gérer les configurations de serveur MCP à deux niveaux :

  1. Configuration globale : Les paramètres dans <USER_HOME>/.bob/mcp_settings.json s'appliquent à tous les espaces de travail
  2. Configuration au niveau du projet : Les paramètres dans .bob/mcp.json s'appliquent uniquement au projet actuel

Si un nom de serveur existe à la fois dans les configurations globales et de projet, la configuration au niveau du projet a la priorité.

Modifier les fichiers de paramètres MCP

Utilisez Bob IDE ou un autre éditeur de texte pour modifier vos fichiers de paramètres MCP.

L'exemple suivant montre une configuration de serveur Stdio de base :

{
  "mcpServers": {
    "server1": {
      "command": "python",
      "args": ["/path/to/server.py"],
      "env": {
        "API_KEY": "your_api_key"
      },
      "alwaysAllow": ["tool1", "tool2"],
      "disabled": false
    }
  }
}

Propriétés de configuration

Chaque configuration de serveur nécessite l'une de ces propriétés :

  • command : Chemin vers l'exécutable pour le transport stdio
  • url : URL du point de terminaison SSE pour les serveurs distants
  • httpURL : URL du point de terminaison HTTP pour le transport HTTP streamable

Les propriétés optionnelles incluent :

  • args : Arguments de ligne de commande pour le transport stdio
  • headers : En-têtes HTTP personnalisés pour le transport SSE
  • env : Variables d'environnement pour le processus serveur
  • cwd : Répertoire de travail pour le transport stdio
  • timeout : Délai d'expiration de la requête en millisecondes (par défaut : 600 000 ms / 10 minutes)
  • alwaysAllow : Noms d'outils à approuver automatiquement. Bob Shell lit ces entrées depuis mcp.json et les applique au démarrage de chaque tâche, de sorte que les outils listés ne déclenchent pas de demande d'approbation.
  • disabled : Définir sur true pour désactiver le serveur

Types de transport

MCP prend en charge trois façons de communiquer avec les serveurs :

Transport Stdio

Le transport Stdio exécute les serveurs localement sur votre ordinateur :

  • Utilise les flux d'entrée/sortie standard pour la communication
  • Offre une latence plus faible et une meilleure sécurité
  • S'exécute comme un processus enfant sur votre ordinateur

Exemple de configuration :

{
 "mcpServers": {
   "local-server": {
     "command": "node",
     "args": ["server.js"],
     "cwd": "/path/to/project",
     "env": {
       "API_KEY": "your_api_key"
     },
     "alwaysAllow": ["tool1", "tool2"]
   }
 }
}

Transport SSE

Le transport SSE se connecte aux serveurs distants via HTTP/HTTPS :

  • Utilise le protocole Server-Sent Events
  • Fonctionne avec des serveurs hébergés sur différents ordinateurs
  • Nécessite un accès réseau

Exemple de configuration :

{
 "mcpServers": {
   "remote-server": {
     "url": "https://your-server-url.com/mcp",
     "headers": {
       "Authorization": "Bearer your-token"
     },
     "alwaysAllow": ["tool3"]
   }
 }
}

Transport HTTP streamable

Le transport HTTP streamable se connecte aux serveurs distants via HTTP :

  • Utilise une connexion HTTP bidirectionnelle
  • Prend en charge les messages de requête/réponse et les messages poussés par le serveur
  • Fonctionne avec des serveurs hébergés sur différentes machines

Exemple de configuration :

{
 "mcpServers": {
   "remote-server": {
     "httpURL": "https://your-server-url.com/mcp"
   }
 }
}

Exemples spécifiques à la plateforme

Configuration Windows

{
  "mcpServers": {
    "puppeteer": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

Configuration macOS et Linux

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

Configuration du gestionnaire de versions d'exécution

Lors de l'utilisation de gestionnaires de versions comme asdf ou mise :

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
Comment trouvez-vous ce sujet ?