ERP 管账,AI 管事。中间隔着的,是一层听得懂人话的MCP。
导言:ERP 管账,AI 管事。中间隔着的,是一层听得懂人话的MCP。现在不用自己写封装,去GitHub挑一个现成的SAP MCP server。通道怎么选、权限怎么卡、Skill怎么写、坑怎么排,全文一条主线,读完照着清单就能开工。
01、数据明明都在,人就是够不着
众所周知,查库存要开事务代码MMBE,追采购单要跑ME2N,序列号状态得进IQ03一个个盯。几十个Tcode,新同事光是背就够呛。数据全在系统里,却被圈在一张张灰扑扑的界面后面,够不着,也使不上劲。
问题不在SAP本身,出在使用门槛上。接入WorkBuddy之后,员工开口说一句话,AI负责把这句话翻译成对系统的调用。查库存、追单、核序列号,不用再背代码,也不用天天缠着IT要这要那。
这不是设想。蒙牛的零售团队已经把一套3小时的SAP抓单录单压到了15分钟;上海家化把2人天的SAP月度供应链对账缩到15 分钟;上海某医疗器械公司手工搭BOM每天4小时的活也能直接归零,这些都是WorkBuddy+SAP的成功案例。
02、定位:加一层外挂,不动根基
既然别人都在用了,那我们就动手试试。有人一听「AI要接SAP这个洪荒巨兽」就紧张,怕用了十年的老系统被推翻。先把心放回肚子里,WorkBuddy从头到尾没想过动SAP的根基:SAP 继续管账、管主数据、管核心流程;WorkBuddy 在外头补一层听得懂人话的接口,也补上桀骜难训的SAP一个从此亲民的形象。
当然,WorkBuddy对接的这种模式,跟前几年的 RPA 走的是两条路。
维度 | RPA | WorkBuddy |
工作方式 | 把规矩写死,按脚本执行 | 听懂意思再动手 |
流程变动 | 脚本卡壳报错,回头改 | 大模型重新理解意图 |
上手成本 | 画流程图、录脚本 | 业务一句大白话 |
适合的活 | 高度固定的重复操作 | 查数、调流程、出报表、盯异常 |
从此以后,人和AI之间的分工跟着重排:重复的、机械的、标准化的活交给AI;要拍板、要判断的活留给人。财务从录单对账转向审数据控风险,采购仓管从报表核对转向等系统主动提醒。
03、接入:GitHub上现成的SAP MCP
从哪里开始呢?按第一性原理是把接口封装成连接器、提交开放平台上架,是平台官方的路子,配置权收归管理员、按角色下发。但民间现在还有一条更快更便捷的路:GitHub上SAP的MCP生态已经相当成熟,现成的server拿来就能用,无需自己再动手封装,大大降低了对接这件事的专业门槛。
总目录是
marianfoo/sap-ai-mcp-servers,两百来个项目分门别类。老丁挑几个大家觉得还不错的:
项目 | 干什么 | 特点 |
romankorim/sap-mcp-server | OData + RFC/BAPI 读 ECC / S4HANA | 默认只读、BAPI白名单、写操作两步确认、全程审计日志、不依赖 NetWeaver RFC SDK |
oisee/odata_mcp_go | Go写的OData转MCP 桥 | 支持OData v2/v4,144★ |
lemaiwo/btp-sap-odata-to-mcp-server | BTP Destination方式暴露OData服务 | 137★,配置驱动 |
mario-andreschak/mcp-abap-adt | 包ADT API读写ABAP | 不用开SAP GUI |
HatriGt/hana-mcp-server | HANA/HANA Cloud 数据库 | 直连查询 |
mario-andreschak/mcp-sap-gui | SAP GUI 脚本自动化 | 107★ |
业务读写场景优先看romankorim/sap-mcp-server,它的安全设计几乎就是底线的活教材;
OData工具全走GET,RFC只调只读函数模块白名单;
read_table 直接拒绝 USR*、HRP* 这类凭据和人事敏感表;
create_purchase_requisition 不带confirm=True只返回草稿提案;每次调用写审计日志。连RFC协议都用了开源的open-rfc实现,不用装SAP私有SDK。
每种MCP都有它自己的场景,在选择时可以充分发挥我们的主观能动性,多尝试,多对比,找到和你需求最契合的MCP,AI会奖励那些勤于动手的人。
04、配置连接:通道选好,验证跑通
开源SAP MCP走的还是那几条通道:
通道 | 是什么 | 优点 | 毛病 |
RFC | 直接调BAPI和函数模块 | 稳定,能调标准物料查询函数 | 要装SAP GUI或 Connector库,不支持JSON |
OData(首选) | SAP Gateway 把RFC打包成 RESTful接口 | 返回JSON,WorkBuddy天然认,不用写中间件 | 要先配好 Gateway服务 |
SAP CPI | 云集成套件 | 适合跨企业、给外部平台同步数据 | 都在内网的话,没必要绕一圈上云 |
顺手的搭法:查询交给OData,批量改状态这类重活走RFC封成后台Job,CPI只在跟外部打通时才开。
配置以romankorim/sap-mcp-server 为例:clone仓库,建虚拟环境装依赖(RFC工具需要 Node 22以上)。然后备好 .env:OData根地址(通常是 https://主机:端口/sap/opu/odata/sap)、SAP集团号(SAP_CLIENT)、服务账号密码,走RFC时再填应用服务器主机和系统号(SAP_ASHOST / SAP_SYSNR),外加审计日志路径。网络上放行Gateway的HTTP(S) 端口和应用服务器的RFC端口(33NN,NN是系统号)。
挂进WorkBuddy就一段JSON:MCP配置里填启动命令和server脚本路径(stdio方式),启动后先跑sap_ping和rfc_ping,两个都通,链路就算打通。
如果不想研究上面的术语、过程,傻瓜式的办法是你在连上MCP后就说出你的连接需求,让WorkBuddy一步步引导你完成对接,AI比你想象的更聪明,你只要有个起心动念,其它的多依靠它来完成。
除此以外,还有两种连接方式老丁也随口提一下。
1、本地部署的SAP还可以走数据库只读连接:让DBA开一个只有SELECT权限的账号,用VPN打通网络,防火墙只放行数据库端口,把工资、成本分摊这类敏感底表挡在外面,再配查询限流,免得AI一口气把生产库查趴。
2、RPA模拟操作模式:WorkBuddy自动操控浏览器/客户端登录ERP、填单、导出报表。适用于只需少数表对接的狭窄场景。前面说的规矩写死,在AI编排下能避开大半。
05、安全这根弦,一开始就得绷紧
在WorkBuddy+ERP的实践中,最容易出的乱子是权限给太大。越权的确是大家在AI介入ERP过程中考虑最多的问题。有人图省事直接拿管理员账号给AI用,万一提示词被注入,AI可能就去调不该调的函数。几条底线:
底线 | 做法 |
读写分开 | 建只读服务账号(如ZAI_SERVICE),只挂查询类事务代码权限;下单走草稿,人工确认后提交 |
账号分层 | 只读查询账号一个,单据写入子账号一个(只能新增草稿,无审核、删除、改历史单据权限),管理员账号不对接 |
权限按角色卡死 | 销售只给订单、库存、售价查询,成本字段屏蔽;仓库管出入库;财务给财务单据;全权限只留 IT 集成 |
日志留够 | 接口调用日志存180天,内审、税务追溯拿得出证据 |
敏感数据脱敏 | 成本、采购价前端自动隐藏,导出加水印;预警消息只给系统ID和单据号,敏感信息不过大模型的手 |
06、真正接入的动作
第一步,接口层就位。前面sap_ping通了,这步就算完成,接口封装不用自己写一个字;真要走自研封装的,才轮到REST API连接填接口地址、Token、请求头那套配置。
第二步,字段对上眼。走自研连接的,左右拖拽匹配字段;走开源MCP的,在写Skill时把字段语义对齐。两边都要,统一格式(日期 yyyy-MM-dd、金额两位小数去千分位、编码去空格统一大写),配校验规则:必填缺失、档案查不到、重复单据、超信用或负库存,一律拦下,脏数据不进SAP。同步推荐两条腿走:SAP新增或改单据实时推送;库存台账每10分钟轮询,财务台账每天凌晨拉一次。
第三步,写Skill。写之前先把「让AI干什么」列清楚,制造企业最常见的几件事:
业务需求 | 对应 Tcode |
查库存 | MMBE |
追采购单进度 | ME2N |
看序列号状态 | IQ03 |
盯缺料 / MRP 异常 | MD07 |
一个Skill分成两部分:语义定义(什么时候触发)和执行脚本(实际调哪个接口)。真正卡脖子在听懂参数:业务不会规规矩矩说「物料号478在工厂0001的库存」,只会说「那个蓝色的杯子还剩多少」。建议在Skill里加一道实体识别,把物料描述映射成物料号词典,词典让业务自己维护,导成 Excel 每周更新一次。准确率从60%一路提到90%以上。
还有编排这手:把「查采购单走到哪」做成复合Skill,同时调ME2N、MMBE和物流状态三个数据源,拼成一句话返回。几个调用从排队改成并发,单次查询从4秒砍到1.5 秒。对天天查单的人来说,这是质变。团队版支持技能隔离,每个Skill跑独立沙箱,单个技能被塞恶意参数也不会殃及宿主。
第四步,搭知识库。操作手册、财务制度、审批规范、科目字典、客商主数据全扔进去,分块向量化,定期刷新。最后老规矩:测试库全流程跑一遍,挑一个部门试一周,修完漏单和对不齐的字段再全量上线。业务标准也一起喂进去:各条线标准流程、预警阈值(安全库存、信用额度、账期、呆滞天数、报废率红线)、审批规则。这些提前定好,自动化才有准星。好在以后密钥过期、接口升级,只要改连接配置,所有技能自动跟着生效。
这些都是联通后要考虑的要素,需要时可以参考安排,如果只是看技术可行性,都可以暂时忽略。
07、上线后能干的事
一句话查库存、追采购单。注意SAP库存有普通、质检、冻结几个口径,返回前做口径校验,把质检库存单独列,不然容易把业务带沟里。
客户问价自动算报价:查实时库存、单位成本、阶梯售价、应收余额、信用额度,算出含税报价和毛利,超信用自动标红,确认后一键生成销售订单草稿。
送货单拍照自动入库:OCR识别后校验采购订单,生成入库单草稿;对不上就拦下推异常工单。月底盘点上传 Excel,自动对账面库存,一键生成调整单草稿。
采购需求自动算:每天拉库存、日均出库、订单占用、安全库存阈值,算出建议采购量,生成采购申请草稿。
每天早上六点自动出经营日报,原来分析师花一小时整理的活,管理层打开手机读三句话就完事。财务的活也能接:每月二十五号自动拉数、洗数据、分摊费用、出利润表;报销发票OCR识别加预算校验,生成费用凭证草稿。
08、出岔子了怎么排查
通用思路是先定位哪一层出的问题:AI 没听懂(理解层)、接口没调通(调用层)、SAP 数据本身不对(数据层)。拿「查物料库存答错」举例:先看 AI 解析准不准,再抓中间服务日志看 OData 请求的 URL 和参数,跟事务代码手查结果对比,最后确认是不是没过账或权限范围没设对。
序列号这里有个坑提前说:EDEL 状态(已标记删除)更新不实时,要等交货、发货过账时由系统事件触发。直接动后台底表,界面和数据就会对不上。AI 查序列号只能去 IQ03 读结果,真要改,必须走标准 BAPI。
现象 | 原因 | 解法 |
触发了但返回空 | OData 返回空数组没做提示 | Skill 里加判断,空了主动提示 |
调用返回 401 | 没拿 CSRF token 或账号过期 | 写操作前先要 token,查服务账号有效期 |
序列号跟界面对不上 | 直接改了底表 | 所有写操作走标准 BAPI |
网关响应超时 | 超时阈值太短 | 放大到 120 秒,长请求分片 |
返回 404 | 对象名、ADT 路径写错或 SICF 服务没启用 | 逐项检查 |
网络或 TLS 报错 | 端口、证书问题 | 查网络和受信任证书,别关证书校验 |
三条踩坑经验:写操作关进笼子、人工确认后再执行;中间服务加降级逻辑,AI 崩了直接返回简化结果,提示智能解析暂不可用,AI 可以挂,生意不能停;日志每个工具独立目录、每天轮转,排查时时间戳对齐就是救命稻草。
09、账算清了,照单开工
传统模式下,等各部门交数据、手工汇总报表、核对口径汇率、分析、写周报,每天重复活四到六小时。接入后,数据自动同步、定时出报、自动分析,管理者只花一小时看结果做判断。
往深一层看,这是一场成本重构:执行趋零,翻译涨价。AI 把配置、集成、跑批这些执行成本压低后,把模糊业务知识翻成机器能懂的结构,这门翻译功夫的权重反而上来了。
账算到这儿,值不值得接已经清楚。读完全文,照这张清单就能开工:
1. 列需求清单:让 AI 干什么,对应哪些 Tcode
2. 定预警阈值:安全库存、信用额度、账期、呆滞天数、报废率红线
3. 去GitHub挑MCP server:总目录
marianfoo/sap-ai-mcp-servers,业务读写优先romankorim/sap-mcp-server
4. 选技术通道:内网优先OData,批量重活走RFC,外联才上CPI
5. 建账号体系:只读账号、写入子账号分开,权限按角色卡死
6. 配 .env 挂进 WorkBuddy:sap_ping、rfc_ping 先验证跑通
7. 字段对齐加校验:格式统一,脏数据不进SAP
8. 写 Skill 加词典:物料号词典业务自己维护,每周更新
SAP几十年攒下来的专业门槛,不该成为大家看数据的拦路虎。WorkBuddy补的是它够不着、管不深的那一块,把查库存、追单、核序列号、对账这些磨人的活丢给AI,把人腾出来做真正的判断和决策。
当SAP遇上AI智能体,ERP管账AI 管事。两边一通,数据才从系统里躺着的记录,变成开口就能拿到的答案。