Skip to main content
Glama
Sambit-Kumar-2001

SAP AI Assistant MCP Gateway

SAP AI Assistant --- MCP Gateway

版本: 1.0.0
状态: 初始 MVP / 稳定
平台: SAP Business Technology Platform (BTP)
运行时: Cloud Foundry / Node.js

1. 概述

SAP AI Assistant 是一个 AI 驱动的界面,用于通过自然语言与 SAP BTP 目标(destinations)和连接的 OData 服务交互。它结合了 SAP BTP Destination Service、Model Context Protocol (MCP)、OData V2/V4、LangChain、Groq、Node.js、Cloud Foundry 以及基于浏览器的聊天 UI。

用户选择一个已配置的目标(destination),并询问如 Show me the first 5 products 的问题。AI 代理使用 MCP 工具来发现和查询所选 OData 服务,并返回自然语言答案。

2. 架构

                    SAP BTP
                       |
              +--------v--------+
              | Destination     |
              | Service         |
              +--------+--------+
                       |
              +--------v--------+
              | SAP AI Assistant|
              | MCP Gateway     |
              |                 |
              | Destination Mgmt|
              | OData Discovery |
              | OData Query     |
              | MCP Server      |
              | AI Agent        |
              +--------+--------+
                       |
              +--------v--------+
              |    Groq LLM     |
              | llama-3.3-70b   |
              +--------+--------+
                       |
                       v
                  Browser UI

3. 核心功能

  • SAP BTP Destination Service 集成

  • 动态目标选择

  • 目标同步

  • 目标查找

  • MCP 服务器和 MCP 客户端

  • OData 元数据发现

  • 支持 OData V2 和 V4

  • 自然语言 OData 查询

  • LangChain 工具调用代理

  • Groq LLM 集成

  • 用户友好的聊天响应

  • Cloud Foundry 部署

  • 健康检查端点

  • 信息和版本对话框

4. MCP 工具


工具 用途


list_destinations 列出已同步的目标

get_destination 检索目标详情

sync_destinations 从 SAP BTP 同步目标

discover_odata 发现 OData 元数据和实体集

query_odata 对所选目标执行 OData 查询

5. 目标流

目标名称不会硬编码到 AI 代理中。客户端随问题一起发送所选目标:

{
  "message": "Show me the first 5 products",
  "destination": "NORTHWIND_V4"
}

后端将两个值都传递给代理:

UI -> /ai/chat -> askAgent({ question, destination }) -> MCP -> selected destination -> OData service

这允许使用 S4_PRODS4_TESTARIBASUCCESSFACTORS 或客户特定的目标,而无需更改代理代码。

6. HTTP 端点

健康检查

GET /health

示例响应:

{ "status": "UP" }

列出目标

GET /destinations

目标管理

GET /destinationsom/destinations

获取目标

GET /destination/:name

OData 发现

GET /odata/:destination/discover

AI 聊天

POST /ai/chat
Content-Type: application/json

示例请求:

{
  "message": "Show me the first 5 products",
  "destination": "NORTHWIND_V4"
}

示例响应:

{
  "success": true,
  "question": "Show me the first 5 products",
  "destination": "NORTHWIND_V4",
  "answer": "The first 5 products are..."
}

UI 显示 answer,而不是向普通用户暴露原始 MCP/OData JSON。

7. AI 代理流程

  1. 接收用户问题和所选目标。

  2. 连接到 MCP 服务器。

  3. 检索可用的 MCP 工具。

  4. 将工具绑定到 LLM。

  5. 让 LLM 选择所需的工具。

  6. 执行 MCP 工具。

  7. 将工具结果返回给 LLM。

  8. 生成自然语言答案。

Question
   |
   v
  LLM
   |
   +--> discover_odata
   |
   +--> query_odata
   |
   v
Tool Result
   |
   v
  LLM
   |
   v
Final Answer

8. 环境变量

GROQ_API_KEY

AI 代理需要此变量。请在 Cloud Foundry 中配置它,而不是将其提交到源代码控制:

cf set-env sap-mcp-gateway GROQ_API_KEY "<your-groq-api-key>"
cf restage sap-mcp-gateway

MCP_SERVER_URL

定义 MCP 端点。本地默认值:

http://localhost:8080/mcp

对于 Cloud Foundry,请根据实际情况配置已部署的 MCP 端点。

9. 部署

cf login -sso
cf target -o <organization> -s <space>
cf push sap-mcp-gateway
cf app sap-mcp-gateway
cf logs sap-mcp-gateway --recent

配置 Groq 密钥并重新暂存:

cf set-env sap-mcp-gateway GROQ_API_KEY "<your-key>"
cf restage sap-mcp-gateway

10. 示例开发目标

NORTHWIND_V2

Name:           NORTHWIND_V2
Type:           HTTP
URL:            https://services.odata.org/v2/northwind/northwind.svc/
Proxy Type:     Internet
Authentication: NoAuthentication

NORTHWIND_V4

Name:           NORTHWIND_V4
Type:           HTTP
URL:            https://services.odata.org/v4/northwind/northwind.svc/
Proxy Type:     Internet
Authentication: NoAuthentication

这些是演示目标。生产系统应使用适当的 SAP/客户目标和身份验证。

11. 安全

版本 1 专注于 MCP 和目标集成基础。在企业生产使用之前,请审查或实施:

  • XSUAA 身份验证

  • 基于角色的访问控制

  • 目标级授权

  • 在需要时传递用户身份

  • 安全处理密钥

  • 审计日志

  • 速率限制

  • 输入验证

  • OData 查询限制

  • 结果限制

  • 敏感数据保护

  • 生产监控

永远不要将 API 密钥提交到 Git。

12. 已知的 v1 限制

AI 令牌使用

当前代理可以执行多次 LLM/工具迭代,并可能在会话中累积元数据和工具结果。因此,大型元数据响应会增加令牌消耗。

代理路由

当前实现让 LLM 决定调用哪些 MCP 工具。未来版本可以为常见操作添加确定性路由,以减少不必要的调用。

身份验证

企业身份验证和授权计划在后续阶段实施。

13. 版本 1.0 范围

v1.0 包含:

  • Cloud Foundry 部署

  • 健康检查端点

  • Destination Service 集成

  • 目标同步

  • 动态目标选择

  • MCP 服务器

  • MCP 客户端

  • MCP 工具发现

  • 目标工具

  • OData 发现

  • OData V2 支持

  • OData V4 支持

  • OData 查询

  • Groq 集成

  • LangChain 代理

  • AI 聊天端点

  • 自然语言 UI

  • 用户友好的响应呈现

  • 信息对话框

  • 版本对话框

  • 初始技术文档

14. 路线图

v1.1 --- AI 优化

  • 减少不必要的 LLM 迭代

  • 减少发送给 LLM 的元数据

  • 限制查询结果

  • 优化工具结果处理

  • 改进错误恢复和延迟

  • 在适当的地方添加确定性路由

v1.2 --- 安全

  • XSUAA

  • 用户身份验证

  • RBAC

  • 目标授权

  • 身份传播

  • 审计日志

v1.3 --- 企业 OData

  • $select

  • $filter

  • $orderby

  • $expand

  • $top

  • $skip

  • 分页

  • 结果摘要

v2.0 --- SAP 企业 MCP 平台

潜在集成包括 S/4HANA、SuccessFactors、Ariba、SAP HANA Cloud、Integration Suite、SAP Build Process Automation 和 SAP AI 功能。

15. 架构原则

目标无关

客户特定的目标名称不应嵌入应用程序逻辑。

工具驱动

AI 代理通过 MCP 工具与 SAP 系统交互。

配置优于代码

特定于环境的目标和凭据应留在应用程序源代码之外。

用户友好的输出

不应向普通用户暴露原始 API 和 MCP JSON。

可扩展

应能在不重新设计整个应用程序的情况下添加新的 MCP 工具。

16. 发布信息

项目: SAP AI Assistant / MCP Gateway
版本: 1.0.0
状态: 初始 MVP / 稳定
平台: SAP BTP
运行时: Node.js / Cloud Foundry

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Official Microsoft MCP Server to query Microsoft Entra data using natural language

  • An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.

  • MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sambit-Kumar-2001/SAP-AI-Assistant-MCP-Gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server