发布和管理MCP Tool

模型上下文协议(Model Context Protocol, MCP)是一个开放协议,为大模型和外部工具之间的信息传递提供通道。本产品支持将企业内部标准作业过程转化为自动化流程,以MCP Tool的形式被AI智能体调用。

重要

您可以参考 开发MCP ToolAI智能体调用,通过该示例了解开发和使用过程。

1. 基本概念

本章节重点介绍产品使用的MCP相关概念及扩展。

  • 支持的MCP协议版本:2025-03-26

  • MCP Server

    • 本产品将MCP Server分为两类:业务类MCP Server和系统类MCP Server(默认名称为aiworker_system)。如下图所示。image

    • 系统类MCP Server:负责提供公共的MCP Tool,例如根据TaskId查询任务状态和结果。产品默认提供一个系统类MCP Server(命名为aiworker_system)此类MCP Server及包含的MCP Tool不能添加、修改和删除。您的智能体可根据系统集成方案决定是否使用系统类MCP Server。

    • 业务类MCP Server:自动化流程发布的Tool只能归属到业务类MCP Server下面,产品默认提供一个业务类MCP Server(命名为aiworker_default)。

  • MCP Tool

    • 本产品仅支持发布为MCP Tool,不支持MCP Resources、Prompts等。

    • Tool版本。本产品在MCP协议基础上增加了“Tool版本”概念,仅用于对Tool的定义和管理过程;MCP Client调用时,感知不到Tool版本。

    • MCP Server的关系。在MCP协议基础上增加了限制,包括:

      • Tool name在同一租户内唯一(即您的RPA企业);

      • Tool只能隶属于一个MCP Server。

  • MCP网关实例

    • MCP网关负责统一管控MCP调用,本产品内置了MCP网关实例,发布后可立刻调用。

2. Tool管理

2.1 操作界面

  • 进入MCP Server菜单后,默认进入Tool管理界面中,如下图所示。

  • 左侧树状结构为当前租户(RPA企业)下所有MCP ServerMCP Tool的列表。

  • 默认选中根节点,展示当前所有Tool的基本信息,并可进行查询搜索。

image

  • 选中业务类MCP Server下的Tool后,可查看该Tool的所有版本信息和上线情况。同时可在树状结构中对该Tool进行修改名称等操作。

image

2.2 添加Tool

步骤1:选择应用和应用版本、确定Tool名称(Tool name)、所属MCP Server等基础信息。

image

参数

说明

应用和应用版本

重要

ToolRPA应用的关系:

  • 只能将已经发布的应用创建为MCP Tool。

  • 应用和Tool1:1的对应关系;应用版本和Tool版本同样是1:1的对应关系。

Tool名称(Tool name)

说明

建议Tool name不要直接使用应用名称。

  • Tool name不同于应用名称。应用名称的使用场景中,还有用于有人值守使用方式,即使用者在机器人客户端上根据应用名称筛选后执行;Tool nameTool description提供给大模型查找所需的Tool,因此Tool name需要更加容易被大模型所理解。

  • Tool name目前最长50个字符,不支持使用中文,建议使用英文下划线(_)分隔各个单词。

所属MCP Server

  • 只能选择业务类MCP Server。

步骤2:补充该版本ToolTool description、Tool Input信息。

image

  • 描述(Tool description)

    • 产品提供了默认的Description模板,您可以在此模板上完善内容。

  • 输入参数

    • 输入参数分成2类:自动化流程的输入参数、系统输入参数。

    • 系统输入参数:不可修改、不可删除。

    • 自动化流程的输入参数,参数名称、参数类型和是否必填来自流程开发阶段的定义。

重要
  1. 本步骤会对参数名称、参数类型进行校验,校验失败将不能继续。可根据错误提示在编辑器的参数面板中进行修改,并重新发布新版本应用后,再为新版本应用添加Tool。

  2. 参数名、参数类型、必填,需要在编辑器的参数面板进行定义或修改,如下图所示。

image

自动化流程的输入参数建议:

  • 通用建议

建议项

内容

参数名称

  • 在编辑器的参数面板中定义和编辑。

  • 格式要求:大小写英文 or 数字 or 下划线,开头只能英文字符,结尾不能下划线结尾

