SAP MCP Server and Client / SAP MCP服务器和客户端
英语| 中文
英语
该项目提供了一个MCP(模型上下文协议)服务器和客户端实现,用于通过RESTful API与SAP系统交互。
项目结构
config.json:SAP API连接的配置文件sap_server.py:使用SAP函数调用工具实现MCP服务器sap_client.py:MCP客户端演示服务器的使用requirements.txt:Python依赖关系test_mcp_client_final.py:基于HTTP的MCP客户端测试simple_test.py:MCP服务器的简单HTTP测试
安装
- 安装所需的依赖项(MCP SDK 1.3.0或更高版本):
pip install -r requirements.txt配置
更新 config.json 带有SAP API连接详细信息的文件:
{
"sap_api": {
"base_url": "http://192.168.1.129:8000/zmy_service",
"client": "100",
"username": "your_username",
"password": "your_password"
}
}如果你不需要身份验证,你可以离开 username 和 password 字段保持原样或完全删除它们。
用法
运行客户端
要运行客户端示例:
python sap_client.py这将:
- 启动MCP服务器
- 通过stdio连接到它
- 执行示例SAP函数调用
- 显示结果
以HTTP模式运行服务器
要在HTTP模式下运行服务器,请执行以下操作:
python sap_server.py --transport http --host 127.0.0.1 --port 8000使用HTTP客户端进行测试
要使用HTTP客户端进行测试,请执行以下操作:
python simple_test.py直接使用MCP工具
MCP服务器提供 call_sap_function 工具具有以下参数:
function_name(string,必填):要调用的SAP函数的名称parameters(对象,可选):SAP函数的参数
示例工具调用:
{
"function_name": "BAPI_GL_GETGLACCPERIODBALANCES",
"parameters": {
"COMPANYCODE": "C999",
"GLACCT": "0010010101",
"FISCALYEAR": "2023",
"CURRENCYTYPE": "10"
}
}运作原理
- MCP服务器(
sap_server.py)提供了一个名为call_sap_function - 调用时,此工具会向您的SAP RESTful API发出HTTP POST请求
- API响应通过MCP协议返回给客户端
- 客户(
sap_client.py)演示如何通过示例调用使用此工具
扩大实施范围
要添加更多SAP功能或修改行为:
- 修改
call_sap_tool功能在sap_server.py - 在中添加其他示例
sap_client.py - 更新中的配置
config.json根据需要
错误处理
该实现包括以下基本错误处理:
- 网络错误
- JSON解析错误
- 缺少函数名称
错误在响应中以JSON对象的形式返回,并带有“error”键。
附加说明
有关SAP动态RFC代码,请联系:zhangxj1@foxmail.com
______________________________________________________________________
中文
本项目提供了一个通过RESTful API与SAP系统交互的MCP(Model Context Protocol)服务器和客户端实现。
项目结构
config.json:SAP API连接的配置文件sap_server.py:MCP服务器实现,包含SAP函数调用工具sap_client.py:演示服务器使用方法的MCP客户端requirements.txt:Python依赖项test_mcp_client_final.py:基于HTTP的MCP客户端测试simple_test.py:用于MCP服务器的简单HTTP测试
安装
- 安装所需的依赖项(MCP SDK版本1.3.0或更高):
pip install -r requirements.txt配置
更新config.json文件中的SAP API连接详情:
{
"sap_api": {
"base_url": "http://192.168.1.129:8000/zmy_service",
"client": "100",
"username": "your_username",
"password": "your_password"
}
}如果不需要身份验证,可以保留username和password字段不变或完全删除它们。
使用方法
运行客户端
运行客户端示例:
python sap_client.py这将:
- 启动MCP服务器
- 通过stdio连接到服务器
- 执行示例SAP函数调用
- 显示结果
以HTTP模式运行服务器
以HTTP模式运行服务器:
python sap_server.py --transport http --host 127.0.0.1 --port 8000使用HTTP客户端测试
使用HTTP客户端进行测试:
python simple_test.py直接使用MCP工具
MCP服务器提供了一个名为call_sap_function的工具,具有以下参数:
function_name(字符串,必需):要调用的SAP函数名称parameters(对象,可选):SAP函数的参数
工具调用示例:
{
"function_name": "BAPI_GL_GETGLACCPERIODBALANCES",
"parameters": {
"COMPANYCODE": "C999",
"GLACCT": "0010010101",
"FISCALYEAR": "2023",
"CURRENCYTYPE": "10"
}
}工作原理
- MCP服务器(
sap_server.py)提供了一个名为call_sap_function的工具 - 调用时,该工具向您的SAP RESTful API发出HTTP POST请求
- API响应通过MCP协议返回给客户端
- 客户端(
sap_client.py)演示如何使用此工具进行示例调用
扩展实现
要添加更多SAP函数或修改行为:
- 修改
sap_server.py中的call_sap_tool函数 - 在
sap_client.py中添加更多示例 - 根据需要更新
config.json中的配置
错误处理
实现包含基本的错误处理:
- 网络错误
- JSON解析错误
- 缺少函数名称
错误以包含"error"键的JSON对象形式在响应中返回。
附加说明
如需获取SAP动态RFC代码,请联系:zhangxj1@foxmail.com
