配置MCP

MCP

Bob Shell 支持模型上下文协议(MCP),允许您通过连接到外部服务和工具来扩展 Bob 的功能。本指南解释了如何配置和使用 Bob Shell 的 MCP 服务器。

什么是 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"
      ]
    }
  }
}
这个主题怎么样?