TraeCode CLI 支持通过模型上下文协议(Model Context Protocol,MCP)来集成第三方能力。
TraeCode CLI 支持的 MCP 传输协议为 stdio、SSE 和 Streamable HTTP。
你可以使用 traecli config edit 命令来编辑全局配置文件 trae_cli.yaml,在其中添加 MCP Server 配置。
需要为各个类型的 MCP Server 配置的字段如下:
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | String | 是 | 该 MCP Server 的名称,是其唯一标识。 |
| type | String | 是 | 该 MCP Server 的传输类型,此处为固定值 stdio。 |
| command | String | 是 | 可执行文件或脚本的绝对路径。 |
| args | List |
否 | 传递给命令的参数列表。 |
| env | Map | 否 | 需要注入到进程中的环境变量(键值对)。 |
| timeout | String | 否 | 进程启动或响应的超时时间,单位为秒(s)。 |
| disabled_tools | List |
否 | 需要禁用的工具或匹配模式(支持 * 通配符)。 |
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | String | 是 | 该 MCP Server 的名称,是其唯一标识。 |
| type | String | 是 | 该 MCP Server 的传输类型,此处为固定值 sse。 |
| url | String | 是 | 远程服务器的完整 URL 地址。 |
| headers | Map | 否 | 请求中需要附加的 HTTP 请求头。 |
| args | List |
否 | 传递给命令的参数列表。 |
| env | Map | 否 | 需要注入到进程中的环境变量(键值对)。 |
| timeout | String | 否 | 进程启动或响应的超时时间,单位为秒(s)。 |
| disabled_tools | List |
否 | 需要禁用的工具或匹配模式(支持 * 通配符)。 |
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | String | 是 | 该 MCP Server 的名称,是其唯一标识。 |
| type | String | 是 | 该 MCP Server 的传输类型,此处为固定值 http。 |
| url | String | 是 | 远程服务器的完整 URL 地址。 |
| headers | Map | 否 | 请求中需要附加的 HTTP 请求头。 |
| args | List |
否 | 传递给命令的参数列表。 |
| env | Map | 否 | 需要注入到进程中的环境变量(键值对)。 |
| timeout | String | 否 | 进程启动或响应的超时时间,单位为秒(s)。 |
| disabled_tools | List |
否 | 需要禁用的工具或匹配模式(支持 * 通配符)。 |
以下为三类 MCP Server 的配置示例:
mcp_servers:
# 示例 1: 通过本地命令启动 (stdio)
- name: "my-local-tool"
type: stdio
command: "/path/to/your/tool"
args: ["--arg1", "--arg2"]
timeout: 100s
env:
ENV_VAR_NAME: "some_value"
# 示例 2: 通过 SSE 连接
- name: "my-sse-tool"
type: sse
url: "http://example.com/mcp-server"
headers:
key: value
disabled_tools:
- "*pattern*"
- exact_match
# 示例 3: 通过 Streamable HTTP 连接
- name: "my-streamable-http-tool"
type: http
url: "http://example.com/streamable-mcp-server"
headers:
key: value
在对话输入框中,通过 /mcp 命令来查看 MCP Server 的具体情况,包括 MCP Server 初始化失败的错误信息。
对于支持浏览器 OAuth 的 MCP Server,可以对其进行 Authenticate、Re-authenticate、Clear authentication 等操作。
对于 stdio 类型的 MCP Server,你可以通过命令行参数或环境变量来传递鉴权信息。
mcp_servers:
- name: Context4Code
type: stdio
command: npx
args: ["mcp", "serve", "--auth-token", "<your_token>"] # 替换为实际 Token
env: {}
mcp_servers:
- name: "GitHub CLI"
type: "stdio"
command: "gh"
args: ["api", "mcp"]
env:
key1: "value1"
对于 SSE 类型的 MCP Server,你可以通过浏览器 OAuth 来完成鉴权。
如果使用的 MCP Server 支持 RFC 8414(用于动态发现)及 RFC 7591(用于动态注册),则可以将 MCP Server 配置到 trae_cli.yaml 中,然后通过 /mcp 命令触发浏览器鉴权流程。
| 概念 | 描述 |
|---|---|
|
RFC 8414 |
支持客户端动态发现授权服务器的配置信息和能力。 客户端会检查 MCP Server 是否支持 RFC 8414 协议,服务端是否暴露 |
| RFC 7591 | 支持动态获取 client id 和 client secret 等信息,无需提前到管理后台注册应用。 |
示例配置如下:
mcp_servers:
- name: "Asana"
url: "https://mcp.asana.com/sse"
type: "sse"
配置完成后,启动 TraeCode CLI,然后通过 /mcp 命令进入 MCP Server 详情页,选择 "Authenticate" 即可触发浏览器 OAuth 流程。


OAuth 优先级相关说明:
对于某些同时支持 OAuth RFC 8414 和其他鉴权方式的 MCP Server,若你想使用其他鉴权方式,则直接配置 MCP Server 所需的 token 即可,例如上述的 url 字段或 header 鉴权方式。
TraeCode CLI 会优先使用普通鉴权方式来尝试连接,失败后再尝试 OAuth RFC 8414。
mcp_servers:
- name: "Weather API"
url: "https://api.weather.com/mcp?api_key=your_weather_api_key&format=json" # 替换为实际 API Key
type: "http"
mcp_servers:
- name: "github"
url: "https://api.githubcopilot.com/mcp/"
type: "http"
headers:
Authorization: "Bearer your_access_token" # 替换为实际访问令牌
X-MCP-Toolsets: "users,orgs"
TraeCode CLI 兼容 TraeCode 中的项目级 MCP Server。
TraeCode 存储项目级 MCP Server 的目录是 .trae/mcp.json。TraeCode CLI 可以读取和运行该目录下的 MCP Server。