SAP RFC MCP Server
基于 Model Context Protocol (MCP) 的企业级 SAP RFC 连接器。本项目旨在为 AI 智能体(如 Claude Desktop, GPT-4, Cursor 等)提供安全、高效、上下文感知的 SAP 系统访问能力。通过标准化的 MCP 协议,Agent 可以像调用本地函数一样执行 SAP RFC 并检索业务数据。
🌟 项目亮点
- 企业级安全:支持 Master Key 管理架构,具备动态令牌(Dynamic Tokens)生成、有效期管理及一键撤销功能。
- 全链路追踪:身份感知的日志系统,每条日志均包含客户端 IP 和 Agent 身份,支持每日凌晨自动分割。
- 智能表读取:内置数据缓冲区保护机制,自动处理
DATA_BUFFER_EXCEEDED错误,支持大规模数据的迭代安全读取。 - AI 优化元数据:提供详尽的函数接口定义、参数描述,并支持导出 RAG(检索增强生成)友好格式的知识库。
- 高可用会话:支持智能会话复用,Agent 无需手动管理 Session ID,系统自动基于 Token 恢复活跃会话。
🚀 核心能力 (Tools)
本服务器向 MCP 客户端暴露了以下工具集,涵盖了从系统发现到数据操作的全流程:
1. 核心 RFC 交互
call_rfc_function: 动态调用任意 SAP RFC 函数,支持复杂嵌套结构的参数传递。rfc_system_info: 获取 SAP 系统版本、协议、内核、数据库类型等元数据。get_rfc_functions: 通过模糊匹配查询 SAP 系统中可用的远程调用函数。
2. 安全数据读取
read_table: 具备自动溢出保护的表读取工具,能根据 RFC 512 字节限制自动选择字段。read_table_complete: 迭代读取模式,支持请求超过缓冲区限制的大量字段,自动分批处理。get_table_structure: 检索 SAP 表的详细定义,包括字段技术属性和多语言描述。test_table_access: 快速验证当前用户对特定表的读取权限及数据连通性。
3. 元数据管理
get_function_metadata: 获取函数的完整“说明书”,包括参数方向、类型、长度及多语言注释。search_rfc_functions: 针对函数名和描述进行全文检索,帮助 Agent 发现合适的接口。export_metadata_for_rag: 将 SAP 接口知识导出为 JSON,用于构建 Agent 的离线知识库。
� 运行模式
项目支持三种运行模式,满足不同场景下的集成需求:
- HTTP 模式 (默认):基于 FastAPI 提供的 Streamable HTTP 传输,支持流式 (SSE) 响应,适用于远程 Agent 访问。
- STDIO 模式:通过标准输入输出通信,适用于 Claude Desktop 等本地安装的 MCP 客户端。
- 双模式 (Dual):同时开启 HTTP 和 STDIO,兼顾本地调试与远程服务。
📦 快速部署
1. 环境要求
- Python: 3.9 或更高版本。
- SAP NW RFC SDK: 必须安装 SAP 官方 SDK,并配置
SAPNWRFC_HOME环境变量。
2. 安装
git clone <repo_url>
cd sap-rfc-mcp-server
python -m venv .venv
source .venv/bin/activate # Windows 使用 .venv\Scripts\activate
pip install -e .
3. 配置
复制 .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
� 身份验证指南
服务器采用双层认证架构:
- 管理层 (Master):使用
MCP_MASTER_KEY访问/auth/*接口,执行 Token 颁发。 - 业务层 (Agent):使用生成的动态 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 优化
📖 更多文档
- QUICKSTART.md:5 分钟快速上手指南。
- MODES_GUIDE.md:运行模式与配置详解。
- DEPLOY.md:生产环境 Systemd 与 Docker 部署。
© 2026 SAP RFC MCP Server Team. Licensed under MIT.