跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.devin.ai/llms.txt

Use this file to discover all available pages before exploring further.

**MCP (Model Context Protocol) **是一种让 LLM 能够访问自定义工具和服务的协议。 MCP 客户端 (此处为 Cascade) 可以向 MCP 服务器发出请求,以访问其提供的工具。 Cascade 现已原生支持 MCP,让你可以接入自己选择的 MCP 服务器供 Cascade 使用。 更多信息请参阅官方 MCP 文档
企业版用户必须通过设置手动开启此功能

添加新的 MCP

你可以通过 MCP Marketplace 添加新的 MCP。进入方式包括:点击 Cascade 面板右上角菜单中的 MCPs 图标,或前往 Windsurf Settings > Cascade > MCP Servers 部分。 如果你找不到需要的 MCP,可以通过编辑原始 mcp_config.json 文件手动添加。 官方 MCP 会显示蓝色对勾,表示它们由对应服务的官方公司提供。 点击某个 MCP 后,只需点击 Install,即可将该服务器及其工具提供给 Cascade 使用。 Devin Desktop 支持通过 deeplink 一键安装 MCP。你可以使用这些链接直接在 Devin Desktop 中打开 MCP 注册表页面,这非常适合分享 MCP 服务器推荐,或在文档中嵌入安装按钮。 deeplink 格式如下:
windsurf://windsurf-mcp-registry?serverName=<server-name>
  • 使用 serverName:打开指定服务器的 MCP 注册表页面,用户可以在其中查看并安装该服务器。
  • 不使用 serverName:打开 MCP Marketplace 页面。
例如,windsurf://windsurf-mcp-registry?serverName=github-mcp-server 会在 Devin Desktop 中打开 GitHub MCP 服务器的注册表页面。
一键安装深度链接要求用户所在团队已启用 MCP 访问权限。如果 MCP 访问已被 Admin 禁用,该深度链接将无法打开注册表页面。
Devin Desktop 支持 MCP 服务器的三种传输类型stdioStreamable HTTPSSE Devin Desktop 还支持为每种传输类型使用 OAuth。 对于 http 服务器,URL 应与端点地址一致,格式应类似于 https://<your-server-url>/mcp

配置 MCP 工具

每个 MCP 可访问的工具数量都有一定限制。Cascade 在任意时刻最多只能访问 100 个工具。 在每个 MCP 的设置页面中,你可以切换要启用的工具。要 打开某个 MCP 的设置,请点击 Cascade 面板右上角菜单中的 MCPs 图标,然后 点击所需的 MCP。

mcp_config.json

~/.codeium/windsurf/mcp_config.json 文件是一个 JSON 文件,包含 Cascade 可连接的服务器列表。 以下是一个配置示例,为 GitHub 配置了单个服务器:
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
      }
    }
  }
}
请务必为你要使用的服务器提供必填参数和环境变量。 一些示例服务器请参见官方 MCP 服务器参考代码仓库OpenTools 下面列出了一些常用 MCP 服务器的配置示例。你可以将它们添加到 mcp_config.json 文件中。
GitHub MCP 服务器提供用于代码仓库管理、文件操作、issue 跟踪和拉取请求管理的工具。使用 npx:
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
      }
    }
  }
}
使用 Docker:
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
      }
    }
  }
}
要创建个人访问令牌,请访问 GitHub Settings > Developer settings > Personal access tokens
Slack MCP 服务器支持频道管理、消息收发和工作区交互。
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "<YOUR_SLACK_BOT_TOKEN>",
        "SLACK_TEAM_ID": "<YOUR_SLACK_TEAM_ID>"
      }
    }
  }
}
要设置 Slack bot 令牌:
  1. api.slack.com/apps 创建一个 Slack App
  2. 添加所需的 OAuth 作用域 (例如 channels:readchat:writeusers:read)
  3. 将该 app 安装到你的工作区,并复制 Bot User OAuth Token
PostgreSQL MCP 服务器提供对 PostgreSQL 数据库的只读访问,包括架构检查和查询执行。
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://user:password@localhost:5432/database"
      }
    }
  }
}
为确保安全,PostgreSQL 服务器默认提供只读访问。请确保你的连接字符串使用具有受限权限的适当凭据。
Filesystem MCP 服务器可安全访问本地文件和目录,并支持可配置的访问控制。
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@modelcontextprotocol/server-filesystem",
        "/path/to/allowed/directory"
      ]
    }
  }
}
你可以通过添加额外的路径参数来指定多个允许访问的目录。只有这些目录中的文件可被访问。
Memory MCP 服务器使用知识图谱提供持久化记忆系统,使 Cascade 能够跨会话记住信息。
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}
该 Memory 服务器会将数据存储在本地,并可在不同会话之间持续保留,因此非常适合维护有关项目、偏好设置和已学习信息的上下文。

远程 HTTP MCP

需要注意的是,远程 HTTP MCP 的配置方式略有不同,需要使用 serverUrlurl 字段。 以下是 HTTP 服务器的配置示例:
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "API_KEY": "value"
      }
    }
  }
}

配置插值

~/.codeium/windsurf/mcp_config.json 文件支持在以下字段中使用变量插值: commandargsenvserverUrlurlheaders。这样你就可以避免在配置文件中直接硬编码 secrets。 支持以下两种插值模式:
  • ${env:VAR_NAME} — 替换为环境变量 VAR_NAME 的值。如果该变量未设置,则会解析为空字符串。
  • ${file:/path/to/file} — 替换为指定路径下文件内容去除首尾空白后的结果。支持波浪号路径 (例如 ~/secrets/key.txt) 。如果无法读取文件,则保留该模式字符串不变。
