MCP
CodeArts Doer代码智能体可依托模型上下文协议(MCP)与本地MCP服务器通信,借助服务器提供的额外工具和资源实现功能扩展。
什么是MCP
模型上下文协议(Model Context Protocol,简称MCP)是一种开放协议,定义应用程序与大语言模型(LLM)之间的上下文提供规范,为LLM连接外部数据源、工具系统提供统一的交互标准。MCP服务器的核心功能是允许LLM请求外部工具协助回答查询或完成任务。
智能体支持的MCP服务器
目前支持两类MCP服务器。
|
类型 |
传输协议 |
执行环境 |
|---|---|---|
|
基于stdio(标准输入输出)的MCP服务器 |
stdio |
本地 |
|
基于HTTP协议的MCP服务器 |
SSE |
本地/远程 |
|
Streamable HTTP |
本地/远程 |
配置MCP服务器
仅JetBrains系列IDE的“智能体”模式支持该功能。
- 参考JetBrains中操作,登录CodeArts Doer代码智能体。
- 打开IDE,单击IDE侧边栏的CodeArts Doer代码智能体图标
,进入聊天窗口。 - 在聊天界面的输入框下方选择“智能体”,切换到“智能体”模式,当前仅“智能体”模式支持配置MCP。
图1 切换到智能体模式
- 单击聊天窗口的MCP图标,进入MCP设置页面。
图2 单击MCP图标
- 单击“配置MCP服务器”,打开“mcp_settings.json”文件,对MCP服务器的JSON配置文件进行自定义编辑。
MCP配置的通用模板如下:
{ "mcpServers": { "服务器名称": { "disabled": false, "timeout": 60, "command": "命令路径", "args": ["参数数组"], "type": "stdio" } } }表1 配置参数说明 参数
说明
服务器名称
服务器的唯一名称/标识符,用于区分不同的MCP服务器。
disabled
服务器的启用状态,表示是否禁用该服务器,一般在需要临时禁用某个服务但不想删除配置时使用。
- false:服务器已启用(默认)
- true:服务器已禁用
timeout
连接和操作的超时时间,超时后会返回错误并终止连接,单位是秒。
command
要执行的命令或程序路径,用于指定启动MCP服务器所需的程序。
args
传递给命令的参数列表,配合command使用,指定如何运行MCP服务器。
type
MCP客户端和服务器之间的通信方式。例如,stdio:标准输入/输出通信。
例如,arXiv论文查询MCP服务器的配置文件如下,其中“D:\\xxx\\python.exe”为解释器的安装地址。{ "mcpServers": { "arxiv": { "disabled": false, "timeout": 60, "command": "D:\\xxx\\python.exe", "args": ["-m", "mcp_simple_arxiv"], "type": "stdio" } } } - 配置完成后按快捷键“Ctrl+S”保存,等待工具启动完成。
图3 MCP工具启动完成
- 如果在配置中遇到问题,可以返回到聊天界面,与智能体进行交互,帮助您修复问题。
智能体问答调用已配置MCP工具
配置MCP服务器并成功启用工具后,需要在智能体模式下开启MCP服务器。
- 单击
,返回聊天界面。 - 开启在智能体模式下使用MCP服务器。
- 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。
图4 切换到智能体模式
- 将鼠标放置在“智能体”这一行,单击右侧的设置图标,进入设置页面。
图5 单击设置图标
- 单击自动批准后的下拉箭头,勾选“使用MCP服务器”,允许模型使用已配置的MCP服务器,这些服务器可能会修改文件系统或与API交互。
图6 启用自动批准功能
没有授权项被勾选时,“自动批准”显示为“未启用”,否则显示“已启用”。
- 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。
- 勾选完成后,单击
即可生效。 - 在CodeArts Doer代码智能体的输入框中,输入如下内容,单击
图标。
Can you show me the details for paper 2103.08220?
在生成答案的过程中,可以查看到MCP工具的调用。
图7 查看调用结果