SAP API加速器

一个MCP服务器,提供对SAP API目录的搜索、发现和探索功能,适用于AI助手和MCP工具。

  • by marksmith-II
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 marksmith-II/sap-api-accelerator-mcp

使用说明

SAP API加速器MCP

一个MCP(模型上下文协议)服务器,将策划的SAP业务加速器中心数据作为MCP工具显示出来。服务器直接与SAP的公共OData目录通信,使您可以轻松发现、搜索和探索SAP API和工件,而无需离开与MCP兼容的客户端。

此MCP服务器的用途

  • 为人工智能助手和MCP工具提供对SAP庞大的API目录的全面只读访问。
  • 提供强大的搜索和发现工具,用于查找SAP API、包和工件。
  • 通过过滤、分析和关系导航,实现对SAP API生态系统的智能探索。
  • 演示如何使用 mcp.server.fastmcp.FastMCP 助手,因此可以对其进行检查、测试,并与任何MCP主机一起发货。

先决条件

  • python 3.12或更新版本。
  • 紫外线 (推荐)或 pip +虚拟环境。
  • 出站HTTPS访问 https://api.sap.com/odata/1.0/catalog.svc.
  • (可选) Node.js 18+ 如果您想通过以下方式使用MCPJam检查器 npx.

要求和依赖关系

所有Python要求都在 pyproject.toml:

  • httpx –用于SAP API调用的异步HTTP客户端。
  • mcp[cli] –带来 FastMCP、CLI帮助程序和MCP协议类型。

以可编辑模式安装它们,以便立即获取本地代码更改:

cd sap-api-accelerator-mcp
uv pip install -e .
# or: python -m pip install -e .

可用的MCP工具

服务器提供 3个强大的工具 用于探索SAP的API目录:

核心发现工具

工具 参数 说明
list_sap_content_packages search_term (可选), max_results (默认值:100) 列出所有具有可选搜索筛选的内容包。通过OData筛选和结果限制进行了增强。
get_sap_package_info package_id 获取特定内容包的详细信息。
get_sap_artifact_details artifact_name, artifact_type (默认:API) 获取特定工件的完整详细信息,包括所有元数据。

所有工具都规范OData v2/v4响应,强制JSON输出($format=json),并包括防御性错误处理,以便报告故障,而不是使MCP会话崩溃。

如何运行MCP服务器

cd sap-api-accelerator-mcp
uv run accelerator.py
# or
python accelerator.py

脚本将这两个工具注册到 FastMCP 并启动MCP stdio服务器(默认传输)。任何兼容MCP的客户端现在都可以生成此进程并调用工具。

使用MCPJam检查员进行测试

MCPJam Inspector提供了一个浏览器UI,用于在不连接LLM的情况下锻炼MCP服务器。典型工作流程:

  1. 启动检查器

    npx @mcpjam/inspector@latest
    

    CLI打印一个URL,例如 http://localhost:6274。在浏览器中打开它。

  2. 添加SAP加速器服务器

    • 点击 添加服务器 → 自定义/stdio.
    • 命令: uv run accelerator.py (或 python accelerator.py).
    • 提供一个友好的名称(例如“SAP Accelerator”)并保存。状态应翻转为 连接.
  3. 练习工具

    • 打开 工具 选项卡,选择 list_sap_content_packages,然后单击 执行 以确认目录访问。
    • 挑选 get_sap_package_info,供应a TechnicalName 根据之前的响应,再次执行以查看包详细信息。
  4. 检查流量/排除故障

    • 使用 消息 查看原始MCP JSON交换。
    • 如果调用失败,MCPJam会显示stderr日志(服务器会打印它发出的每个SAP请求),以帮助诊断连接或参数问题。

用例示例

示例1:探索特定包

get_sap_package_info(package_id="SAPS4HANACloud")

获取特定软件包的详细信息。

示例2:获取详细的工件信息

get_sap_artifact_details(artifact_name="CE_PROJECTDEMANDCATEGORY_0001", artifact_type="API")

获取工件的完整细节。

提示和最佳实践

  • 集 max_results 适当地-默认值是保守的,以避免超时。增加全面搜索。
  • 筛选依据 state="ACTIVE" 排除已弃用的API,除非您专门在寻找它们。
  • 使用 get_sap_artifact_details 在找到有趣的工件以获得完整的元数据之后。
  • 组合工具 -从搜索开始,然后用细节工具深入挖掘。
  • 由于SAP端点是公共的,因此不需要API密钥,但服务器仍然发送自定义 User-Agent 因此可以监测速率限制。
  • 将此服务器与任何MCP主机(Anthropic Claude Desktop、MCP CLI、自定义LLM沙盒)配对,让助手浏览SAP内容。

工具优先级指南

从这些工具开始:

  1. list_sap_content_packages -发现可用套餐
  2. get_sap_package_info -套餐详情
  3. get_sap_artifact_details -详细的工件信息

性能注意事项

  • 大型结果集可能需要时间 max_results 限制响应
  • 对于复杂的查询,SAP API可能较慢-请耐心等待
  • 使用 $select 在查询(已实现)中减少有效载荷大小
  • 考虑对频繁访问的数据进行缓存