更新时间:2026-03-27 GMT+08:00
分享

MCP

华为云码道(CodeArts)代码智能体可依托模型上下文协议(MCP)与MCP服务器通信,借助服务器提供的额外工具和资源实现功能扩展。

什么是MCP

模型上下文协议(Model Context Protocol,简称MCP)是一种开放协议,定义应用程序与大语言模型(LLM)之间的上下文提供规范,为LLM连接外部数据源、工具系统提供统一的交互标准。MCP服务器的核心功能是允许LLM请求外部工具协助回答查询或完成任务。如需了解更多关于MCP的详细信息,请参考MCP官方文档

表1 MCP Server与其他功能的对比

对比维度

规则(Rule)

技能(Skill)

MCP Server

定义

用于约束智能体的行为方式。

用于描述如何完成特定任务。

提供外部工具的调用能力。

加载方式

在对话开始时加载到上下文中,持续参与推理。

按需加载,减少上下文占用。

不参与推理过程,按需调用外部接口。

使用场景

定义代码规范、输出格式、团队协作约定等。

例如:代码必须符合PEP8规范。

封装测试流程、开发任务、复杂业务逻辑等。

例如:执行UI自动化测试。

连接外部系统,执行具体操作。

例如:控制浏览器操作。

关键区别

控制智能体“应该怎么做”,是行为边界。

解决“如何完成任务”,是流程指导。

提供“调用工具的能力”,是执行能力。

配置MCP服务器并在智能体中使用

按照MCP服务器与MCP客户端(华为云码道)之间的通信方式来划分,目前支持两类MCP服务器。

类型

传输协议

执行环境

基于stdio(标准输入输出)的MCP服务器

stdio

本地

基于HTTP协议的MCP服务器

SSE

本地/远程

Streamable HTTP

本地/远程

  1. 参考快速启动操作,登录华为云码道。
  2. 打开华为云码道聊天窗口。

    • 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标 ,打开华为云码道聊天窗口。
    • Visual Studio Code:单击Visual Studio Code侧边栏图标 ,打开华为云码道聊天窗口。
    • JetBrains:以IntelliJ IDEA为例,单击IntelliJIDEA侧边栏图标 ,打开华为云码道聊天窗口。

    不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。

  3. 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。右侧显示当前选用的模型,您可在下拉框中切换不同大语言模型。

    图1 智能体模式

  4. 单击聊天界面右上方的MCP图标 ,进入MCP工具页面。
  5. 单击“配置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版本。您也可以通过与智能体交互,让智能体为您直接安装。

  6. 配置完成后按快捷键(Windows/Linux:“Ctrl+S”;macOS:“Command()+S”)保存,等待工具启动完成。

    图2 MCP工具启动完成

    如果在配置中遇到问题,可以返回到聊天界面,与智能体进行交互,帮助您修复问题。

  7. 在智能体中开启MCP服务器,启用后才会调用MCP工具。

    图3 开启使用MCP服务器

  8. 在华为云码道的输入框中,输入如下内容,单击发送图标

    打开https://codearts.huaweicloud.com,单击“查看所有下载选项”按钮

    智能体调用Playwright MCP服务器的方法,打开对应网页,并单击相应的按钮,跳转到对应的下载页。

    图4 查看调用结果

  1. 参考快速启动操作,登录华为云码道。
  2. 打开华为云码道聊天窗口。

    • 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标 ,打开华为云码道聊天窗口。
    • Visual Studio Code:单击Visual Studio Code侧边栏图标 ,打开华为云码道聊天窗口。
    • JetBrains:以IntelliJ IDEA为例,单击IntelliJIDEA侧边栏图标 ,打开华为云码道聊天窗口。

    不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。

  3. 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。右侧显示当前选用的模型,您可在下拉框中切换不同大语言模型。

    图5 智能体模式

  4. 单击聊天界面右上方的MCP图标 ,进入MCP工具页面。
  5. 单击“配置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"
        }
      }
    }

  6. 配置完成后按快捷键(Windows/Linux:“Ctrl+S”;macOS:“Command()+S”)保存,等待工具启动完成。

    图6 MCP工具启动完成

    如果在配置中遇到问题,可以返回到聊天界面,与智能体进行交互,帮助您修复问题。

  7. 在智能体中开启MCP服务器,启用后才会调用MCP工具。

    图7 开启使用MCP服务器

  8. 在华为云码道的输入框中,输入如下内容,单击发送图标

    智能体会通过MCP服务器调用高德地图,为您生成个性化的一日游路线规划。
    图8 一日游路线规划

常见问题

:是否支持添加多个MCP服务器?

:支持。华为云码道对可添加的MCP服务器数量没有硬性限制,但建议不超过20个,以避免过多占用上下文空间。如果需要添加多个MCP服务器,可参考以下示例配置mcp_settings.json文件。

{
  "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"
    }
  }
}
图9 配置多个MCP服务器效果

相关文档