关于 SAP-Claude Integration via MCP (Model Context Protocol)
这是一个 Python MCP 服务,可让 Claude 从 SAP Graph API 获取销售订单数据。目前提供一个查询工具,适合希望将 Claude Desktop 连接到 SAP 数据的用户。
主要功能
- 01获取 SAP 销售订单
- 02通过 top 设置返回数量
- 03从环境变量读取 API 密钥
- 04为 Claude 格式化订单详情
适用场景
- 01查看近期 SAP 销售订单
- 02让 Claude 计算订单平均金额
MCP 相关
向 MCP 客户端提供 get_sales_orders 工具。该工具查询 SAP Graph API,并返回格式化的销售订单信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
通过 MCP(Model Context Protocol)集成 SAP 与 Claude
通过无缝的 MCP 集成,将 Claude AI 的能力直接连接到你的 SAP 系统
此代码库包含一个基于 Python 的解决方案,可通过 SAP Graph API 在 Claude(Anthropic 的大模型)与 SAP 系统之间实现双向通信。借助 Model Context Protocol(MCP),Claude 可以实时检索和处理 SAP 业务数据。
功能
- 只需最少的设置,即可将 Claude 连接到 SAP 系统
- 通过 Graph API 从 SAP 检索实时销售订单数据
- 扩展集成以支持其他 SAP 实体(客户、产品等)
- 充分利用 Claude 的大模型能力处理 SAP 数据
先决条件
- Python 3.8+
- SAP API 密钥(沙盒或生产环境)
- Claude Desktop
- 对 MCP 和 SAP Graph API 有基本了解
本文档适用于具有管理员权限的 Windows 环境
参考文档
安装
- 获取 SAP API 密钥
登录 SAP Graph Navigator。 你可以在个人资料的 Settings > API Settings 中找到 API 密钥。 将该 API 密钥保存为系统环境变量 "SAP_API_KEY"。 请务必重启计算机,以加载新的环境变量。
- 设置环境
请按照服务器开发者文档操作。
首先,让我们安装 uv 并设置 Python 项目和环境:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
之后请务必重启终端,确保能够识别 uv 命令。
现在,让我们创建并设置项目:
# Create a new directory for our project
uv init saptools
cd saptools
# Create virtual environment and activate it
uv venv
.venv\Scripts\activate
# Install dependencies
uv add mcp[cli] httpx requests
# Create our server file
new-item saptools.py
- 构建服务
将 saptools.py 文件克隆到你自己的文件中。
- 将 Claude Desktop 连接到 MCP 服务
打开 Claude Studio。在 File > Settings > Developer 下,点击 Edit Config。
编辑文件 claude_desktop_config.json,该文件通常位于 %APPDATA%\Claude 文件夹中。
请务必将 C:\\PATH\\TO\\PARENT\\FOLDER 替换为你自己的路径。
{
"mcpServers": {
"saptools": {
"command": "uv",
"args": [
"--directory",
"C:\\PATH\\TO\\PARENT\\FOLDER",
"run",
"saptools.py"
]
}
}
}
现在,重启 Claude Desktop 以加载配置。 请注意,默认情况下,关闭 Claude 窗口只会将其最小化到系统托盘。 你需要右键点击系统托盘中的图标并选择 Quit,才能完全退出。 重启 Claude 后,聊天窗口中应会出现一个新的锤子图标,显示已启用的 MCP 工具数量。 点击该图标即可查看信息弹窗,其中应显示: get_sales_orders 从 SAP Graph API 沙盒检索销售订单。 参数:top:要检索的销售订单数量(默认值:3)。 api_key:SAP API 密钥(可选;若未提供,则使用环境变量) 返回:包含格式化销售订单信息的字符串
- 测试 MCP 服务
现在,你应该可以在 Claude 中通过类似以下的提示词与你的 SAP 系统聊天:
Give me the last 10 sales orders
What is the average amount of the last 5 sales orders
当然,目前功能有限,但扩展此概念验证后应能支持更复杂的交互, 例如获取指定客户最近的销售订单。
🛠️ 工作原理
此解决方案使用 Model Context Protocol(MCP)在 Claude 与 SAP 系统之间建立双向通信通道:
- 使用 FastMCP 库初始化 MCP 服务
- 服务将 SAP 功能作为 Claude 可调用的“工具”公开
- 当 Claude 需要访问 SAP 数据时,会调用相应的工具函数
- 该函数连接到 SAP Graph API 并返回格式化结果
- Claude 处理返回的数据并生成相关见解
📊 当前可用工具
get_sales_orders
从 SAP Graph API 检索销售订单信息。
参数:
top(int,可选):要检索的销售订单数量(默认值:3)api_key(str,可选):SAP API 密钥(如果未提供,则使用环境变量)
示例响应:
Found 3 sales orders:
Order ID: 123456
Display ID: SO-123456
Sold To Party: ACME Corp
Net Amount: 5000.00 USD
Created At: 2024-10-12T15:30:00Z
----------------------------------------
Order ID: 123457
Display ID: SO-123457
Sold To Party: TechInnovations
Net Amount: 7500.00 USD
Created At: 2024-10-13T09:15:00Z
----------------------------------------
Order ID: 123458
Display ID: SO-123458
Sold To Party: SampleCustomer
Net Amount: 2500.00 USD
Created At: 2024-10-14T09:15:00Z
----------------------------------------
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。