参数类型

  • 编辑器参数面板

    说明

    在使用RPA开发MCP Tool的场景下,建议全部使用“文本框”类型(如上图所示),并在自动化流程内按需进行格式转换,降低传输过程中因为格式转换引出的各种问题。

  • Tool的参数类型

    • MCP协议中使用jsonrpc描述Tool的定义,因此在本步骤中在补充Tool入参信息时,也全部使用JSON基本类型及JSON Schema。

    • 支持的基本类型包括:string、integer、date、datetime。

    • 针对结构化的入参,可选择“json结构”类型,根据引导完成定义的描述。本章节后续内容会进一步展开介绍。

是否必填

  • 在编辑器的参数面板中定义和编辑。

参数说明

  • 需要您重点补充完善,从而能够告知大模型此入参的用途、填写内容的补充要求(如格式要求等)。

  • 结构化的入参

    • 自动化流程经常会需要对一组数据进行操作,比如向多个人发送不同的消息,因此需要某个入参具有一定的数据结构。在使用RPA开发MCP Tool的场景下,建议需要控制入参结构的复杂度,不要过于复杂,给大模型在生成Tool入参时造成困难。

    • 参数结构建议不要超过如下几种示例的复杂度:

    • 类型

      举例

      简单数组

      ["1","2","3"]

      二维数组

      [
          ["1","2","3"],
          ["a","b","c"]
      ]

      K-V结构

      {
          "name":"Tom",
          "age":21,
          "address":"Beijing"
      }

      包含多个K-V结构数据的数组

      [
          {
              "name": "Tom",
              "age": 21,
              "address": "Beijing"
          },
          {
              "name": "Jerry",
              "age": 19,
              "address": "Hangzhou"
          }
      ]
    • 生成参数定义。本步骤中,可以利用页面中提供的功能,自动生成参数定义。

      • 参数类型选择“json结构”,出现json定义窗口。如果您熟悉JSON Schema,可直接在窗口开始进行数据结构定义或直接导入json schema内容。

        image

      • 同时也可以使用“JSON数据快捷导入”功能,通过json数据自动生成对应的json schema。imageimage

      • 说明
        1. 建议对结构化的入参进行参数定义,便于大模型更好的理解Tool所需的参数和拼装;

        2. 定义生成过程建议使用“JSON数据快速导入”功能,根据数据自动生成定义。

  • 文件传输。

    • 自动化流程中经常会需要操作文件,如从Excel文件中读取需要在网站上填报的数据。此种情况下就会需要考虑如何向自动化流程中传入文件内容。

    • 方式1:如果文件内容比较小,并且有明确的结构(如Excel、CSV等),可以考虑将文件内容解析后传入,使用前文提到的结构化入参的方式。

    • 方式2:如果文件内容较大,建议使用传递文件链接方式。自动化流程的入参是文件链接(例如保存在OSS上),自动化流程中下载该文件、解析后完成后续操作。

系统入参

参数名

类型

必填

说明

RobotId

string

  • 需要指定机器人执行该自动化任务。

  • 两种类型的机器人(传统机器人、服务型机器人)都支持被MCP调用。

  • 此场景下的机器人分配方案,可参考 系统集成建议

TaskPriority

integer

  • 自动化任务优先级,0-100的正整数,默认50。

  • 仅在机器人的等待执行任务队列中生效,数字越大,越会优先执行。

步骤3:Tool发布到MCP网关实例。Tool需要发布到MCP网关实例上才可被调用,在本步骤中可以直接将已经定义的Tool发布。

image

2.3 Tool版本管理

2.3.1 添加新版本

RPA应用发布新版本后,本产品不会自动发布新版本应用对应的Tool,需要您手动添加新版本。如下图所示,Tool只能运行指定版本的应用。

image

步骤1:添加新版本时,不支持在新增Tool版本时更换其他Tool name,如需修改需要单独使用“修改Tool name”。

image

步骤2:补充Tool信息。默认情况下,新版本ToolTool description、Tool input信息都需要填写,可以使用“使用Tool的其他版本信息”功能,在已有版本信息基础上进行修改。

image

步骤3:(可选)发布上线。

如果选择发布,将直接替换掉该MCP网关实例上已经发布的Tool版本。

