SAP发布对象服务器
  
为AI代理提供实时知识的服务器 ABAP Cloud/Clean Core发布了哪些SAP对象 --以及当它们不使用时,应该使用什么。
它直接插入 SAP云化存储库 (官方真相来源)并公开数据 两种方式:
| 访问模式 | 协议 | 用例 |
|---|---|---|
| MCP服务器 | 模型上下文协议 上 POST /mcp | 具有原生MCP支持的AI代理(Claude Desktop、Claude Code、Cline、Cursor……) |
| REST API | 简单 GET 端点位于 /api/* 返回JSON | LLM技能、自定义集成、脚本、CI管道——任何可以调用HTTP端点的东西 |
这两种模式都暴露了 完全相同的能力 (搜索、详细信息、继承者、合规性检查、统计)并共享相同的业务逻辑——MCP和REST之间没有功能差距。
问题
当您使用AI代理编写ABAP Cloud代码时,代理不知道哪些对象被发布、弃用或禁止。它将愉快地生成代码使用 MARA, CL_GUI_ALV_GRID,或 BSEG --所有这些都是 未释放的 ABAP Cloud中。
这个服务器解决了这个问题。问 *“MARA有空吗?”* 并且代理立即知道: 否--使用 I_PRODUCT 相反。
快速开始
选项1-MCP客户端(克劳德桌面、克劳德代码、客户端…)
将此添加到您的MCP客户端配置中:
{
"mcpServers": {
"sap-released-objects": {
"type": "url",
"url": "https://sap-released-objects-server-production.up.railway.app/mcp"
}
}
}无需安装,无需维护——你已经准备好了。
选项2-REST API(技能、脚本、集成)
直接调用托管的REST API。所有端点都是 GET,返回JSON,支持CORS。
# Search for purchase order objects
curl "https://sap-released-objects-server-production.up.railway.app/api/search?query=purchase+order"
# Get details for table MARA
curl "https://sap-released-objects-server-production.up.railway.app/api/object?object_type=TABL&object_name=MARA"
# Check Clean Core compliance
curl "https://sap-released-objects-server-production.up.railway.app/api/compliance?object_names=MARA,BSEG,I_PRODUCT"用作 法学硕士技能,请参阅 SKILL.md -它包含为LLM消费格式化的完整API参考(端点、参数、响应示例、解释指令)。
选项3——独立可执行文件(本地,无Node.js)
下载适用于您平台的可执行文件:
然后添加到您的MCP客户端配置中:
{
"mcpServers": {
"sap-released-objects": {
"type": "stdio",
"command": "/path/to/sap-released-objects-win.exe"
}
}
}特性
- 搜索SAP对象 --类、CDS视图、表、数据元素、BDEF等。
- 按清洁核心级别过滤 (A/B/C/D)——自2025年8月以来取代三层体系的新车型
- 寻找继任者 对于已弃用或未发布的对象
- 清洁堆芯合规性检查 对象列表(符合率)
- 统计 --按级别、类型和应用程序组件计数
- 智能搜索 --具有相关性排名的多标记评分(例如。
"purchase order"发现I_PURCHASEORDER) - 多系统支持 --S/4HANA云公共、BTP ABAP环境、私有云、本地
- 动态版本控制 --从SAP存储库中自动发现的PCE版本
运作原理
服务器从官方网站获取JSON文件 SAP云化存储库 在运行时并缓存它们 存储24小时不需要SAP系统连接——所有数据都来自SAP的公共GitHub存储库。
清洁核心层概念
自2025年8月以来,SAP用 清洁核心层概念:
| 级别 | 描述 | 数据源 | 升级安全 |
|---|---|---|---|
| A. | 发布API(ABAP云) | objectReleaseInfoLatest.json (S/4HANA云公共), objectReleaseInfo_BTPLatest.json (BTP), objectReleaseInfo_PCE*.json (PCE) | ✅ 升级安全 |
| B | 经典API | objectClassifications_SAP.json | ⚠️ 升级稳定 |
| C | 内部/未分类对象 | 未编目对象 | 🟡 可管理风险 |
| D | noAPI(不推荐) | 标记的对象 noAPI | 🔴 高风险 |
MCP工具
以下工具通过MCP协议在 POST /mcp:
sap_search_objects
使用高级过滤器搜索对象。支持精确的SAP对象名称(MARA, I_PURCHASEORDER)以及自然语言查询(purchase order, warehouse task, send email).使用多标记评分算法按相关性对结果进行排名。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
query | 字符串 | *(必填)* | 搜索词——确切名称或自然语言(例如。 I_PRODUCT, purchase order) |
system_type | enum | public_cloud | public_cloud, btp, private_cloud, on_premise |
clean_core_level | enum | A | 最大累积水平: A, B, C,或 D |
version | 字符串 | latest | PCE版本(例如。 2025, 2023_3).被忽略了 public_cloud 和 btp |
object_type | 字符串 | *(全部)* | TADIR滤光片(例如。 CLAS, DDLS, TABL) |
app_component | 字符串 | *(全部)* | 应用程序组件(例如。 MM-PUR, FI-GL) |
state | enum | *(全部)* | 按特定状态筛选 |
limit | 编号 | 25 | 每页结果(1–100) |
offset | 编号 | 0 | 分页偏移 |
sap_get_object_details
获取特定对象的完整详细信息,包括其Clean Core评估、发布状态和后续信息。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
object_type | 字符串 | *(必填)* | TADIR类型(例如。 TABL, CLAS, DDLS) |
object_name | 字符串 | *(必填)* | 对象名称(例如。 MARA, CL_GUI_ALV_GRID) |
system_type | enum | public_cloud | public_cloud, btp, private_cloud, on_premise |
sap_find_successor
查找已弃用或未发布对象的后续对象。ABAP云迁移必不可少。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
object_type | 字符串 | *(必填)* | 已弃用对象的TADIR类型 |
object_name | 字符串 | *(必填)* | 已弃用对象的名称 |
system_type | enum | public_cloud | 目标系统类型 |
sap_check_clean_core_compliance
检查对象列表的Clean Core合规性。返回个人评估和总体合规率。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
object_names | 字符串 | *(必填)* | 以逗号分隔的对象名称列表 |
system_type | enum | public_cloud | 目标系统类型 |
target_level | enum | A | 目标清洁核心水平 |
sap_list_versions
列出私有云和本地系统的所有可用S/4HANA PCE版本。版本是从SAP存储库中动态发现的。没有必需的参数。
sap_list_object_types
列出所有可用的TADIR对象类型,并按每个Clean Core级别计数。没有必需的参数。
sap_get_statistics
存储库的统计概述——总计数、按级别、按对象类型和按应用程序组件细分。没有必需的参数。
REST API
同样的功能也很简单 GET 端点位于 /api.所有端点都返回JSON并支持CORS。
基本URL: https://sap-released-objects-server-production.up.railway.app
| 端点 | MCP等效 | 必需参数 |
|---|---|---|
GET /api | -- | 自动文档:列出所有端点 |
GET /api/search | sap_search_objects | query |
GET /api/object | sap_get_object_details | object_type, object_name |
GET /api/successor | sap_find_successor | object_name |
GET /api/compliance | sap_check_clean_core_compliance | object_names |
GET /api/types | sap_list_object_types | — |
GET /api/statistics | sap_get_statistics | — |
GET /api/versions | sap_list_versions | — |
GET /health | -- | 健康检查 |
所有端点都接受可选 system_type, clean_core_level,以及 version 查询参数(与MCP工具的默认值相同)。
对于 完整的REST API参考 (参数、响应格式、示例、LLM指令),请参阅 SKILL.md.
系统类型
| 系统类型 | 描述 | 数据源 | 级别 | 版本 |
|---|---|---|---|---|
public_cloud | S/4HANA云公共版 | objectReleaseInfoLatest.json | 仅A | 否 |
btp | BTP ABAP环境/蒸汽朋克 | objectReleaseInfo_BTPLatest.json | 仅A | 否 |
private_cloud | S/4HANA云私人版 | objectReleaseInfo_PCE*.json | A–D | 是 |
on_premise | S/4HANA内部部署 | objectReleaseInfo_PCE*.json | A–D | 是 |
注:public_cloud和btp使用不同的数据集——BTP ABAP环境有一个较小的、单独的已发布API目录。使用btp在为SAP BTP ABAP环境(Steampunk)开发时。
用法示例
You: "Is table MARA available in ABAP Cloud?"
Agent: → calls sap_get_object_details(TABL, MARA, public_cloud)
→ "MARA is deprecated. Successor: I_PRODUCT (CDS view)"
You: "Find released objects related to purchase orders"
Agent: → calls sap_search_objects(query="purchase order")
→ Returns I_PURCHASEORDER, I_PURCHASEORDERITEM, etc. ranked by relevance
You: "Find all released CDS views for the MM-PUR module"
Agent: → calls sap_search_objects(query="I_", object_type="DDLS", app_component="MM-PUR")
→ Returns list of Level A CDS views
You: "My code uses BSEG, MARA, CL_GUI_ALV_GRID. Is it Clean Core?"
Agent: → calls sap_check_clean_core_compliance(object_names="BSEG,MARA,CL_GUI_ALV_GRID")
→ "Compliance rate: 0% — none of these objects are Level A"
You: "What's available for sending emails on BTP?"
Agent: → calls sap_search_objects(query="send email", system_type="btp")
→ Returns relevant BTP ABAP Environment APIs构建独立可执行文件
Build details (esbuild + pkg pipeline)
该项目使用 esbuild 用于捆绑和 @yao-pkg/pkg 用于打包成本机可执行文件。
管道: TypeScript → tsc → ESM JS → esbuild → single CJS bundle → pkg → native executable
# Bundle first (required before pkg)
npm run bundle
# Build for a specific platform
npm run pkg:win # → bin/sap-released-objects-win.exe
npm run pkg:linux # → bin/sap-released-objects-linux
npm run pkg:macos # → bin/sap-released-objects-macos
# Or all 3 at once
npm run pkg:all生成的可执行文件需要 没有Node.js 在目标机器上。
发布新版本
当推送版本标签时,GitHub Actions会自动构建可执行文件:
npm version patch # or minor / major
git push origin main --tagsGitHub Actions将在3个运行程序(Ubuntu、Windows、macOS)上构建
