TRAE CLI 支持通过模型上下文协议(Model Context Protocol,MCP)来集成第三方能力。
TRAE CLI 支持的 MCP 传输协议为 stdio、SSE 和 Streamable HTTP。
你可以使用 traecli config edit 命令来编辑全局配置文件 trae_cli.yaml,在其中添加 MCP Server 配置。
需要为各个类型的 MCP Server 配置的字段如下:
stdio
|
字段 |
类型 |
是否必填 |
描述 |
|---|---|---|---|
|
name |
String |
是 |
该 MCP Server 的名称,是其唯一标识。 |
|
type |
String |
是 |
该 MCP Server 的传输类型,此处为固定值 |
|
command |
String |
是 |
可执行文件或脚本的绝对路径。 |
|
args |
List |
否 |
传递给命令的参数列表。 |
|
env |
Map |
否 |
需要注入到进程中的环境变量(键值对)。 |
|
timeout |
String |
否 |
进程启动或响应的超时时间,单位为秒(s)。 |
|
disabled_tools |
List |
否 |
需要禁用的工具或匹配模式(支持 |
SSE
|
字段 |
类型 |
是否必填 |
描述 |
|---|---|---|---|
|
name |
String |
是 |
该 MCP Server 的名称,是其唯一标识。 |
|
type |
String |
是 |
该 MCP Server 的传输类型,此处为固定值 |
|
url |
String |
是 |
远程服务器的完整 URL 地址。 |
|
headers |
Map |
否 |
请求中需要附加的 HTTP 请求头。 |
|
args |
List |
否 |
传递给命令的参数列表。 |
|
env |
Map |
否 |
需要注入到进程中的环境变量(键值对)。 |
|
timeout |
String |
否 |
进程启动或响应的超时时间,单位为秒(s)。 |
|
disabled_tools |
List |
否 |
需要禁用的工具或匹配模式(支持 |
Streamable HTTP
|
字段 |
类型 |
是否必填 |
描述 |
|---|---|---|---|
|
name |
String |
是 |
该 MCP Server 的名称,是其唯一标识。 |
|
type |
String |
是 |
该 MCP Server 的传输类型,此处为固定值 |
|
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"]
env: {}
通过环境变量传递鉴权信息:
mcp_servers:
- name: "GitHub CLI"
type: "stdio"
command: "gh"
args: ["api", "mcp"]
env:
- key: "key1"
value: "value1"
对于 SSE 类型的 MCP Server,你可以通过浏览器 OAuth 来完成鉴权。
如果使用的 MCP Server 支持 RFC 8414(用于动态发现)及 RFC 7591(用于动态注册),则可以将 MCP Tool 配置到 trae_cli.yaml 中,然后通过 /mcp 命令触发浏览器鉴权流程。
|
概念 |
描述 |
|---|---|
|
RFC 8414 |
支持客户端动态发现授权服务器的配置信息和能力。 |
|
RFC 7591 |
支持动态获取 client id 和 client secret 等信息,无需提前到管理后台注册应用。 |
示例配置如下:
mcp_servers:
- name: "Asana"
url: "https://mcp.asana.com/sse"
type: "sse"
- name: "Sentry"
url: "https://mcp.sentry.dev/mcp"
type: "http"
配置完成后,启动 TRAE CLI,然后通过 /mcp 命令进入 MCP Server 详情页,选择 “Authenticate” 即可触发浏览器 OAuth 流程。
OAuth 优先级相关说明:
对于某些同时支持 OAuth RFC 8414 和其他鉴权方式的 MCP Server,若你想使用其他鉴权方式,则直接配置 MCP Server 所需的 token 即可,例如上述的 url 字段或 header 鉴权方式。
TRAE CLI 会优先使用普通鉴权方式来尝试连接,失败后再尝试 OAuth RFC 8414。
通过在 URL 中直接嵌入鉴权参数来进行身份验证,适用于简单的 API 密钥鉴权场景:
mcp_servers:
- name: "Weather API"
url: "https://api.weather.com/mcp?api_key=your_weather_api_key&format=json"
type: "http"
- name: "Database Connector"
url: "https://db-service.example.com/mcp?token=your_db_token&database=production"
type: "sse"
通过 HTTP 请求头传递鉴权信息:
mcp_servers:
- name: "github"
url: "https://api.githubcopilot.com/mcp/"
type: "http"
headers:
Authorization: "Bearer your_access_token_here"
X-MCP-Toolsets: "users,orgs"
不同 MCP Server 支持配置的请求头字段不同。以上 GitHub MCP Server 中的请求头字段说明如下:
TRAE CLI 兼容 TRAE IDE 中的项目级 MCP Server。
TRAE IDE 存储项目级 MCP Server 的目录是 .trae/mcp.json。TRAE CLI 可以读取和运行该目录下的 MCP Server。