项目简介
'btp-sap-odata-to-mcp-server-optimized' 是一个先进的MCP(Model Context Protocol)服务器,旨在将复杂的SAP OData服务转化为LLM(大型语言模型)可轻松交互的上下文和功能。它通过集成AI能力,实现了自然语言到OData查询的智能转换、实时数据流分析以及业务流程洞察,为LLM应用提供了安全、可扩展的SAP上下文服务框架。
该项目在原版SAP BTP OData MCP服务器的基础上进行了增强,包含了企业级认证、智能工具路由、AI驱动的查询优化和实时分析功能,并已通过全面测试,可用于生产环境。
主要功能点
- 智能MCP工具: 提供了12个核心SAP、AI增强和实时分析工具,支持SAP OData服务的动态发现、CRUD操作。
- 自然语言处理: 将人类语言请求(如“查找本月所有高价值待处理发票”)自动转换为精确的OData查询。
- 智能工具路由: 根据用户意图自动选择和调度最合适的MCP工具及工作流。
- AI驱动的分析与优化: 提供智能数据分析、异常检测、趋势预测和查询性能优化。
- 实时数据流: 支持WebSocket实时数据流和动态KPI仪表板,实现实时业务智能。
- 企业级安全: 集成SAP IAS/XSUAA认证、会话管理、RBAC(基于角色的访问控制)和安全日志。
- 云原生部署: 针对SAP BTP Cloud Foundry环境进行了优化,支持自动伸缩、服务绑定和集中式日志。
安装步骤
-
克隆仓库:
git clone https://github.com/Raistlin82/btp-sap-odata-to-mcp-server-optimized cd btp-sap-odata-to-mcp-server-optimized -
安装依赖:
npm install -
配置环境变量: 复制示例配置文件 '.env.example' 到 '.env',并根据您的SAP IAS和服务器设置进行配置。
cp .env.example .env关键环境变量包括:
- 'SAP_IAS_URL': SAP Identity Authentication Service 的URL。
- 'SAP_IAS_CLIENT_ID': SAP IAS 客户端ID。
- 'SAP_IAS_CLIENT_SECRET': SAP IAS 客户端密钥。
- 'PORT': 服务器监听端口(默认为3000)。
- 'AUTH_PORT': 认证服务器端口(默认为3001)。
- 'AI_FEATURES_ENABLED': 设置为 'true' 启用AI增强功能。
-
构建项目:
npm run build -
本地运行(开发模式):
npm run dev服务器将在 'http://localhost:3000' 启动,认证服务在 'http://localhost:3001/auth'。
-
部署到SAP BTP Cloud Foundry:
cf push
服务器配置
MCP服务器支持Stdio和Streamable HTTP两种传输协议。MCP客户端需要以下配置信息来连接本服务器。
{ "server": { "name": "btp-sap-odata-to-mcp-server-optimized", "command": "node", "args": [ "dist/mcp-stdio.js" ], "description": "基于Model Context Protocol (MCP) 的SAP OData AI增强型服务器,提供智能SAP数据访问和分析能力。推荐使用HTTP/S协议进行生产环境部署,以获得会话管理和身份认证功能,但Stdio模式适用于本地或沙箱环境进行快速测试。" }, "connection": { "protocol": "stdio", "note": "对于生产环境,建议使用HTTP/S协议以利用其会话管理和身份认证功能。如果您在Cloud Foundry等环境中部署,请参考其部署URL配置HTTP/S协议连接。" } }
- Server Name: 'btp-sap-odata-to-mcp-server-optimized'
- Command: 'node' (Node.js 运行时)
- Args: 'dist/mcp-stdio.js' (启动MCP服务器的Stdio模式入口脚本)
- Protocol: 'stdio' (基于标准输入输出的通信协议)
- HTTP/S协议连接说明: 如果部署在HTTP/S环境(如SAP BTP Cloud Foundry),MCP客户端应使用HTTP/S协议连接到服务器的 '/mcp' 端点。例如,如果您的应用URL是 'https://your-app.cfapps.region.hana.ondemand.com',则连接URL为 'https://your-app.cfapps.region.hana.ondemand.com/mcp'。MCP客户端将需要通过HTTP请求头 'mcp-session-id' 进行会话管理。
基本使用方法
- 认证: 首次使用时,通过浏览器访问服务器的 '/auth/' 或 '/login' 页面,完成SAP IAS认证,获取Session ID。
- 在本地开发环境中,通常是 'http://localhost:3001/auth/' 或 'http://localhost:3000/login'。
- 认证成功后,您将获得一个Session ID,需要将其传递给MCP客户端。
- 连接MCP客户端: 配置您的MCP客户端(如Claude Desktop或自定义LLM应用),使其使用上述提供的服务器配置。
- 调用MCP工具: 使用LLM客户端调用服务器提供的MCP工具。推荐使用 'sap-smart-query' 作为统一入口点,它会智能路由您的请求。
- 示例1 (认证): 首次调用时,可能需要明确传递会话ID进行认证。
{ "tool_name": "check-sap-authentication", "parameters": { "session_id": "您的Session ID" } } - 示例2 (智能查询):
服务器将自动解析自然语言,并调用内部工具完成OData查询和数据分析。{ "tool_name": "sap-smart-query", "parameters": { "userRequest": "显示上个月所有待处理的销售订单,金额大于1000欧元" } } - 示例3 (数据分析):
{ "tool_name": "smart-data-analysis", "parameters": { "data": [ {"OrderID": "123", "Amount": 1500, "Status": "Pending"}, {"OrderID": "124", "Amount": 2000, "Status": "Completed"} ], "analysisType": "trend", "entityType": "SalesOrder" } }
- 示例1 (认证): 首次调用时,可能需要明确传递会话ID进行认证。
信息
分类
商业系统