> ## 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 通过外部工具服务器扩展 Devin CLI

MCP (Model Context Protocol) 可让你将外部工具服务器连接到 Devin CLI，使 Agent 能够访问 API、数据库、问题跟踪系统，以及任何其他你可以封装为 MCP 服务器的服务。

配置 MCP 服务器后，其中的工具会像内置工具一样对 Agent 可用。Agent 可以发现有哪些可用工具，并在需要时调用它们。

***

<div id="how-it-works">
  ## 工作方式
</div>

<Steps>
  <Step title="配置服务器">
    你可以在配置文件中通过命令、参数以及可选的环境变量来定义一个 MCP 服务器。
  </Step>

  <Step title="启动服务器">
    Devin CLI 会在需要时启动服务器进程。服务器随后会连接到外部 API (GitHub、Linear 等) 。
  </Step>

  <Step title="发现工具">
    Agent 会识别服务器提供了哪些工具 (例如 `create_issue`、`list_repos`) 。
  </Step>

  <Step title="执行工具">
    当 Agent 调用某个 MCP 工具时，请求会经由服务器发送到外部服务，并返回结果。
  </Step>
</Steps>

***

<div id="quick-example">
  ## 快速示例
</div>

将 GitHub MCP 服务器添加到你的项目：

```json theme={null}
// .devin/mcp_config.local.json  (已加入 .gitignore — 请勿将令牌提交至配置文件)
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}
```

现在，Agent 可以通过自然语言创建 issue、查看 PR、搜索代码仓库等。

***

<div id="permission-control">
  ## 权限控制
</div>

配置完成后，MCP 工具会以带命名空间的格式显示：`mcp__<server>__<tool>`。例如，名为 "github" 的服务器搭配名为 "create\_issue" 的工具时，会显示为 `mcp__github__create_issue`。

MCP 工具与内置工具受同一权限系统约束。你可以在多个层级控制访问权限：

```json theme={null}
{
  "permissions": {
    "allow": [
      "mcp__github__*"
    ],
    "deny": [
      "mcp__github__delete_repo"
    ]
  }
}
```

完整的权限语法请参阅[权限](/zh/cli/reference/permissions)。

***

<div id="prompts-as-slash-commands">
  ## 将提示用作斜杠命令
</div>

除工具外，MCP 服务器还可发布通过 MCP `prompts` 功能声明的可复用参数化**提示**。Devin CLI 会将每个提示作为斜杠命令提供：

```
/mcp__<server>__<prompt> [arguments]
```

例如，发布 `bug_report` 提示的 `linear` 服务器会生成 `/mcp__linear__bug_report`。提示命令会在命令面板中以独立的 **MCP** 类别列出，显示服务器发布的标题或描述，并附带根据提示所声明参数生成的参数提示：必填参数为 `<name>`，可选参数为 `[name]`。

发送该命令后，Devin CLI 会从服务器获取提示，并将服务器返回的消息作为该轮中你的消息。

<div id="how-arguments-map">
  ### 参数映射方式
</div>

你在命令名称后输入的内容会**按位置**映射到提示中声明的参数：第一个词对应第一个参数，第二个词对应第二个参数，依此类推。最后声明的参数会接收所有剩余文本，因此末尾的自由格式输入会完整保留：

```
/mcp__linear__bug_report ENG-1234 login page hangs after the SSO redirect
```

此处，`ENG-1234` 会填入第一个已声明的参数，该行其余内容则填入最后一个参数。如果提示未声明任何参数，你输入的任何内容都会追加到展开后的提示中，而不会被丢弃。

<Note>
  只有已连接的服务器才会提供其声明的命令 (启动时会在后台预热连接) ，但命令调用会按需解析——即使该命令从未被声明，输入 `/mcp__<server>__<prompt>` 也能正常工作，并会按需连接到服务器。
</Note>

<Tip>
  提示展开由 Agent 完成，而非终端 UI，因此相同的命令也会通过 ACP 发布——[Zed](/zh/cli/acp/zed) 和 [JetBrains](/zh/cli/acp/jetbrains) 等编辑器集成会将这些命令与内置命令一同列出。
</Tip>

***

<div id="authentication">
  ## 身份验证
</div>

某些远程 MCP 服务器 (如 Atlassian、Notion 和 Linear) 需要通过 OAuth 进行身份验证。每个 MCP 客户端都单独进行身份验证——来自 Windsurf 或 Claude Code 的令牌**不会**与 Devin CLI 共享。

添加远程服务器后，使用以下方式进行身份验证：

```bash theme={null}
devin mcp login <server-name>
```

这会打开一个浏览器窗口，启动 OAuth 流程。如果存储的凭据之后过期或被撤销，服务器会报告需要身份验证的状态，你可先执行 `devin mcp logout`，再执行 `devin mcp login` 以重新进行身份验证——详见 [MCP 配置 — 身份验证](/zh/cli/extensibility/mcp/configuration#authentication) 和 [重新进行身份验证](/zh/cli/extensibility/mcp/configuration#re-authenticating)。

***

<div id="disabling-servers">
  ## 禁用服务器
</div>

你可以暂时禁用 MCP 服务器，而无需移除其配置或凭据：

```bash theme={null}
devin mcp disable <server-name>
devin mcp enable <server-name>
```

请参阅 [MCP 配置 — 启用和禁用服务器](/zh/cli/extensibility/mcp/configuration#enabling-and-disabling-servers) 了解详情。

***

<div id="next-steps">
  ## 后续步骤
</div>

<CardGroup cols={2}>
  <Card title="配置" icon="gear" href="/zh/cli/extensibility/mcp/configuration">
    详细了解如何配置 MCP 服务器
  </Card>

  <Card title="权限" icon="shield" href="/zh/cli/reference/permissions">
    控制 Agent 可以使用哪些 MCP 工具
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.