关于 S4MCPDEMO.git
S4MCPDEMO.git 是用于查询 SAP 物料主数据的演示服务,可用于 Cursor 等集成。它支持 HTTP API 和 stdio 模式,但 README 明确说明不适合生产环境。
主要功能
- 01查询物料基本信息
- 02按描述搜索物料
- 03查询多语言物料描述
- 04支持 HTTP 与 stdio 模式
- 05提供 OpenAPI 文档
适用场景
- 01按物料编号检索属性
- 02根据描述查找物料
- 03查看指定语言的物料描述
MCP 相关
该服务可通过 stdio 模式作为 MCP 工具使用,也支持 HTTP API 模式;它向客户端提供 SAP 物料主数据查询能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
物料主数据 MCP
版本: 1.0.1
作者: ORBIS Consulting Shanghai Co.,Ltd
许可证: MIT
最后更新: 2025 年 4 月 11 日
限制: 此功能仅供演示,不能用于生产环境。如有需要,请联系作者:[email protected]
物料主数据 MCP(Master Control Program)是一项用于与 SAP 系统交互、提供主数据查询功能的服务。该服务可以作为 HTTP API 服务运行,也可以在标准输入/输出模式下作为工具运行,支持与 Cursor 等智能助手集成。
功能特性
- 双模式运行:支持 HTTP API 和标准输入/输出(stdio)模式
- 物料基本信息查询:获取物料的详细属性和特征
- 物料描述搜索:根据描述文本查找相关物料
- 多语言支持:支持以不同语言(中文、英语、德语等)查询物料描述
- 类型安全:使用 Pydantic 模型进行输入验证
- 完整的 API 文档:内置基于 OpenAPI 规范的 API 文档
- MCP.so 托管支持:可部署到 MCP.so,以便通过云端访问
- API 密钥身份验证:使用 JWT 进行安全身份验证
安装
要求
- Python 3.7+
- 可访问 SAP S/4HANA 系统
安装步骤
- 克隆此仓库:
git clone https://github.com/SHENRUIYANG/S4MCPDEMO.git
cd S4MCPDEMO
- 安装依赖项:
pip install -r requirements.txt
- 配置 SAP 连接(可选,也可以使用环境变量):
在项目根目录中创建 .env 文件,内容如下:
SAP_HOST=your_sap_host
SAP_PORT=your_sap_port
SAP_USER=your_sap_username
SAP_PASSWORD=your_sap_password
JWT_SECRET=your-secret-key # 用于生成和验证 API Key 的密钥
- 生成 API 密钥:
出于安全考虑,公开仓库中不包含 API 密钥生成脚本。如需为此服务生成 API 密钥,请直接联系作者。
API 密钥采用 JWT 格式,包含:
- 用户邮箱
- SAP 连接信息(主机、端口、用户名、密码)
- 过期日期
注意:API 密钥包含敏感的连接信息,请妥善保管。
使用方法
作为 HTTP 服务启动
python MM03_MCP.py --mode=http --host=0.0.0.0 --port=5003
这将启动一个 FastAPI 服务,并在指定端口(默认端口为 5003)上监听。
作为标准输入/输出(stdio)工具启动
python MM03_MCP.py --mode=stdio
这将启动程序并等待从标准输入接收命令,适合与 Cursor 等智能助手集成。
作为 REST 服务启动(用于 MCP.so)
python MM03_MCP.py --mode=rest --host=0.0.0.0 --port=5003 --endpoint=/rest
这将启动适合 MCP.so 托管的 REST 服务。
API 端点
启动 HTTP 服务后,可以使用以下 API 端点:
- GET /.well-known/mcp-manifest.json:获取 API 清单
- POST /mcp_MM03_BasicData:获取物料基本信息
- POST /mcp_MM03_DescToMaterial:按描述搜索物料
- POST /mcp_MM03_Description_Search:获取指定语言的物料描述
- GET /health:健康检查端点
API 文档
启动 HTTP 服务后,访问 http://localhost:5003/docs 即可查看完整的 API 文档。
使用示例
获取物料基本信息
curl -X POST "http://localhost:5003/mcp_MM03_BasicData" \
-H "Content-Type: application/json" \
-d '{"material": "FG126"}' \
-H "Authorization: Bearer your-api-key"
按描述搜索物料
curl -X POST "http://localhost:5003/mcp_MM03_DescToMaterial" \
-H "Content-Type: application/json" \
-d '{"description": "serial", "language": "EN"}' \
-H "Authorization: Bearer your-api-key"
获取指定语言的物料描述
curl -X POST "http://localhost:5003/mcp_MM03_Description_Search" \
-H "Content-Type: application/json" \
-d '{"material": "FG126", "language": "EN"}' \
-H "Authorization: Bearer your-api-key"
与 MCP.so 集成
本项目旨在兼容 MCP.so 托管。仓库包含所有必要文件:
- chatmcp.yaml:MCP.so 集成配置
- Dockerfile:用于部署的容器映像定义
- LICENSE:符合商业友好型部署要求的 MIT 许可证
要将此服务部署到 MCP.so:
- 将 GitHub 仓库 URL 提交到 MCP.so 平台
- MCP.so 团队将审核并部署此服务
- 审核通过后,即可在 MCP Playground 中使用
Docker 部署
你也可以在 Docker 容器中运行此服务:
# Build the Docker image
docker build -t mcp/mm03-mcp .
# Run the container
docker run -i --rm -e SAP_USER=your_username -e SAP_PASSWORD=your_password mcp/mm03-mcp
API 详情
BasicData
获取物料的基本信息。
输入参数:
material:物料编号(例如,“FG126”)
返回字段:
- 物料类型(ProductType)
- 创建日期(CreationDate)
- 毛重(GrossWeight)
- 基本计量单位(BaseUnit)
- 物料组(ProductGroup)
- 以及更多 SAP 物料主数据字段
DescToMaterial
按描述文本搜索物料。
输入参数:
description:描述文本(例如,“valve”)max_results:最大结果数(默认值:50)language:语言代码(例如,“EN”表示英语,“ZH”表示中文,“ALL”表示所有语言,默认值为“ZH”)
返回字段:
material:物料编号description:物料描述language:语言代码
Description_Search
获取指定语言下特定物料的描述信息。
输入参数:
material:物料编号(例如,“FG126”)language:语言代码(例如,“EN”表示英语,“ZH”表示中文,默认值为“EN”)
返回字段:
material:物料编号description:物料描述language:语言代码
依赖项
- FastAPI:Web 框架
- Uvicorn:ASGI 服务
- httpx:异步 HTTP 客户端
- python-dotenv:环境变量管理
- Pydantic:数据验证
- FastMCP:MCP 核心库
安全注意事项
- 在生产环境中,建议启用 HTTPS
- 不要在代码中硬编码凭据;请使用环境变量或安全的凭据管理解决方案
- 确保只有经过授权的用户才能访问 API
许可证
贡献
欢迎提交问题和拉取请求!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。