2.3.2 切换版本

可使用“发布”、“下线”功能控制MCP网关实例上运行的Tool版本。

image

说明

如果一个Tool存在多个版本,在同一个MCP网关实例中最多只能运行该Tool的一个版本。

2.3.3 应用下架

企业应用 菜单中,如果下架某个应用后:

  • 该应用对应的Tool不会自动下架,但MCP调用会失败。

  • 由于该应用处于下架状态,无法为该应用添加新版本Tool。

2.4 修改/删除

  • 修改指定版本Tool。支持修改Tool description、Tool Input内容;修改后需要发布到MCP网关实例上才可生效。

  • 修改Tool名称。需要先将该Tool的所有版本下线,然后可修改Tool名称。

  • 删除Tool版本。需要先将该版本下线,然后可删除该版本。

  • 删除Tool。删除该Tool的所有版本后,Tool会自动删除。

3. MCP调用

3.1 MCP调用认证和权限范围

所有MCP请求都需要认证,不支持匿名调用。可在MCP Server-凭证管理中进行凭证管理。

image

MCP调用的权限范围

  • 传统机器人(非服务型机器人)

    • 机器人能够运行的应用范围需要使用账号提前进行申请和审批,详见我的应用;触发机器人运行的类型包括客户端手动执行、OpenAPI触发等。

    • 如果使用MCP调用此种类型机器人时,MCP Client获得tool list仍然为该MCP网关实例上的所有Tool,但执行Tool时可能会因为该Token没有应用权限而运行失败。

  • 服务型机器人

    • 服务型机器人可通过OpenAPI调用触发,OpenAPI能够运行所有已上架应用,由您的上层系统负责控制运行范围。

    • 因此使用MCP调用此种类型机器人时,MCP Client可调用全部Tool。

3.2 获取MCP连接信息

MCP Server菜单中,左侧MCP ServerTool的树状结构上选择根节点后,可点击“获取MCP Server连接信息”获取指定MCP网关实例的调用地址和连接信息。

image

说明

连接信息中包含多个MCP Server连接和认证信息,包括业务类MCP Server、系统类MCP Server。大部分AI应用开发平台(如阿里云百炼)、AI客户端(如Cherry Studio)每次只能添加一个MCP Server,需要您自行将连接信息拆开分别填入。

4. 系统Tool

  • workerSysGetTaskStatus

用途

根据任务ID查询任务状态和任务结果

输入

TaskId,字符串格式,必填

输出

{
    "requestId": "f507d191-8edb-4115-....",
    "success": true,
    "code": 0,
    "msg": "调用成功",
    "msgCode": "result.success",
    "data": {
        "TaskId": "150b05ea-0353-40c2-.....",
        "TaskStatus": "complete",
        "TaskPriority": 50,
        "TaskDescription": null,
        "RobotId": "55E7E02B93EDFE02....",
        "AppId": "a307c6ec-45ef-40cb-....",
        "AppParams": [
            {
                "Name": "cityname",
                "Value": "武汉"
            },
            {
                "Name": "weathertype",
                "Value": "temperature"
            }
        ],
        "TaskResult": "22",
        "CallbackConfig": null,
        "TaskCreateTime": 1760499398000,
        "TaskBeginTime": 1760499398000,
        "TaskEndTime": 1760499416000
    },
    "pager": null,
    "instanceId": null
}

  • TaskStatus:任务状态,如下所示

    • waiting: 任务等待运行

    • running: 任务正在运行

    • complete: 任务正常结束

    • terminated: 任务异常结束

  • workerSysGetRobotWebSDKAuthCode

用途

根据机器人ID查询WebSDK登录所需的认证信息,仅适用于服务型机器人。

输入

RobotId,字符串格式,必填

输出

{
    "requestId": "931d9030-6c18-485f-....",
    "success": true,
    "code": 0,
    "msg": "调用成功",
    "msgCode": "result.success",
    "data": {
        "DesktopId": "ecd-bzhh....",
        "RegionId": "cn-beijing",
        "SessionStatus": "notConnected",
        "CurrentEndUserId": null,
        "TargetEndUserId": "....",
        "AuthCode": "...."
    },
    "pager": null,
    "instanceId": null
}