
SAP ADT REST API 的 CLI 和 MCP 服务器——搜索、读写 ABAP 源代码、运行测试、管理传输。没有 Eclipse,没有 RFC SDK,也没有 JVM。
概览
SAP ADT REST API 的 CLI 和 MCP 服务器——一个单一的二进制,使用与 Eclipse ADT 使用的相同 HTTP 端点。没有 Eclipse,没有 SAP NW RFC SDK,也没有 JVM。 - ABAP 对象、包、数据字典表、CDS 视图 - 带锁管理和传输集成的源代码 - — 命令行的 ABAP 单元和 ATC 质量检查 - — 创建、列出并释放传输请求 - 通过 JSON-RPC 向 AI 代理开放所有能力(MCP 2025-06-18,协商至 2024-11-05) 每个命令都接受机器可读输出的 --json。 读取一个数据字典表,已解析字段类型和校验表: 阅读带有内置语法高亮功能的ABAP源代码: 递归浏览一个包以枚举其包含的所有内容: 在 ADSO、复合提供商、DTP、转换和查询中搜索 BW 目录: 检查ADSO的字段结构,包括每个字段映射到的信息对象:
概述(AI 翻译)
SAP ADT REST API 的 CLI 和 MCP 服务器——一个单一的二进制,使用与 Eclipse ADT 使用的相同 HTTP 端点。没有 Eclipse,没有 SAP NW RFC SDK,也没有 JVM。
属于Datazoo ERPL家族。
它的作用
- 搜索和浏览 ABAP对象、包、数据字典表、CDS视图
- **带锁管理和传输集成的读写源代码
- 运行测试 — 命令行进行ABAP单元和ATC质量检查
- 管理传输 — 创建、列出并释放传输请求
- MCP 服务器 — 通过 JSON-RPC 向 AI 代理开放所有能力(MCP 2025-06-18,协商至2024-11-05)
每个命令都接受机器可读输出 --json。
行动中
按名称模式查找ABAP对象:
读取一个数据字典表,已解析字段类型和校验表:
阅读带有内置语法高亮功能的ABAP源代码:
递归浏览一个包以枚举其包含的所有内容:
BW/4HANA 模特
在 ADSO、复合提供商、DTP、转换和查询中搜索 BW 目录:
检查ADSO的字段结构,包括每个字段映射到的信息对象:
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
erpl-adt
CLI and MCP server for the SAP ADT REST API — a single binary that talks the same HTTP endpoints Eclipse ADT uses. No Eclipse, no SAP NW RFC SDK, no JVM.
Part of the Datazoo ERPL family.
What it does
- Search and browse ABAP objects, packages, data dictionary tables, CDS views
- Read and write source code with lock management and transport integration
- Run tests — ABAP Unit and ATC quality checks from the command line
- Manage transports — create, list, and release transport requests
- MCP server — expose all capabilities to AI agents over JSON-RPC (MCP 2025-06-18, negotiating down to 2024-11-05)
Every command accepts --json for machine-readable output.
In action
Find ABAP objects by name pattern:
Read a data-dictionary table, with field types and check tables resolved:
Read ABAP source code with built-in syntax highlighting:
Browse a package recursively to enumerate everything it contains:
BW/4HANA Modeling
Search the BW catalog across ADSOs, composite providers, DTPs, transformations, and queries:
Inspect an ADSO’s field structure, complete with the InfoObject each field maps to:
Export an InfoProvider’s dataflow as Mermaid — pipe it straight into a renderer or commit it next to the model:
Quick examples
# Save connection credentials (prompts for password)
erpl-adt login --host sap.example.com --port 44300 --https --user DEVELOPER
# Search for classes matching a pattern
erpl-adt search ZCL_MY_* --type CLAS --max 20
# Connect in a specific logon language (descriptions come back translated)
erpl-adt --language DE search T000 --max 1 # -> description "Mandanten"
# Read object metadata and source code
erpl-adt object read /sap/bc/adt/oo/classes/zcl_my_class
erpl-adt source read /sap/bc/adt/oo/classes/zcl_my_class/source/main
# Write source code (auto-locks, writes, unlocks)
erpl-adt source write /sap/bc/adt/oo/classes/zcl_my_class/source/main --file impl.abap
# Write and activate in one step
erpl-adt source write /sap/bc/adt/oo/classes/zcl_my_class/source/main --file impl.abap --activate
# Activate an object by name
erpl-adt activate ZCL_MY_CLASS
# Run unit tests and ATC checks (by name or URI)
erpl-adt test ZCL_MY_CLASS
erpl-adt check ZCL_MY_CLASS --variant DEFAULT
# Create a transport request and release it
erpl-adt transport create --desc "Feature XYZ" --package ZPACKAGE
erpl-adt transport release NPLK900042
# Browse packages and data dictionary
erpl-adt package tree ZPACKAGE --type CLAS
安装
uvx erpl-adt --help配置
{
"mcpServers": {
"erpl-adt": {
"command": "erpl-adt",
"args": ["mcp", "--host", "sap.example.com", "--port", "44300", "--https"],
"env": {
"SAP_PASSWORD": "your_password"
}
}
}
}