codecamp

TRAE 模型上下文协议概览

通过模型上下文协议(Model Context Protocol,MCP),你可以将外部工具和服务连接至 TRAE 进行使用。

什么是 MCP?

Model Context Protocol (MCP) 是一种协议,它允许大型语言模型(LLMs)访问自定义的工具和服务。Trae 中的智能体作为 MCP 客户端可以选择向 MCP Server 发起请求,以使用它们提供的工具。你可以自行添加 MCP Server,并添加到自定义的智能体中来使用。更多信息参阅 MCP 官方文档

在 TRAE 中,MCP Server 支持两种传输类型:stdio 传输、SSE 传输。

免责声明

MCP Server 由第三方构建和维护。TRAE 不审查或认可这些服务器,并且不对其行为、任何 MCP Server 调用失败或它们返回的数据承担任何责任。部分 MCP Server 也可能因相关法律法规、网络限制、或服务器自身的访问策略,在你所在的国家或地区无法访问或使用。TRAE 无法控制这些因素,亦无法保证你所在国家或地区对这些服务器的可用性或功能性。你在尝试使用这些服务器时,应自行确保遵守当地法律法规。

支持的 MCP Server 类型

TRAE 支持以下两类 MCP Server:

类型 传输协议 执行环境
stdio stdio 本地
HTTP SSE 本地 / 远程
Streamable HTTP 本地 / 远程

支持的 MCP 协议功能

TRAE 支持的 MCP 协议功能如下:

类别 功能 描述
Messages Requests 请求由客户端发送到服务器,或由服务器发送到客户端,用于发起一次操作。
Responses 响应用于回复请求,包含该操作的结果或错误信息。
Lifecycle Timeouts 为已发送的请求设置超时机制,以防止连接挂起和资源耗尽。
Transports stdio 通过标准输入(stdin)和标准输出(stdout)在客户端与服务器进程之间直接交换符合 JSON-RPC 2.0 规范的消息。
Streamable HTTP 服务器作为一个独立进程运行,能够同时处理多个客户端连接。 
· 该传输方式使用 HTTP POST 和 HTTP GET 请求,服务器还可以选择使用 Server-Sent Events(SSE) 来流式发送多个服务器消息。
HTTP with SSE Backwards Compatibility 客户端和服务器可以保持对已弃用的 HTTP+SSE 传输方式的向后兼容性。
Tools Listing Tools 发现可用的工具,客户端会发送 tools/list 请求。该操作支持分页。
Calling Tools 调用某个工具,客户端会发送 tools/call 请求。
List Changed Notification 当可用工具列表发生变化时,已声明 listChanged 能力的服务器 应当 发送一条通知。
Data Types 标准化 MCP Server 对工具能力及其执行结果的描述方式,使客户端能够安全、可预测地发现、调用并理解工具。 
· TRAE 具体支持的数据类型如下: 
· 工具定义:nametitledescriptioninputSchemaoutputSchema。 
· 工具运行结果:Text Content、Structured Content。
Utilities Logging MCP 为服务器向客户端发送结构化日志消息提供了一种标准化方式。
客户端可以通过设置最小日志级别来控制日志的详细程度,服务器则会发送包含严重级别、可选的日志记录器名称以及任意可序列化为 JSON 的数据的通知。

教程

在众多场景中,MCP Server 都能够发挥作用,提高你的工作效率,你可以参考以下教程来了解更多 MCP Server 的使用方法。

TRAE 上下文基础用法
TRAE 添加 MCP Server
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }