MCP
Bob Shell supporta il Model Context Protocol (MCP), che ti consente di estendere le capacità di Bob connettendoti a servizi e strumenti esterni.
Cos'è MCP?
Un server MCP (Model Context Protocol) funge da ponte tra Bob e servizi esterni come database, API o script personalizzati. Con MCP, puoi estendere le capacità di Bob oltre le sue funzionalità integrate.
I server MCP forniscono a Bob:
- Scoperta strumenti: Accesso agli strumenti disponibili con le loro descrizioni e parametri
- Invocazione strumenti: La capacità di invocare strumenti specifici con argomenti e ricevere risposte strutturate
- Accesso risorse: La capacità di leggere dati da risorse specifiche
Vantaggi di MCP
- Estendere funzionalità: Aggiungi capacità personalizzate a Bob che non sono disponibili per impostazione predefinita
- Integrare con servizi: Connetti Bob ai tuoi database, API e altri sistemi
- Automatizzare flussi di lavoro: Crea strumenti specializzati per le tue esigenze specifiche
- Condividere capacità: Distribuisci strumenti utili nel tuo team
Configurare i server MCP
Puoi gestire le configurazioni dei server MCP a due livelli:
- Configurazione globale: Le impostazioni in
<USER_HOME>/.bob/mcp_settings.jsonsi applicano a tutti i workspace - Configurazione a livello di progetto: Le impostazioni in
.bob/mcp.jsonsi applicano solo al progetto corrente
Quando un nome server esiste sia nelle configurazioni globali che di progetto, la configurazione a livello di progetto ha la precedenza.
Modificare i file di impostazioni MCP
Usa Bob IDE o qualsiasi editor di testo per modificare i tuoi file di impostazioni MCP.
Il seguente esempio mostra una configurazione di base del server Stdio:
{
"mcpServers": {
"server1": {
"command": "python",
"args": ["/path/to/server.py"],
"env": {
"API_KEY": "your_api_key"
},
"alwaysAllow": ["tool1", "tool2"],
"disabled": false
}
}
}Proprietà di configurazione
Ogni configurazione server richiede una di queste proprietà:
command: Percorso all'eseguibile per il trasporto stdiourl: URL endpoint SSE per server remotihttpURL: URL endpoint HTTP per trasporto HTTP in streaming
Le proprietà opzionali includono:
args: Argomenti da riga di comando per il trasporto stdioheaders: Header HTTP personalizzati per il trasporto SSEenv: Variabili d'ambiente per il processo servercwd: Directory di lavoro per il trasporto stdiotimeout: Timeout richiesta in millisecondi (predefinito: 600.000 ms / 10 minuti)alwaysAllow: Nomi strumenti da approvare automaticamente. Bob Shell legge queste voci damcp.jsone le applica all'avvio di ogni task, così gli strumenti elencati non richiedono approvazione.disabled: Imposta sutrueper disabilitare il server
Tipi di trasporto
MCP supporta tre modi per comunicare con i server:
Trasporto Stdio
Il trasporto Stdio esegue i server localmente sul tuo computer:
- Utilizza flussi di input/output standard per la comunicazione
- Fornisce latenza inferiore e migliore sicurezza
- Viene eseguito come processo figlio sul tuo computer
Configurazione di esempio:
{
"mcpServers": {
"local-server": {
"command": "node",
"args": ["server.js"],
"cwd": "/path/to/project",
"env": {
"API_KEY": "your_api_key"
},
"alwaysAllow": ["tool1", "tool2"]
}
}
}Trasporto SSE
Il trasporto SSE si connette a server remoti tramite HTTP/HTTPS:
- Utilizza il protocollo Server-Sent Events
- Funziona con server ospitati su computer diversi
- Richiede accesso alla rete
Configurazione di esempio:
{
"mcpServers": {
"remote-server": {
"url": "https://your-server-url.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
},
"alwaysAllow": ["tool3"]
}
}
}Trasporto HTTP in streaming
Il trasporto HTTP in streaming si connette a server remoti tramite HTTP:
- Utilizza una connessione HTTP bidirezionale
- Supporta sia messaggi di richiesta/risposta che messaggi inviati dal server
- Funziona con server ospitati su macchine diverse
Configurazione di esempio:
{
"mcpServers": {
"remote-server": {
"httpURL": "https://your-server-url.com/mcp"
}
}
}Esempi specifici per piattaforma
Configurazione Windows
{
"mcpServers": {
"puppeteer": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
}Configurazione macOS e Linux
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
}Configurazione Runtime Version Manager
{
"mcpServers": {
"mcp-batchit": {
"command": "mise",
"args": [
"x",
"--",
"node",
"/Users/myself/workspace/mcp-batchit/build/index.js"
],
"alwaysAllow": [
"search",
"batch_execute"
]
}
}
}Dati di telemetria
Scopri i dati di telemetria che Bob Shell può raccogliere, come vengono utilizzati per migliorare il prodotto e come abilitare o disabilitare la raccolta dei dati.
Comandi slash
Crea comandi slash personalizzati per automatizzare i flussi di lavoro e standardizzare le pratiche del team.