loading…
Search for a command to run...
loading…
An enterprise-grade MCP server that enables AI agents to execute SAP RFC functions and read business data securely through the Model Context Protocol.
An enterprise-grade MCP server that enables AI agents to execute SAP RFC functions and read business data securely through the Model Context Protocol.
基于 Model Context Protocol (MCP) 的企业级 SAP RFC 连接器。本项目旨在为 AI 智能体(如 Claude Desktop, GPT-4, Cursor 等)提供安全、高效、上下文感知的 SAP 系统访问能力。通过标准化的 MCP 协议,Agent 可以像调用本地函数一样执行 SAP RFC 并检索业务数据。
DATA_BUFFER_EXCEEDED 错误,支持大规模数据的迭代安全读取。本服务器向 MCP 客户端暴露了以下工具集,涵盖了从系统发现到数据操作的全流程:
call_rfc_function: 动态调用任意 SAP RFC 函数,支持复杂嵌套结构的参数传递。rfc_system_info: 获取 SAP 系统版本、协议、内核、数据库类型等元数据。get_rfc_functions: 通过模糊匹配查询 SAP 系统中可用的远程调用函数。read_table: 具备自动溢出保护的表读取工具,能根据 RFC 512 字节限制自动选择字段。read_table_complete: 迭代读取模式,支持请求超过缓冲区限制的大量字段,自动分批处理。get_table_structure: 检索 SAP 表的详细定义,包括字段技术属性和多语言描述。test_table_access: 快速验证当前用户对特定表的读取权限及数据连通性。get_function_metadata: 获取函数的完整“说明书”,包括参数方向、类型、长度及多语言注释。search_rfc_functions: 针对函数名和描述进行全文检索,帮助 Agent 发现合适的接口。export_metadata_for_rag: 将 SAP 接口知识导出为 JSON,用于构建 Agent 的离线知识库。项目支持三种运行模式,满足不同场景下的集成需求:
SAPNWRFC_HOME 环境变量。git clone <repo_url>
cd sap-rfc-mcp-server
python -m venv .venv
source .venv/bin/activate # Windows 使用 .venv\Scripts\activate
pip install -e .
复制 .env.example 为 .env 并填写您的 SAP 连接参数及安全密钥:
# SAP 连接
SAP_ASHOST=192.168.1.100
SAP_SYSNR=00
SAP_CLIENT=100
SAP_USER=YOUR_USER
SAP_PASSWD=YOUR_PASSWD
# 安全密钥
MCP_MASTER_KEY=admin-secret-key-2026
服务器采用双层认证架构:
MCP_MASTER_KEY 访问 /auth/* 接口,执行 Token 颁发。/mcp/* 接口调用 SAP 功能。生成 Token 示例 (使用 Master Key):
POST /auth/token/generate
X-API-Key: admin-secret-key-2026
Body: {"agent_name": "Finance_Agent", "ttl_hours": 48}
sap_rfc_mcp_server/
├── auth.py # 动态 Token 管理与持久化
├── server.py # MCP 工具定义与处理核心逻辑
├── sap_client.py # 底层 pyrfc 连接管理与池化
├── rfc_table_reader.py # 增强型表数据安全读取逻辑
├── streamable_http_server.py # HTTP/SSE 传输层实现
├── logger.py # 身份感知的自动切分日志系统
└── metadata_manager.py # SAP 元数据分析与 RAG 优化
© 2026 SAP RFC MCP Server Team. Licensed under MIT.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"sap-rfc-mcp-server": {
"command": "npx",
"args": []
}
}
}