ConfigurazioneMCP

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:

  1. Configurazione globale: Le impostazioni in <USER_HOME>/.bob/mcp_settings.json si applicano a tutti i workspace
  2. Configurazione a livello di progetto: Le impostazioni in .bob/mcp.json si 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 stdio
  • url: URL endpoint SSE per server remoti
  • httpURL: URL endpoint HTTP per trasporto HTTP in streaming

Le proprietà opzionali includono:

  • args: Argomenti da riga di comando per il trasporto stdio
  • headers: Header HTTP personalizzati per il trasporto SSE
  • env: Variabili d'ambiente per il processo server
  • cwd: Directory di lavoro per il trasporto stdio
  • timeout: Timeout richiesta in millisecondi (predefinito: 600.000 ms / 10 minuti)
  • alwaysAllow: Nomi strumenti da approvare automaticamente. Bob Shell legge queste voci da mcp.json e le applica all'avvio di ogni task, così gli strumenti elencati non richiedono approvazione.
  • disabled: Imposta su true per 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

Quando usi gestori di versioni come asdf o mise:

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
Come valuti questo argomento?