通过无缝的MCP集成,直接将Claude的人工智能能力连接到您的SAP系统
此仓库包含一个基于Python的解决方案,该方案通过SAP Graph API实现了Claude(Anthropic的大语言模型)与SAP系统之间的双向通信。利用模型上下文协议(MCP),这种集成允许Claude实时检索和处理SAP业务数据。
本文档是针对具有管理员权限的Windows环境编写的
登录SAP Graph Navigator。 在您的个人资料中,可以在设置 > API设置下找到API密钥。 将该API密钥保存为系统环境变量"SAP_API_KEY"。 确保重新启动计算机以加载新的环境变量。
让我们遵循服务器开发者文档。
首先,安装uv并设置我们的Python项目和环境:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
确保之后重新启动终端,以确保uv命令被识别。
现在,让我们创建并设置我们的项目:
# 创建一个新的项目目录
uv init saptools
cd saptools
# 创建虚拟环境并激活它
uv venv
.venv\Scripts\activate
# 安装依赖项
uv add mcp[cli] httpx requests
# 创建我们的服务器文件
new-item saptools.py
将saptools.py文件克隆到您自己的文件中。
打开Claude Studio。在文件 > 设置 > 开发者中,点击编辑配置。
编辑通常位于%APPDATA%\Claude文件夹中的claude_desktop_config.json文件。
确保替换C:\\PATH\\TO\\PARENT\\FOLDER为您自己的路径。
{
"mcpServers": {
"saptools": {
"command": "uv",
"args": [
"--directory",
"C:\\PATH\\TO\\PARENT\\FOLDER",
"run",
"saptools.py"
]
}
}
}
现在,重启Claude桌面以加载配置。 请注意,默认情况下,关闭Claude窗口只会将其最小化到系统托盘。 您需要通过右键单击系统托盘中的图标并选择退出来完全关闭它。 重启Claude后,聊天窗口中应显示一个新的锤子图标,显示活动的MCP工具数量。 点击它以显示信息弹出窗口,其中应显示: get_sales_orders 从SAP Graph API沙盒中检索销售订单。 参数:top: 要检索的销售订单数量(默认:3)。 api_key: SAP API密钥(可选,如果没有提供将使用环境变量) 返回值:包含格式化的销售订单信息的字符串
现在,您应该可以通过Claude与SAP系统进行对话,例如:
给我最后10个销售订单
最后5个销售订单的平均金额是多少
当然,目前这还很有限,但这个概念验证的扩展应该支持更复杂的交互, 比如获取给定客户的最后销售订单。
此解决方案使用模型上下文协议(MCP)在Claude和SAP系统之间创建双向通信通道:
get_sales_orders从SAP Graph API检索销售订单信息。
参数:
top (int, 可选): 要检索的销售订单数量(默认:3)api_key (str, 可选): SAP API密钥(如果未提供则使用环境变量)示例响应:
找到了3个销售订单:
订单ID: 123456
展示ID: SO-123456
售予方: ACME Corp
净额: 5000.00 USD
创建时间: 2024-10-12T15:30:00Z
----------------------------------------
订单ID: 123457
展示ID: SO-123457
售予方: TechInnovations
净额: 7500.00 USD
创建时间: 2024-10-13T09:15:00Z
----------------------------------------
订单ID: 123458
展示ID: SO-123458
售予方: SampleCustomer
净额: 2500.00 USD
创建时间: 2024-10-14T09:15:00Z
----------------------------------------