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:
- Konfiguracja globalna: Ustawienia w
<USER_HOME>/.bob/mcp_settings.jsonstosują się do wszystkich przestrzeni roboczych - Konfiguracja na poziomie projektu: Ustawienia w
.bob/mcp.jsonstosują 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 Stdiourl: URL punktu końcowego SSE dla serwerów zdalnychhttpURL: URL punktu końcowego HTTP dla strumieniowego http
Opcjonalne właściwości obejmują:
args: Argumenty wiersza poleceń dla transportu Stdioheaders: Niestandardowe nagłówki HTTP dla transportu SSEenv: Zmienne środowiskowe dla procesu serweracwd: Katalog roboczy dla transportu Stdiotimeout: Limit czasu żądania w milisekundach (domyślnie: 600 000ms; 10min)alwaysAllow: Nazwy narzędzi do automatycznego zatwierdzania. Bob Shell odczytuje te wpisy zmcp.jsoni stosuje je na początku każdego zadania, dzięki czemu wymienione narzędzia nie wymagają zatwierdzenia.disabled: Ustaw natrue, 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"
]
}
}
}