SAP OData MCP Server
Provides tools for interacting with SAP S/4HANA OData service, enabling queries and controlled updates for sales orders, products, customers, and pricing conditions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SAP OData MCP Serverquery sales order 4500001234"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
B2B SAP Project
SAP S/4HANA OData MCP 服务与客户自助下单门户。
面向 SAP S/4HANA OData 的 stdio MCP 服务,支持销售订单、物料主数据、客户主数据、销售价格条件的查询,以及受控的销售订单创建和更新。
安全模型
所有写操作默认
dry_run=true,只返回将发送的 OData 负载。真实写入必须同时满足:
SAP_WRITE_ENABLED=true、dry_run=false,以及工具要求的确认短语。更新要求传入
sap_get_sales_order返回的 ETag,以避免覆盖并发修改。可更新字段由
SAP_WRITE_ALLOWED_FIELDS白名单控制。必须通过
SAP_CA_CERT_PATH信任企业 CA。生产环境拒绝关闭 TLS 证书校验。测试 SAP 若使用自签名证书,仅可在
NODE_ENV=development下显式设置SAP_TLS_REJECT_UNAUTHORIZED=false用于临时联调。生产环境必须配置SAP_CA_CERT_PATH并保持 TLS 校验开启。密码和证书不允许写入 Git 仓库。
Related MCP server: MCP SAP Business One
安装与构建
npm install
npm run build将 .env.example 的值保存到仓库外的受保护位置。服务通过 MCP 客户端的 env 块接收这些环境变量;参考 mcp.config.example.json。
npm run check-config
npm start工具
工具 | 能力 |
| 查询订单表头并返回 ETag |
| 分页上限内查询订单行项目 |
| 生成或创建销售订单;默认演练模式 |
| 更新白名单内的表头字段;默认演练模式 |
| 查询 |
| 查询 |
| 分页查询 |
真实创建须使用 confirm: "CREATE_SALES_ORDER",真实更新须使用 confirm: "UPDATE_SALES_ORDER"。创建和更新前请先取得业务变更审批。
CCFB / Codex 接入
由机器人宿主管理员将构建后的 dist/index.js 注册为 stdio MCP,使用 mcp.config.example.json 的结构注入密钥。重启机器人并新开对话后,MCP 工具才会可用。
本地下单门户
运行 npm run build 后,以环境变量方式提供 .env.example 中的配置并执行 npm run start:web。门户在 http://localhost:3000 提供客户自助注册、客户号登录、A305/PR00 价格校验、购物车和“确认同步 SAP”操作。客户密码以哈希保存于 PORTAL_DB_PATH 指定的 SQLite 文件,不写入 SAP。
本地开发可在受保护的环境文件中设置 NODE_ENV=development 和 VERIFICATION_DELIVERY=log;验证码只输出到启动服务的终端日志,勿向他人转发。生产环境禁止日志投递,必须接入邮件服务后再开放注册。典型启动方式:
set -a
source ~/.config/sap-odata-mcp/.env
set +a
npm run build
npm run start:webSAP_WRITE_ENABLED 默认关闭;开启前必须完成 SAP 变更审批和服务账号授权。
客户商城目录与购物车
登录后的门户是一个面向客户的 B2B 订货商城:
默认展示条件类型
PR00、条件表A305且当前有效的物料;没有有效价格的物料不会显示或下单。商品、购物车行和订单预览均绑定当前客户在 SAP 中维护的完整销售范围(销售组织 / 分销渠道 / 产品组)。左侧目录来自 SAP 物料组,商品卡显示物料号、物料描述、销售单位和当前价格;搜索支持物料号或描述,默认每页 20 条(接口只接受 1–50)。
购物车只保存于当前浏览器会话。切换销售范围不会清空既有购物车行;结算时系统按完整销售范围拆分订单,服务端会重新读取 SAP 价格和可售性,不能信任浏览器传来的单价。
结算可收集期望交货日期、客户采购订单号和备注。前两项分别映射至 SAP 的
RequestedDeliveryDate与PurchaseOrderByCustomer。备注会显示在门户确认摘要中;在确认 SAP 已配置可写入的订单文本扩展字段前,系统不会将任意备注字段发送给 SAP。“确认并同步至 SAP”会再次显示订单摘要,之后服务端仍需
SAP_WRITE_ENABLED=true才会执行 OData POST。开发自测不要提交真实销售订单。
本地开发启动方式:
npm install
npm run build
set -a
source ~/.config/sap-odata-mcp/.env
set +a
NODE_ENV=development VERIFICATION_DELIVERY=log npm run start:web浏览器打开 http://localhost:3000。生产环境必须配置企业 CA 证书并使用真实邮件投递;不要关闭 TLS 校验,也不要将环境文件、证书、验证码或 SAP 凭据提交到 Git。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/YXH940724/B2B_SAP_Project'
If you have feedback or need assistance with the MCP directory API, please join our Discord server