KonfigurationMCP

MCP

Bob Shell unterstützt das Model Context Protocol (MCP), mit dem Sie Bobs Fähigkeiten durch Verbindung zu externen Diensten und Tools erweitern können.

Was ist MCP?

Ein MCP (Model Context Protocol)-Server fungiert als Brücke zwischen Bob und externen Diensten wie Datenbanken, APIs oder benutzerdefinierten Skripten. Mit MCP können Sie Bobs Fähigkeiten über seine eingebauten Funktionen hinaus erweitern.

MCP-Server bieten Bob:

  • Tool-Erkennung: Zugriff auf verfügbare Tools mit ihren Beschreibungen und Parametern
  • Tool-Aufruf: Die Fähigkeit, bestimmte Tools mit Argumenten aufzurufen und strukturierte Antworten zu erhalten
  • Ressourcenzugriff: Die Fähigkeit, Daten aus bestimmten Ressourcen zu lesen

Vorteile von MCP

  • Funktionalität erweitern: Fügen Sie Bob benutzerdefinierte Fähigkeiten hinzu, die nicht standardmäßig verfügbar sind
  • Mit Diensten integrieren: Verbinden Sie Bob mit Ihren Datenbanken, APIs und anderen Systemen
  • Workflows automatisieren: Erstellen Sie spezialisierte Tools für Ihre spezifischen Bedürfnisse
  • Fähigkeiten teilen: Verteilen Sie nützliche Tools in Ihrem Team

MCP-Server konfigurieren

Sie können MCP-Server-Konfigurationen auf zwei Ebenen verwalten:

  1. Globale Konfiguration: Einstellungen in <USER_HOME>/.bob/mcp_settings.json gelten für alle Workspaces
  2. Projektebenen-Konfiguration: Einstellungen in .bob/mcp.json gelten nur für das aktuelle Projekt

Wenn ein Servername sowohl in globalen als auch in Projektkonfigurationen existiert, hat die Projektebenen-Konfiguration Vorrang.

MCP-Einstellungsdateien bearbeiten

Verwenden Sie Bob IDE oder einen anderen Texteditor, um Ihre MCP-Einstellungsdateien zu ändern.

Das folgende Beispiel zeigt eine grundlegende Stdio-Server-Konfiguration:

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

Konfigurationseigenschaften

Jede Server-Konfiguration erfordert eine dieser Eigenschaften:

  • command: Pfad zur ausführbaren Datei für Stdio-Transport
  • url: SSE-Endpunkt-URL für Remote-Server
  • httpURL: HTTP-Endpunkt-URL für Streamable HTTP-Transport

Optionale Eigenschaften umfassen:

  • args: Befehlszeilenargumente für Stdio-Transport
  • headers: Benutzerdefinierte HTTP-Header für SSE-Transport
  • env: Umgebungsvariablen für den Serverprozess
  • cwd: Arbeitsverzeichnis für Stdio-Transport
  • timeout: Anfrage-Timeout in Millisekunden (Standard: 600.000 ms / 10 Minuten)
  • alwaysAllow: Tool-Namen zur automatischen Genehmigung. Bob Shell liest diese Einträge aus der mcp.json und wendet sie beim Start jeder Aufgabe an, sodass aufgelistete Tools keine Genehmigungsaufforderung auslösen.
  • disabled: Auf true setzen, um den Server zu deaktivieren

Transporttypen

MCP unterstützt drei Möglichkeiten zur Kommunikation mit Servern:

Stdio-Transport

Stdio-Transport führt Server lokal auf Ihrem Computer aus:

  • Verwendet Standard-Ein-/Ausgabeströme für die Kommunikation
  • Bietet geringere Latenz und bessere Sicherheit
  • Läuft als Kindprozess auf Ihrem Computer

Beispielkonfiguration:

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

SSE-Transport

SSE-Transport verbindet sich über HTTP/HTTPS mit Remote-Servern:

  • Verwendet Server-Sent Events-Protokoll
  • Funktioniert mit Servern, die auf verschiedenen Computern gehostet werden
  • Erfordert Netzwerkzugriff

Beispielkonfiguration:

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

Streamable HTTP-Transport

Streamable HTTP-Transport verbindet sich über HTTP mit Remote-Servern:

  • Verwendet eine bidirektionale HTTP-Verbindung
  • Unterstützt sowohl Anfrage/Antwort als auch server-gepushte Nachrichten
  • Funktioniert mit Servern, die auf verschiedenen Computern gehostet werden

Beispielkonfiguration:

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

Plattformspezifische Beispiele

Windows-Konfiguration

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

macOS- und Linux-Konfiguration

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

Runtime-Versions-Manager-Konfiguration

Bei Verwendung von Versions-Managern wie asdf oder mise:

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
Wie ist dieses Thema?