下面是一个在 headers 中使用环境变量的示例:
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "API_KEY": "Bearer ${env:AUTH_TOKEN}"
      }
    }
  }
}
以下是一个从文件中读取 API key 的示例:
{
  "mcpServers": {
    "my-server": {
      "command": "node",
      "args": ["server.js"],
      "env": {
        "API_KEY": "${file:~/.secrets/api_key.txt}"
      }
    }
  }
}

Admin 控制 (团队和企业)

团队管理员可以为团队启用或禁用 MCP 访问权限,也可以将经批准的 MCP 服务器加入白名单,供团队使用:

MCP Registry

企业团队可以配置自定义 MCP 注册表,以替代默认的 Devin Desktop MCP Marketplace。团队可以关联自己的注册表 URL,以控制其用户可使用哪些 MCP。
注册表是管理 MCP 访问权限的首选方式,不过白名单也同样适用。

配置自定义注册表

  1. 前往团队设置
  2. 找到 MCP Registry URLs 设置
  3. 添加一个或多个注册表 URL
配置了多个注册表 URL 后,Devin Desktop 会将所有注册表取并集——用户将看到来自所有已配置来源的 MCP 汇总结果。随后,团队的 MCP marketplace 将从这些内部注册表拉取内容,而不是默认的 Devin Desktop 注册表。
自定义注册表必须遵循官方 MCP 注册表架构。这可确保兼容性以及标准化的服务器定义。

MCP 白名单

MCP 团队设置

在此为你的团队配置 MCP 设置。
只有当你拥有团队的 Admin 权限时,上方链接才可用。
默认情况下,团队内的用户可以配置自己的 MCP 服务器。不过,一旦你将哪怕一个 MCP 服务器加入白名单,所有未列入白名单的服务器都将被阻止
白名单中的 Server ID 必须与用户 mcp_config.json 中使用的键名完全匹配,且区分大小写。

服务器匹配的工作原理

当你将 MCP 服务器加入白名单时,系统会使用正则表达式模式匹配,并遵循以下规则:
  • 完整字符串匹配:所有模式都会自动加上锚点 (包裹为 ^(?:pattern)$) ,以防止部分匹配
  • Command 字段:必须精确匹配,或按你的正则表达式模式进行匹配
  • 参数数组:每个参数都会分别与其对应的模式匹配
  • 数组长度:白名单与用户配置中的参数数量必须完全一致
  • 特殊字符:像 $.[]() 这样的字符在正则表达式中具有特殊含义;如果你想按字面匹配,应使用 \ 进行转义

配置选项

Admin 白名单配置:
  • 服务器 ID: github-mcp-server
  • 服务器配置 (JSON): (留空)
{}
匹配的用户配置 (mcp_config.json):
{
  "mcpServers": {
    "github-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
      }
    }
  }
}
这允许用户安装 GitHub MCP 服务器并使用任意有效配置,只要服务器 ID 与插件商店中的条目一致即可。
Admin 白名单配置:
  • 服务器 ID: github-mcp-server
  • 服务器配置 (JSON):
{
  "command": "docker",
  "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "ghcr.io/github/github-mcp-server"
  ],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": ""
  }
}
匹配的用户配置 (mcp_config.json):
{
  "mcpServers": {
    "github-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
      }
    }
  }
}
用户必须使用这份精确配置——commandargs 只要有任何偏差都会被拦截。env 部分的值可以不同。
Admin 白名单配置:
  • 服务器 ID: python-mcp-server
  • 服务器配置 (JSON):
{
  "command": "python3",
  "args": ["/.*\\.py", "--port", "[0-9]+"]
}
匹配的用户配置 (mcp_config.json):
{
  "mcpServers": {
    "python-mcp-server": {
      "command": "python3",
      "args": ["/home/user/my_server.py", "--port", "8080"],
      "env": {
        "PYTHONPATH": "/home/user/mcp"
      }
    }
  }
}
此示例在保证安全性的同时为用户提供了灵活性:
  • 正则表达式 /.*\\.py 可匹配任意 Python 文件路径,例如 /home/user/my_server.py
  • 正则表达式 [0-9]+ 可匹配任意数字端口,例如 80803000
  • 用户可以自定义文件路径和端口,而管理员则可确保只会执行 Python 脚本

常见正则表达式模式

PatternMatchesExample
.*任意字符串/home/user/script.py
[0-9]+任意数字8080, 3000
[a-zA-Z0-9_]+字母、数字和下划线api_key_123
\\$HOME字面值 $HOME$HOME (不展开)
\\.py字面值 .pyscript.py
\\[cli\\]字面值 [cli]mcp[cli]

注意事项

Admin 配置指南

  • 环境变量env 部分不进行正则表达式匹配,用户可自由配置
  • 已禁用工具disabledTools 数组会单独处理,不属于白名单匹配的一部分
  • 区分大小写:所有匹配均区分大小写
  • 错误处理:无效的正则表达式模式会被记录,并导致访问被拒绝
  • 测试:请仔细测试你的正则表达式模式——限制过严的模式可能会阻止合法用例

故障排查

如果用户反馈他们的 MCP 服务器在列入白名单后无法正常使用:
  1. 检查精确匹配:确保白名单模式与用户的配置完全一致
  2. 验证正则表达式转义:特殊字符可能需要转义 (例如,表示字面量句点需写为 \.)
  3. 查看日志:无效的正则表达式模式会在日志中记录为警告
  4. 测试模式:使用正则表达式测试工具验证你的模式是否按预期生效
请记住:一旦你将任意服务器列入白名单,所有其他服务器都会自动被阻止,你的团队成员将无法使用它们。

一般信息

  • 由于 MCP 工具调用可能会执行由任意服务器实现者编写的代码,因此对于 MCP 工具调用失败,我们概不承担责任。再次强调:
  • 目前,我们支持 MCP 服务器的 工具资源提示