MCP
华为云码道(CodeArts)代码智能体可依托模型上下文协议(MCP)与MCP服务器通信,借助服务器提供的额外工具和资源实现功能扩展。
什么是MCP
模型上下文协议(Model Context Protocol,简称MCP)是一种开放协议,定义应用程序与大语言模型(LLM)之间的上下文提供规范,为LLM连接外部数据源、工具系统提供统一的交互标准。MCP服务器的核心功能是允许LLM请求外部工具协助回答查询或完成任务。如需了解更多关于MCP的详细信息,请参考MCP官方文档。
| 对比维度 | 规则(Rule) | 技能(Skill) | MCP Server |
|---|---|---|---|
| 定义 | 用于约束智能体的行为方式。 | 用于描述如何完成特定任务。 | 提供外部工具的调用能力。 |
| 加载方式 | 在对话开始时加载到上下文中,持续参与推理。 | 按需加载,减少上下文占用。 | 不参与推理过程,按需调用外部接口。 |
| 使用场景 | 定义代码规范、输出格式、团队协作约定等。 例如:代码必须符合PEP8规范。 | 封装测试流程、开发任务、复杂业务逻辑等。 例如:执行UI自动化测试。 | 连接外部系统,执行具体操作。 例如:控制浏览器操作。 |
| 关键区别 | 控制智能体“应该怎么做”,是行为边界。 | 解决“如何完成任务”,是流程指导。 | 提供“调用工具的能力”,是执行能力。 |
配置MCP服务器并在智能体中使用
按照MCP服务器与MCP客户端(华为云码道)之间的通信方式来划分,目前支持两类MCP服务器。
| 类型 | 传输协议 | 执行环境 |
|---|---|---|
| 基于stdio(标准输入输出)的MCP服务器 | stdio | 本地 |
| 基于HTTP协议的MCP服务器 | SSE | 本地/远程 |
| Streamable HTTP | 本地/远程 |
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。右侧显示当前选用的模型,您可在下拉框中切换不同大语言模型。 图1 智能体模式
- 单击聊天界面右上方的MCP图标
,进入MCP工具页面。 - 单击“配置MCP服务器”,打开“mcp_settings.json”文件,编辑MCP服务器的JSON配置文件。
MCP配置的通用模板如下:
{ "mcpServers": { "服务器名称": { "command": "启动进程的命令", "args": [ "参数数组" ], "env": { "环境变量" } } } }表2 配置参数说明 参数
说明
服务器名称
服务器的唯一名称/标识符,用于区分不同的MCP服务器。
command
必填,要执行的命令或程序路径,用于指定启动MCP服务器所需的程序。
args
选填,传递给命令的参数列表,配合command使用,指定如何运行MCP服务器。
env
选填,传递给MCP服务器的环境变量集合,所有环境变量值均需为字符串类型。
例如,您想通过Playwright直接操控浏览器完成网页导航、点击、输入、截图、数据提取等自动化操作。mcp_settings.json文件配置如下:{ "mcpServers": { "playwright": { "command": "npx", "args": [ "@playwright/mcp@latest" ] } } }此示例用户需要本地安装node.js环境,推荐node-v24.x版本。您也可以通过与智能体交互,让智能体为您直接安装。
- 配置完成后按快捷键(Windows/Linux:“Ctrl+S”;macOS:“Command(⌘)+S”)保存,等待工具启动完成。 图2 MCP工具启动完成
如果在配置中遇到问题,可以返回到聊天界面,与智能体进行交互,帮助您修复问题。
- 在华为云码道的输入框中,输入如下内容,单击发送图标
。 打开https://codearts.huaweicloud.com,单击“查看所有下载选项”按钮
智能体调用Playwright MCP服务器的方法,打开对应网页,并单击相应的按钮,跳转到对应的下载页。
图3 查看调用结果
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。右侧显示当前选用的模型,您可在下拉框中切换不同大语言模型。 图4 智能体模式
- 单击聊天界面右上方的MCP图标
,进入MCP工具页面。 - 单击“配置MCP服务器”,打开“mcp_settings.json”文件,对MCP服务器的JSON配置文件进行自定义编辑。
- 适配SSE协议的MCP通用配置模板,适用于事件型实时推送场景。
{ "mcpServers": { "服务器名称": { "url": "https://example.com/mcp/sse", "type": "sse" } } } - 适配Streamable HTTP协议的MCP通用配置模板,适用于通用流式数据传输场景。
{ "mcpServers": { "服务器名称": { "url": "https://example.com/mcp", "type": "streamableHttp" } } }
表3 配置参数说明 参数
说明
服务器名称
服务器的唯一名称/标识符,用于区分不同的MCP服务器。
url
用于访问远程MCP服务器的地址,需确保是合法的HTTP或HTTPS类型URL。
type
MCP服务器的通信协议类型,取值为sse或streamableHttp。
注意:如果现有示例中缺少“type”参数,建议在使用前手动补充,以确保在华为云码道中正常运行。
假设,您希望将高德MCP服务器与高德地图APP进行对接,“mcp_settings.json”文件的配置如下所示。
{ "mcpServers": { "amap-maps-streamableHTTP": { "url": "https://mcp.amap.com/mcp?key=您在高德官网上申请的key", "type": "streamableHttp" } } } - 适配SSE协议的MCP通用配置模板,适用于事件型实时推送场景。
- 配置完成后按快捷键(Windows/Linux:“Ctrl+S”;macOS:“Command(⌘)+S”)保存,等待工具启动完成。 图5 MCP工具启动完成
如果在配置中遇到问题,可以返回到聊天界面,与智能体进行交互,帮助您修复问题。
- 在华为云码道的输入框中,输入如下内容,单击发送图标
。 帮我规划一个北京一日游,包含故宫、长城,包含美食
智能体会通过MCP服务器调用高德地图,为您生成个性化的一日游路线规划。图6 一日游路线规划
配置多个MCP服务器
如需配置多个MCP服务器,可参考以下示例配置mcp_settings.json文件。
华为云码道对可添加的MCP服务器数量没有硬性限制,建议创建数量不超过20个;同时建议开启数量控制在8个以内,启用3个可获得最优使用体验。
建议及时删除或关闭不常用的MCP服务,减少内存消耗,避免上下文空间被过度占用。
{
"mcpServers": {
"服务器名称1": {
"url": "https://example1.com/mcp",
"type": "streamableHttp"
},
"服务器名称2": {
"url": "https://example2.com/mcp",
"type": "sse"
},
"服务器名称3": {
"url": "https://example3.com/mcp",
"type": "streamableHttp"
}
}
}