配置MCP
MCP
Bob Shell 支援模型上下文協定(MCP),允許您透過連接到外部服務和工具來擴展 Bob 的功能。本指南說明如何配置和使用 MCP 伺服器與 Bob Shell。
什麼是 MCP?
MCP(模型上下文協定)伺服器充當 Bob 與外部服務(如資料庫、API 或自訂腳本)之間的橋樑。透過 MCP,您可以將 Bob 的功能擴展到其內建功能之外。
MCP 伺服器為 Bob 提供:
- **工具發現:**存取可用工具及其說明和參數
- **工具呼叫:**使用參數呼叫特定工具並接收結構化回應的能力
- **資源存取:**從特定資源讀取資料的能力
為什麼使用 MCP?
- **擴展功能:**為 Bob 新增開箱即用不可用的自訂功能
- **與服務整合:**將 Bob 連接到您的資料庫、API 和其他系統
- **自動化工作流程:**為您的特定需求建立專門的工具
- **共享功能:**在團隊中分發有用的工具
配置 MCP 伺服器
您可以在兩個層級管理 MCP 伺服器配置:
- 全域配置:
<USER_HOME>/.bob/mcp_settings.json中的設定套用於所有工作區 - 專案層級配置:
.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 端點 URLhttpURL:可串流 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"
]
}
}
}執行階段版本管理器配置
{
"mcpServers": {
"mcp-batchit": {
"command": "mise",
"args": [
"x",
"--",
"node",
"/Users/myself/workspace/mcp-batchit/build/index.js"
],
"alwaysAllow": [
"search",
"batch_execute"
]
}
}
}這個主題如何?