使用说明
SAP S/4HANA公有云:产品数据MCP服务器
🎯 项目目标
通过以下方式改变您的互动 SAP S/4HANA云 通过公开OData来获取产品数据 API_PRODUCT_SRV 作为一个动态 模型上下文协议(MCP) 工具。这允许与您的产品数据进行自然语言交互,无需SAP Joule许可证或设置:
- “显示系统中排名前10的产品” → 使用以下命令自动查询产品实体
$top=10 - “获取一般产品详细信息列表” → 从SAP沙盒中检索实时数据
- “给我50条记录的样本” → 优化了OData检索
$inlinecount
🧩 架构概述
与复杂的JDBC包装器或多跳BTP架构不同,此服务器利用 Python原生FastMCP 实现直接、轻量级连接的方法。
核心组件:
- 🔌 MCP协议层: 建立在
mcp.server.fastmcp,通过以下方式确保低延迟通信stdio. - 🌐 OData集成: 直接HTTP
GET向SAP S/4HANA云沙盒发送请求。
方法优势:
- 无需SQL: 直接与SAP的原生OData结构交互。
- 沙盒就绪: 初始测试不需要复杂的SAP BTP或Cloud Connector设置。
- 上下文高效: 返回专门为LLM消费格式化的结构化JSON。
✨ 主要特点
🎨 OData的自然语言
- 智能查询翻译: AI代理将自然语言意图(例如,“给我看一些产品”)转换为精确的函数参数(
top_count). - 安全限制: 自动强制执行SAP沙盒限制(最多50条记录)以防止API节流。
🚀 生产就绪逻辑
- 错误处理: 健壮
try/catch围绕HTTP请求的块,并向AI报告结构化错误。 - 标准保护: 自定义日志配置将调试信息定向到
stderr,保持stdout纯JSON-RPC协议完整性。 - OData V2/V4兼容性: 逻辑处理两者
d/results(V2)和value(V4)JSON响应结构。
🏛️ 系统架构
graph LR
A[🤖 AI Agent] <-->|Stdio / JSON-RPC| B[🐍 SAP MCP Server]
B <-->|HTTPS / OData| C[☁️ SAP S/4HANA Sandbox]
subgraph "Local Machine"
A
B
end
subgraph "SAP Ecosystem"
C
end
💡 用例
📈 产品目录发现
用户: “系统中列出了哪些产品?给我举5个例子。”
- 工具:
get_sap_products - 逻辑: 获取一个小样本,以允许LLM推断模式和产品类型。
📊 数据采样
用户: “下载允许的最大数量的产品进行分析。”
- 工具:
get_sap_products - 逻辑: 使用调用API
top_count=50(沙盒限制)。
🛠️ 安装和设置
先决条件
- Python 3.10 或更高
- 点 或 紫外线 (推荐)
- 公共沙盒API密钥
- Claude桌面应用程序
安装指南
-
克隆存储库:
git clone https://github.com/smrepo/sap-mcp cd sap-mcp -
安装依赖关系:
pip install mcp requests -
验证脚本: 确保
sap_mcp_server.py在目录中。
⚙️ 配置(克劳德桌面)
要将此服务器与Claude Desktop一起使用,您必须将其添加到您的 claude_desktop_config.json 文件。
视窗
地点: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sap-product-info": {
"command": "python",
"args": [
"C:\\Absolute\\Path\\To\\Your\\Repo\\sap_mcp_server.py"
]
}
}
}
