Agent 与工具调用6742 字

泛微 E10 MCP 集成实战:从动作流到智能助手

·全库 611 / 611

《泛微 E10 MCP 集成实战:从动作流到智能助手》共 0.7 万字,通篇围绕 MCP、权限、日志、场景 展开,归在「Agent 与工具调用」这一层。

覆盖MCP权限日志场景提示词安全

适合要让 AI 真的去干活、不只是陪人聊天的人

目录骨架(8 节)
  1. 一、先纠正一个直觉:MCP 解决的不是「接口调用」
  2. 二、E10 的取舍:用 Webhook 动作流当工具
  3. 三、一次调用经过谁
  4. 四、环境准入:三件事任何一件不满足,后面全是白做
  5. 五、核心:把动作流设计成模型能用的工具
  6. 六、创建 MCP:六个字段,每个都有坑
  7. 七、接口列表:把动作流挂成工具
  8. 八、密钥与客户端接入
目录 · 3 节

核心观点:E10 的 MCP 不是「再写一个服务」,而是「给已有的 Webhook 动作流套一层工具外壳」。所以这门活的工作量分布是——70% 在动作流设计,20% 在网关和密钥,10% 在点鼠标建 MCP。新手最容易犯的错,是把 90% 的注意力放在「新建 MCP」那个表单上。

读完你能带走:一条从环境准入到上线的完整配置流水线、一套让模型「愿意调、调得对」的动作流写法、一张能定位到具体层的排错决策树,以及六个文档里没写、但上线前必须问清的问题。


一、先纠正一个直觉:MCP 解决的不是「接口调用」

多数人第一次接触 MCP,会把它理解成「AI 版的 HTTP 客户端」——把接口包一层,让模型能发请求。这个理解漏掉了关键的一半。

MCP 真正解决的是 N×M 的适配爆炸。3 个 AI 客户端接 5 个业务系统,点对点写适配要 15 套代码,每加一个新客户端,所有系统都要重写一遍。MCP 把这件事拆成两半:业务系统实现一次 Server,客户端实现一次 Client,中间用标准协议对接,3 + 5 = 8 份工作,且互不影响。

代价是协议必须约定得足够细。细到什么程度?细到工具名、工具描述、参数 schema 这三样东西必须由服务端提供,因为模型不读你的代码,也不读你的接口文档——它决定「调不调、怎么传参」的唯一依据,就是 tools/list 返回的这三样。

这句话是整篇文章的地基。E10 的 MCP 实现里,这三样东西的来源是:动作流的名称、动作流的描述、动作流的 Webhook 参数。所以「接口设计」在 MCP 语境下,实质是「给模型写一份它看得懂的说明书」。

三个角色,五个动作

角色 / 动作职责E10 场景里对应谁
Host(宿主)跑模型的那个应用,持有会话WorkBuddy 客户端
Client(客户端)协议实现,连服务器、转发调用WorkBuddy 的自定义连接器
Server(服务器)暴露工具清单、执行工具E10 的 /mcp/{编码} 端点
initialize握手,协商版本与能力首次「认证 / 信任」
tools/list拉取工具清单连接器显示「N 个工具已启用」
tools/call按名称传参调用会话里模型自动发起的那次调用

二、E10 的取舍:用 Webhook 动作流当工具

泛微没有让你去写 MCP Server,而是把 ESB 中心里已有的 Webhook 动作流包装成工具。这个设计的收益和代价都很清楚,值得先摆开来看。

E10 的做法收益代价
工具来源:在 MCP Server 里勾选「已启用的 Webhook 动作流」零代码,已有集成资产直接复用,不用 Java 开发、不用重新部署工具能力被动作流上限锁死;动作流禁用或删除,工具就废了
参数定义:沿用动作流 Webhook 触发器的 Param / Header / Body 参数不用维护两套 schema只支持少数几种 Body 格式
描述来源:直接取动作流的名称和描述改描述即改工具行为,不用碰 MCP 配置描述写得敷衍,AI 就选不中,且几乎无法排查
鉴权方式:个人维度的 MCP 密钥 + 网关白名单调用可归因到人,可按用户统计次数多了密钥生命周期和网关配置两道关

这个表还有一层含义:MCP Server 菜单挂在动作流模块下,原因正是它底层就是动作流的 webhook。理解了这层耦合,后面所有「为什么这个也不行、那个也不支持」的疑问都能自己回答。


三、一次调用经过谁

排错的前提是能在脑子里画出这条链路。画不出来,就只能盲试。

图 1 · E10 MCP 一次调用的完整链路

链路上有六个环节,每个环节断掉,用户看到的都是同一句话——「AI 调不动」。但原因完全不同。

#动作失败时你看到什么
1客户端向 /mcp/{编码} 发起 initialize连接失败 / 404 / 502,基本是 nginx 或网关没配
2网关校验请求头里的 MCP 密钥认证失败:密钥错、被重置、或用了别人的密钥
3open-server 按编码找到 MCP,组装工具清单工具数为 0:接口没绑,或绑的动作流被禁用
4客户端把名称和描述交给模型工具在但永不命中:描述缺业务语义
5模型按 schema 组装参数参数错/缺参:参数没标必填,或命名难懂
6tools/call 打到 esb-server 的 webhook trigger500:动作流内部报错,去看动作流日志
7动作流按配置的触发参数接收数据参数全 null:Body 格式不支持或字段名对不上
8结果原路返回,同时累计本用户调用次数答案全是废话:返回结构不是给模型看的

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求