配置MCP

MCP

Bob Shell 支援模型上下文協定(MCP),允許您透過連接到外部服務和工具來擴展 Bob 的功能。本指南說明如何配置和使用 MCP 伺服器與 Bob Shell。

什麼是 MCP?

MCP(模型上下文協定)伺服器充當 Bob 與外部服務(如資料庫、API 或自訂腳本)之間的橋樑。透過 MCP,您可以將 Bob 的功能擴展到其內建功能之外。

MCP 伺服器為 Bob 提供:

  • **工具發現:**存取可用工具及其說明和參數
  • **工具呼叫:**使用參數呼叫特定工具並接收結構化回應的能力
  • **資源存取:**從特定資源讀取資料的能力

為什麼使用 MCP?

  • **擴展功能:**為 Bob 新增開箱即用不可用的自訂功能
  • **與服務整合:**將 Bob 連接到您的資料庫、API 和其他系統
  • **自動化工作流程:**為您的特定需求建立專門的工具
  • **共享功能:**在團隊中分發有用的工具

配置 MCP 伺服器

您可以在兩個層級管理 MCP 伺服器配置:

  1. 全域配置<USER_HOME>/.bob/mcp_settings.json 中的設定套用於所有工作區
  2. 專案層級配置.bob/mcp.json 中的設定僅套用於當前專案

當伺服器名稱同時存在於全域和專案配置中時,專案層級配置優先

編輯 MCP 設定檔案

使用 Bob IDE 或其他文字編輯器修改您的 MCP 設定檔案。

參考以下範例:

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

配置屬性

每個伺服器配置需要以下屬性之一:

  • command:Stdio 傳輸的可執行檔路徑
  • url:遠端伺服器的 SSE 端點 URL
  • httpURL:可串流 http 的 HTTP 端點 URL

可選屬性包括:

  • args:Stdio 傳輸的命令列參數
  • headers:SSE 傳輸的自訂 HTTP 標頭
  • env:伺服器程序的環境變數
  • cwd:Stdio 傳輸的工作目錄
  • timeout:請求逾時(毫秒)(預設值:600,000ms; 10min)
  • alwaysAllow:要自動核准的工具名稱。Bob Shell 從 mcp.json 讀取這些項目並在每個任務開始時套用,因此列出的工具不會提示審核。
  • disabled:設定為 true 以停用伺服器

傳輸類型

MCP 支援兩種與伺服器通訊的方式:

STDIO 傳輸

STDIO 傳輸在您的機器上本地執行伺服器:

  • 使用標準輸入/輸出串流進行通訊
  • 提供較低的延遲和更好的安全性
  • 在您的機器上作為子程序執行

範例配置:

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

SSE 傳輸

SSE 傳輸透過 HTTP/HTTPS 連接到遠端伺服器:

  • 使用伺服器傳送事件協定
  • 適用於託管在不同機器上的伺服器
  • 需要網路存取

範例配置:

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

Streamable HTTP 傳輸

Streamable HTTP 傳輸使用 HTTP 連線到遠端伺服器:

  • 使用雙向 HTTP 連線
  • 同時支援請求/回應訊息和伺服器推送訊息
  • 適用於托管在不同機器上的伺服器

範例設定:

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

平台特定範例

Windows 配置

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

macOS 和 Linux 配置

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

執行階段版本管理器配置

使用版本管理器(如 asdfmise)時:

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
這個主題如何?