发布和管理MCP Tool

更新时间:
复制为 MD 格式

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

重要

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

基本概念

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

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

  • MCP Server。本产品将MCP Server分为两类

    分类

    说明

    系统类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 Server,例如根据需求部门划分:财务类、营销类等。

  • 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网关实例,发布后可立刻调用。

Tool管理

进入MCP Server菜单后,默认进入Tool管理界面。左侧树状结构为当前租户(RPA企业)下所有MCP ServerMCP Tool的列表。默认选中根节点,展示当前所有Tool的基本信息,并可进行查询搜索。选中业务类MCP Server下的Tool后,可查看该Tool的所有版本信息和上线情况。同时可在树状结构中对该Tool进行修改名称等操作。

image

添加Tool

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

    image

    参数

    说明

    应用和应用版本

    重要

    ToolRPA应用的关系:

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

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

    Tool名称(Tool name)

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

    重要

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

    在本地型机器人的使用场景中,还支持使用者在机器人客户端上根据应用名称筛选后执行;Tool nameTool description提供给大模型查找所需的Tool,因此Tool name需要更加容易被大模型所理解。

    所属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;并设置基本类型的一些校验条件,例如:默认值、枚举值等。

      结构化字符串

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

      针对结构化的入参,可选择“json结构”类型,根据引导完成定义。

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

      类型

      举例

      简单数组

      ["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

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

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

      文件

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

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

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

    • 系统输入参数

      参数名

      类型

      必填

      说明

      RobotId

      string

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

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

      • 更多机器人分配方案,可参考Agent集成建议

      TaskPriority

      integer

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

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

  3. (可选)回调设置。

    1. 配置回调之后,调用该MCP Tool创建的任务,在任务状态发生变化时,会触发回调通知。回调通知的具体细节和使用的机器人类型有关,服务型机器人请查看 CreateTask,本地型机器人请查看 createServiceTask

    2. 配置回调地址时,会向该地址发送真实HTTP Post请求,以确认联通性。

      重要

      校验方式是通过互联网向该地址发送POST请求、请求内容为空;需要HTTP返回Status等于200时,则通过测试。

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

  5. (可选)使用大模型对MCP Tool进行评估,协助您对补充的Tool信息进行修改。

评估Tool

MCP Tool在给大模型调用之前,可使用AI辅助评估的功能,目的是从模型角度评估人工补充的Tool信息是否能够被大模型准确理解和使用。您可结合实际情况决定是否进行修改。

  • 评估内容包括:该版本MCP Tool的本Tool name、description、input schema。

  • 评估过程为静态评估,不会发起真正的MCP Tool调用。

  • 评估结果举例如下:

image

Tool版本管理

ToolRPA应用的关系

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

    image

  • RPA应用下架

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

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

增加Tool新版本

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

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

    image

切换Tool版本

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

image

说明

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

研发迭代的测试和生产

Tool发布上线后,持续的研发迭代过程中,可能会涉及如下的修改:

  • Tool自身信息的修改,如修改description

  • 自动化流程的调整,带来对应的RPA应用的版本变化

此种情况下,在正式上线前,也需要对Tool进行测试,参考RPA应用的处理方式(详见2. 应用测试和发布到线上),可以通过创建测试用途的MCP ServerMCP Tool进行测试。以get_city_weather为例。

测试阶段

发布线上

工程

工程名为 get_city_weather_project

RPA应用

发布测试应用为get_city_weather_test

发布正式应用为get_city_weather

MCP Tool

发布测试MCP Toolget_city_weather_test,隶属于测试MCP Server(名为 test_server)

发布正式MCP Toolget_city_weather,隶属于正式MCP Server(名为 prd_server)

其他操作

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

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

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

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

MCP调用

MCP调用认证和权限范围

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

image

MCP调用的权限范围,与使用的机器人类型有关,更多机器人类型详见 选择机器人类型

  • 本地型机器人

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

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

  • 服务型机器人

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

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

获取MCP连接信息

MCP Server菜单中,可通过“获取MCP Server连接信息”获取指定MCP网关实例的调用地址和连接信息。

image

说明

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

系统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
    }

Agent集成建议

开发MCP ToolAgent调用 以一个案例介绍了使用过程,在生产使用时,还需要考虑如下几个方面:

  • 机器人分配方式。

    • 从前文可以看到,所有自动化任务都需要指定某个机器人来运行。主要原因是对已有系统(平台或软件)的操作中,绝大部分情况下都需要先完成用户登录,这些已有系统(平台或软件)自身的登录方式各异、安全管控方式各异,故造成即开即用的资源管理方式能够使用的场景有限,绝大部分情况下需要根据您的业务特点单独考虑如何分配机器人给最终用户使用。

    • 建议处理方式:大部分情况下可以将分配过程放在最终用户(企业内外)在使用智能体之前的注册环节(或开通环节)中,通过调用RPAOpenAPI(例如服务型机器人的ListRobots接口),在您的系统内对管理和记录机器人分配。

  • 大模型调度方式。

    • 根据我们的生产实践观察,超过70%以上的自动化任务执行时间超过30分钟。因此使用RPA开发的MCP Tool,大部分情况下需要按照异步调度的方式处理,同时在Tool description中默认也会告知大模型调用模型。

    • 同时,使用Chat方式与最终用户进行交互的智能体,需要考虑到由于自动化任务执行时间很长的情况下的处理。

    • 建议处理方式:自动化任务执行(Tool执行)和结果获取(包括获得任务状态、获得任务产生业务所需的数据)采用不同的方式进行处理。

      • 自动化任务执行:由大模型使用MCP触发。

      • 结果获取:通过后台的OpenAPI(例如服务型机器人的ListTaskDetails、ListTasks接口)或回调方式通知(例如服务型机器人在任务状态变化时推送消息);Agent与最终用户的交互界面中,采用推送通知的方式告知用户结果(如WebSocket)。