KonfiguracjaMCP

MCP

Bob Shell obsługuje Model Context Protocol (MCP), umożliwiając rozszerzenie możliwości Boba poprzez łączenie się z zewnętrznymi usługami i narzędziami. Ten przewodnik wyjaśnia, jak konfigurować i używać serwerów MCP z Bob Shell.

Co to jest MCP?

Serwer MCP (Model Context Protocol) działa jako pomost między Bobem a zewnętrznymi usługami, takimi jak bazy danych, API lub niestandardowe skrypty. Dzięki MCP możesz rozszerzyć możliwości Boba poza jego wbudowane funkcje.

Serwery MCP zapewniają Bobowi:

  • Odkrywanie narzędzi: Dostęp do dostępnych narzędzi z ich opisami i parametrami
  • Wywoływanie narzędzi: Możliwość wywoływania określonych narzędzi z argumentami i otrzymywania ustrukturyzowanych odpowiedzi
  • Dostęp do zasobów: Możliwość odczytu danych z określonych zasobów

Dlaczego używać MCP?

  • Rozszerzanie funkcjonalności: Dodaj niestandardowe możliwości do Boba, które nie są dostępne od razu
  • Integracja z usługami: Połącz Boba z bazami danych, API i innymi systemami
  • Automatyzacja przepływów pracy: Twórz wyspecjalizowane narzędzia dla swoich konkretnych potrzeb
  • Udostępnianie możliwości: Dystrybuuj przydatne narzędzia w całym zespole

Konfigurowanie serwerów MCP

Możesz zarządzać konfiguracjami serwera MCP na dwóch poziomach:

  1. Konfiguracja globalna: Ustawienia w <USER_HOME>/.bob/mcp_settings.json stosują się do wszystkich przestrzeni roboczych
  2. Konfiguracja na poziomie projektu: Ustawienia w .bob/mcp.json stosują się tylko do bieżącego projektu

Gdy nazwa serwera istnieje zarówno w konfiguracji globalnej, jak i projektowej, konfiguracja na poziomie projektu ma pierwszeństwo.

Edytuj pliki ustawień MCP

Użyj Bob IDE lub innego edytora tekstu, aby zmodyfikować pliki ustawień MCP.

Odwołaj się do następującego przykładu:

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

Właściwości konfiguracji

Każda konfiguracja serwera wymaga jednej z tych właściwości:

  • command: Ścieżka do pliku wykonywalnego dla transportu Stdio
  • url: URL punktu końcowego SSE dla serwerów zdalnych
  • httpURL: URL punktu końcowego HTTP dla strumieniowego http

Opcjonalne właściwości obejmują:

  • args: Argumenty wiersza poleceń dla transportu Stdio
  • headers: Niestandardowe nagłówki HTTP dla transportu SSE
  • env: Zmienne środowiskowe dla procesu serwera
  • cwd: Katalog roboczy dla transportu Stdio
  • timeout: Limit czasu żądania w milisekundach (domyślnie: 600 000ms; 10min)
  • alwaysAllow: Nazwy narzędzi do automatycznego zatwierdzania. Bob Shell odczytuje te wpisy z mcp.json i stosuje je na początku każdego zadania, dzięki czemu wymienione narzędzia nie wymagają zatwierdzenia.
  • disabled: Ustaw na true, aby wyłączyć serwer

Typy transportu

MCP obsługuje dwa sposoby komunikacji z serwerami:

Transport STDIO

Transport STDIO uruchamia serwery lokalnie na twoim komputerze:

  • Używa standardowych strumieni wejścia/wyjścia do komunikacji
  • Zapewnia niższe opóźnienie i lepsze bezpieczeństwo
  • Działa jako proces potomny na twoim komputerze

Przykładowa konfiguracja:

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

Transport SSE

Transport SSE łączy się ze zdalnymi serwerami przez HTTP/HTTPS:

  • Używa protokołu Server-Sent Events
  • Działa z serwerami hostowanymi na różnych komputerach
  • Wymaga dostępu do sieci

Przykładowa konfiguracja:

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

Transport Streamable HTTP

Transport Streamable HTTP łączy się z serwerami zdalnymi za pomocą HTTP:

  • Używa dwukierunkowego połączenia HTTP
  • Obsługuje zarówno komunikaty żądanie/odpowiedź, jak i komunikaty wysyłane przez serwer
  • Działa z serwerami hostowanymi na różnych maszynach

Przykładowa konfiguracja:

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

Przykłady specyficzne dla platformy

Konfiguracja Windows

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

Konfiguracja macOS i Linux

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

Konfiguracja menedżera wersji runtime

Podczas używania menedżerów wersji, takich jak asdf lub mise:

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
Jak oceniasz ten temat?