模型上下文协议

Zed 使用模型上下文协议与上下文服务器进行交互。

模型上下文协议 (MCP) 是一种开放协议,可实现大型语言模型 (LLM) 应用程序与外部数据源和工具之间的无缝集成。无论您是构建 AI 驱动的 IDE、增强聊天界面还是创建自定义 AI 工作流,MCP 都提供了一种标准化的方式,将 LLM 与其所需的上下文连接起来。

请查看Anthropic 新闻帖子Zed 博客帖子,以获取 MCP 的一般介绍。

安装 MCP 服务器

作为扩展

在 Zed 中使用 MCP 服务器的一种方法是将其作为扩展暴露。请查看MCP 服务器扩展页面,了解如何创建自己的扩展。

感谢我们出色的社区,许多 MCP 服务器已作为扩展添加。您可以通过以下任一途径查看可用的服务器:

  1. Zed 网站
  2. 在应用程序中,打开命令面板并运行 zed: extensions 操作
  3. 在应用程序中,转到代理面板的右上角菜单,查找“查看服务器扩展”菜单项

无论如何,以下是一些流行的可用服务器

作为自定义服务器

创建扩展不是在 Zed 中使用 MCP 服务器的唯一方法。您可以通过将它们的命令直接添加到您的 settings.json 来连接它们,如下所示

{
  "context_servers": {
    "your-mcp-server": {
      "source": "custom",
      "command": "some-command",
      "args": ["arg-1", "arg-2"],
      "env": {}
    }
  }
}

或者,您还可以通过访问代理面板的“设置”视图(也可通过 agent: open settings 操作访问)来添加自定义服务器。在那里,您可以点击“添加自定义服务器”按钮后出现的模态框进行添加。

使用 MCP 服务器

配置检查

无论您如何安装 MCP 服务器,无论是作为扩展安装还是直接添加,大多数服务器在设置过程中仍需要某种配置。

对于扩展,安装后,Zed 会弹出一个模态框,显示您正确设置它所需的内容。例如,GitHub MCP 扩展要求您添加一个个人访问令牌

对于自定义服务器,请务必查看提供商文档,以确定需要添加到 JSON 中的命令、参数和环境变量类型。

要检查您的 MCP 服务器是否已正确配置,请转到代理面板的设置视图,并查看其名称旁边的指示灯点。如果它们运行正常,指示灯将为绿色,其工具提示将显示“服务器处于活动状态”。否则,其他颜色和工具提示消息将指示正在发生什么。

代理面板使用

安装完成后,您可以返回代理面板并开始提示。

在从 MCP 服务器中选择工具方面,有些模型比其他模型更好。提及服务器名称总有助于模型选择它。

但是,如果您想确保使用给定的 MCP 服务器,您可以创建自定义配置文件,其中所有内置工具(或可能与服务器工具发生冲突的工具)都已关闭,并且仅打开来自 MCP 服务器的工具。

例如,Dagger 团队建议使用他们的Container Use MCP 服务器这样做

"agent": {
  "profiles": {
    "container-use": {
      "name": "Container Use",
      "tools": {
        "fetch": true,
        "thinking": true,
        "copy_path": false,
        "find_path": false,
        "delete_path": false,
        "create_directory": false,
        "list_directory": false,
        "diagnostics": false,
        "read_file": false,
        "open": false,
        "move_path": false,
        "grep": false,
        "edit_file": false,
        "terminal": false
      },
      "enable_all_context_servers": false,
      "context_servers": {
        "container-use": {
          "tools": {
            "environment_create": true,
            "environment_add_service": true,
            "environment_update": true,
            "environment_run_cmd": true,
            "environment_open": true,
            "environment_file_write": true,
            "environment_file_read": true,
            "environment_file_list": true,
            "environment_file_delete": true,
            "environment_checkpoint": true
          }
        }
      }
    }
  }
}

工具批准

Zed 的代理面板包含 agent.always_allow_tool_actions 设置,如果将其设置为 false,则要求您为任何编辑尝试以及来自 MCP 服务器的工具调用授予权限。

您可以通过在 settings.json 中或通过代理面板的设置视图将此键设置为 true 来更改此设置。

外部代理

请注意,对于通过代理客户端协议连接的外部代理,从 Zed 安装的 MCP 服务器的访问权限可能因 ACP 代理实现而异。

关于内置代理,Claude Code 和 Codex 都支持它,而 Gemini CLI 尚未支持。同时,请通过他们的文档了解如何为 Gemini CLI 添加 MCP 服务器支持。