Provides tools for calling SAP functions through a RESTful API, enabling interaction with SAP systems to execute business functions like BAPI_GL_GETGLACCPERIODBALANCES for retrieving financial data and other SAP operations.
SAP MCP Server and Client / SAP MCP服务器和客户端
English | 中文
English
This project provides an MCP (Model Context Protocol) server and client implementation for interacting with SAP systems via a RESTful API.
Project Structure
config.json: Configuration file for SAP API connectionsap_server.py: MCP server implementation with SAP function calling toolsap_client.py: MCP client demonstrating usage of the serverrequirements.txt: Python dependenciestest_mcp_client_final.py: HTTP-based MCP client testsimple_test.py: Simple HTTP test for the MCP server
Installation
Install the required dependencies (MCP SDK version 1.3.0 or higher):
pip install -r requirements.txt
Configuration
Update the config.json file with your SAP API connection details:
If you don't need authentication, you can leave the username and password fields as they are or remove them entirely.
Usage
Running the Client
To run the client example:
This will:
Start the MCP server
Connect to it via stdio
Execute example SAP function calls
Display the results
Running the Server in HTTP Mode
To run the server in HTTP mode:
Testing with HTTP Client
To test with the HTTP client:
Using the MCP Tool Directly
The MCP server provides a call_sap_function tool with the following parameters:
function_name(string, required): Name of the SAP function to callparameters(object, optional): Parameters for the SAP function
Example tool call:
How It Works
The MCP server (
sap_server.py) provides a tool calledcall_sap_functionWhen called, this tool makes an HTTP POST request to your SAP RESTful API
The API response is returned through the MCP protocol to the client
The client (
sap_client.py) demonstrates how to use this tool with example calls
Extending the Implementation
To add more SAP functions or modify the behavior:
Modify the
call_sap_toolfunction insap_server.pyAdd additional examples in
sap_client.pyUpdate the configuration in
config.jsonas needed
Error Handling
The implementation includes basic error handling for:
Network errors
JSON parsing errors
Missing function names
Errors are returned in the response as JSON objects with an "error" key.
Additional Notes
For SAP dynamic RFC code, please contact: zhangxj1@foxmail.com
Related MCP server: MCP-OpenAPI
中文
本项目提供了一个通过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连接详情:
如果不需要身份验证,可以保留username和password字段不变或完全删除它们。
使用方法
运行客户端
运行客户端示例:
这将:
启动MCP服务器
通过stdio连接到服务器
执行示例SAP函数调用
显示结果
以HTTP模式运行服务器
以HTTP模式运行服务器:
使用HTTP客户端测试
使用HTTP客户端进行测试:
直接使用MCP工具
MCP服务器提供了一个名为call_sap_function的工具,具有以下参数:
function_name(字符串,必需):要调用的SAP函数名称parameters(对象,可选):SAP函数的参数
工具调用示例:
工作原理
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