mcpField
A
abap-mcp

abap-mcp

本地服务
github.com/palimkarakshay开发工具24 天前更新

关于 abap-mcp

abap-mcp 是一款本地优先的 MCP 服务,为编码 Agent 提供 SAP ABAP 与 RAP 源码的确定性工具。它支持检查、修复、Cloud 就绪度评估、迁移规划和代码脚手架,无需 SAP 系统或凭据。

主要功能

  1. 01检查 ABAP 并解释规则发现
  2. 02确定性地修复源码
  3. 03评估 ABAP Cloud 就绪度并规划迁移
  4. 04检查已发布 API 和对象依赖
  5. 05生成 RAP 业务对象与 ABAP Unit 测试脚手架
  6. 06比较代码变更并概览类结构

适用场景

  1. 01在代码到达 SAP 系统前审查 ABAP 变更
  2. 02评定仓库的 ABAP Cloud 就绪度
  3. 03制定分阶段的 Cloud 迁移待办
  4. 04生成经过校验的 RAP 业务对象脚手架

MCP 相关

向 MCP 客户端提供 ABAP 分析、代码生成工具和引导式工作流提示词。默认通过 stdio 在本地运行,也提供可选的受保护 HTTP 版本。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"palimkarakshay-abap": {
"command": "npx",
"args": [
"-y",
"abap-mcp"
]
}
}
}
启动命令npx -y abap-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmabap-mcp0.12.7

工具

18

收录的工具列表 · 更新于 4 天前

参数类型必填说明
filesarray是要分析的源文件,每次调用最多 32 个,每个最多 100k 个字符。
focusenum否精选规则包筛选条件:仅报告带有此 abaplint 标签的规则——"Performance" 用于性能调优检查,"Security" 用于安全检查,"Styleguide" 用于遵循 Clean ABAP 风格。解析器错误始终会报告。使用预设 "syntax-only" 时将忽略此项。可与 rules 结合,重新调整规则包中的个别规则。Performance | Security | Styleguide
rulesobject否合并到预设(以及焦点筛选条件)上的 abaplint 规则覆盖,例如 { "line_length": { "length": 120 }, "7bit_ascii": false }——可在此配置组织的最佳实践规则包。
presetenum否"style"(默认):abaplint 默认规则,但不含全程序语义检查——适用于独立代码片段。"full":所有默认规则,要求提供所有被引用的对象。"syntax-only":仅报告解析器错误。style | full | syntax-only
rapCheckboolean否如果调用包含 .bdef.asbdef 或 .srvd.srvdsrv 文件,也运行 abap-mcp 自带的 RAP 行为/服务定义检查器,并将其发现合并到带命名空间的 "rap/RAP026" 样式规则键下。默认值为 true——abaplint 对这些文件类型完全不会返回结果。设为 false 可仅输出 abaplint 结果(例如,用于比较不同版本发现数量的 CI)。
abapVersionenum否用于解析的 ABAP 语言版本。"v758"(默认)是当前本地部署版本;"Cloud" 表示 ABAP Cloud / Steampunk。Cloud | v750 | v751 | v752 | v753 | v754 | v755 | v756 | v757 | v758

详细介绍

abap-mcp

Install in VS Code Install in VS Code Insiders npm

让你的 AI 编码 Agent 成为 SAP ABAP 和 RAP 专家顾问——默认在本地运行。无需 SAP 系统和凭据,一条命令即可安装。

abap-mcp 是一个 Model Context Protocol 服务,可为任何 AI 编码 Agent——Claude Code、GitHub Copilot、Cursor、Codex、Windsurf——提供真正的 ABAP 感知能力,构建于 abaplint(开源 ABAP 解析器/linter)之上。Agent 负责推理;abap-mcp 提供真实依据:确定性的解析器、客观评分,以及经过验证、能让 AI 保持准确的生成器。无论 Agent 在哪里工作,它都能处理 ABAP 源码——Git 检出目录、abapGit 导出、代码评审或 CI——无需等到代码进入系统。

  • 刚接触 ABAP 或 RAP? 你的 Agent 会成为在旁指导的资深顾问:编写时按 Clean ABAP 检查每段代码片段(lint_abap),解释每项发现及其理由和示例(explain_abap_rule),并通过 scaffold_rap_bo 从规范且经过自验证的 RAP 业务对象开始,而不是面对空白编辑器。
  • 资深 ABAP 顾问? 把它用作评估和任务引擎:让 Agent 检查代码仓库,即可获得带有 A–D 技术债评级的 ABAP Cloud 就绪度评分分类报告(check_cloud_readiness)、包含工作量和退出标准的分阶段迁移待办清单(plan_cloud_migration)、每次重构客观的前后对比结论(compare_abap)、已发布 API 的替代方案(check_released_api),以及在迁移过程中坚守标准的 CI 门禁。

默认的 stdio 版本完全在本地运行:分析引擎不会发起任何网络请求,也不会读取任何用户文件。源码以文本形式传入,返回结构化发现。已发布 API 清单和 abaplint 规则数据随软件包附带。可选的受保护 Streamable HTTP 版本可让 ChatGPT 网页版等远程客户端使用相同工具;在此模式下,源码文本会发送到你托管的机器。请参阅隐私和数据处理。

为什么要开发它

其他 ABAP MCP 服务要么是连接到实时 SAP 系统的桥接工具(ADT/RFC——需要凭据、系统和信任),要么是文档搜索工具。但 AI 编码 Agent 大部分时间都在处理文件——编辑 abapGit 代码库、评审差异、生成代码——远在代码进入系统之前。这个服务在这一层为 Agent 补上了缺失的反馈循环:

  • “这段 ABAP 能解析吗?代码整洁吗?性能如何?” → lint_abap(加上聚焦规则包)
  • “自动修复这段代码——大小写、过时语法。” → fix_abap(确定性修复,由解析器保证)
  • “这份经典报表离 ABAP Cloud 还有多远?给它评级。” → check_cloud_readiness(A–D)
  • “规划迁移——我们该先处理什么?” → plan_cloud_migration(分阶段待办清单)
  • “这个类没有测试——为我搭一个测试框架。” → scaffold_abap_unit(默认生成失败的测试)
  • “对象之间有哪些依赖?应该先迁移哪个对象?” → get_object_dependencies(加上 Mermaid)
  • “这次重构让代码变好了还是变差了?” → compare_abap
  • “MARA 是已发布 API 吗?应该用什么替代?” → check_released_api
  • “为我创建一个正确的 RAP 业务对象。” → scaffold_rap_bo
  • “这个 4,000 行的类里有什么?画出来。” → get_abap_outline(加上 Mermaid)

安装 — 60 秒

唯一要求是 Node.js 22+。无需 SAP 系统、凭据或 API 密钥。刚接触 AI 工具(或 ABAP)? 请按照从零开始的指南 docs/INSTALL.md 操作,或者让安装程序帮你完成:

npx abap-mcp setup     # detects VS Code / Claude Code and registers the server; guides Eclipse

否则,请选择你的客户端:

Codex CLI · Codex IDE 扩展 · ChatGPT 桌面版 — 只需一条命令,即可在同一 Codex 主机上配置这三者:

codex mcp add abap-mcp -- npx -y abap-mcp

重启 ChatGPT 桌面版或 IDE 扩展,然后使用 /mcp 确认 abap-mcp 已连接。在 ChatGPT 桌面版中,你也可以打开 Settings → MCP servers → Add server,选择 STDIO,并输入命令 npx 和参数 -y abap-mcp。

Codex 插件(MCP 服务 + review/mentor/migration 技能)

codex plugin marketplace add palimkarakshay/abap-mcp
codex plugin add abap-mcp@abap-mcp

ChatGPT 网页版无法启动本地 npx 进程。它需要已部署的 HTTPS /mcp 端点或安全的开发隧道。本仓库提供 HTTP 入口和加固控制,但不运营公共服务。请参阅 OpenAI 设置与自托管指南。

Claude Code

claude mcp add abap-mcp -- npx -y abap-mcp

VS Code(Copilot Agent 模式) — 点击上方的 Install in VS Code 徽章即可安装,或运行一条命令:

code --add-mcp '{"name":"abap-mcp","command":"npx","args":["-y","abap-mcp"]}'

如需供整个团队使用,请将 examples/vscode/mcp.json 提交为 abapGit 仓库中的 .vscode/mcp.json — 每个打开该文件夹的人都会自动看到此服务。

Eclipse(通过 GitHub Copilot 插件) — Eclipse 中的 Copilot Chat 支持 MCP:打开 Copilot 菜单 → Edit preferences → MCP,然后添加相同的 "abap-mcp" 服务配置块(命令为 npx,参数为 ["-y", "abap-mcp"])。操作步骤和前置条件: GitHub 的 MCP 文档,Eclipse 选项卡。 目前,未安装 Copilot 的标准 ADT 没有 MCP 客户端。

Cursor · Windsurf · 任意 MCP 客户端 — 将以下内容添加到其 mcp.json / .mcp.json(项目级或全局):

{
  "mcpServers": {
    "abap-mcp": { "command": "npx", "args": ["-y", "abap-mcp"] }
  }
}

Claude Desktop — 打开 Settings → Developer → Edit Config,将相同的 mcpServers 配置块添加到 claude_desktop_config.json,然后重启。

从克隆仓库开始(参与贡献 / 开发):

npm install && npm run build
claude mcp add abap-mcp -- node /path/to/abap-mcp/dist/cli.js

已连接?向你的 Agent 提问 “列出你的 ABAP 工具” — 默认应会看到十八个工具,从 lint_abap 到 check_rap_behavior,另外还有启用选项的 run_abap_unit(需设置 ABAP_MCP_ENABLE_RUN=1)。

首先可以尝试的问题
  • “这是我的功能规格说明 — 根据它构建 RAP 实现。”(或运行 /mcp__abap-mcp__abap-from-spec)
  • “根据 ABAP Cloud 检查这个类的代码规范,并像对新手一样解释最严重的问题。”
  • “这个仓库对云环境的适配程度如何?给它打分,并分阶段制定迁移计划。”
  • “MARA 是已发布的 API 吗?我应该用什么替代?”
  • “为表 zbooking 上的实体 Booking 搭建一个 RAP BO,并启用草稿。”
  • “我重构了 zcl_pricing — 比较新旧版本:它真的变好了吗?”
内置引导式工作流(MCP 提示词)

顾问的实战指南以 4 个 MCP 提示词和 4 个 Codex 插件技能的形式提供。在 Claude Code 中,提示词会显示为斜杠命令(/mcp__abap-mcp__…);支持提示词的客户端 会原生列出这些提示词,而 Codex 插件则会发现对应的技能:

提示词功能
abap-from-spec终结空白页困境。 提供功能/技术规格说明——或用日常语言描述需求——Agent 就会构建可运行且通过验证的现代 ABAP/RAP:规格说明 → 包含 ASSUMPTION 登记表的构建计划 → 确定性的 scaffold_rap_bo 基础框架 → 行为逻辑 → 每个文件都通过 fix_abap + lint_abap 检查,直到无问题 → 填充单元测试 → 按激活顺序交付。未经 lint 检查的内容绝不会交付。
abap-review完整的资深顾问代码审查:lint → 分类处理 → 解释每项发现背后的原因 → 最小化修复 → 通过 compare_abap 证明返工效果。可选的 focus(Performance / Security / Styleguide)。
abap-mentor在本次会话的其余时间里开启贴身指导模式:每段代码片段都会在后台进行 lint 和就绪度检查,将发现转化为通俗易懂的指导,新对象从经过验证的脚手架开始。
abap-migration-plan由 plan_cloud_migration 驱动、可直接交付客户的分阶段迁移计划——当前状态、包含 S/M/L 工作量和退出标准的阶段、单独列出的已发布 API 工作——然后提议执行第 1 阶段。

CLI — 同一引擎,无需 AI

每个工具也都有对应的子命令,因此在没有 MCP 客户端的终端和 CI 环境中也能使用:

npx abap-mcp lint src/                          # lint files or whole directories
npx abap-mcp fix src/ --write                   # apply abaplint's deterministic auto-fixes in place
npx abap-mcp lint src/ --focus Performance      # themed pass: Performance | Security | Styleguide
npx abap-mcp lint src/ --rules-file org.json    # your org's abaplint rule pack, same engine
npx abap-mcp readiness src/ --fail-below 80     # repo-level ABAP Cloud readiness, scored + graded A–D
npx abap-mcp plan src/                          # phased migration backlog: work items, S/M/L efforts, exit criteria
npx abap-mcp unittest src/ --out tests/         # failing-by-default ABAP Unit skeletons for untested classes
npx abap-mcp deps src/ --mermaid                # dependency graph (+released-API flags) as a Mermaid diagram
npx abap-mcp compare old/ new/                  # rework verdict: findings resolved/introduced, grade movement
npx abap-mcp scaffold --entity Travel --table ztravel --key travel_id --out ./out
npx abap-mcp outline src/zcl_monster.clas.abap  # navigate big objects (--mermaid for a diagram)
npx abap-mcp released MARA I_Product --edition btp  # released-API status + successor, per edition (s4hc|btp|pce)
npx abap-mcp explain exit_or_check              # rule rationale
npx abap-mcp release --since 2605 rap           # bundled ABAP Cloud/RAP release-delta knowledge (dated, sourced)
npx abap-mcp knowledge "clean core level C"     # search the bundled SAP knowledge base (Clean Core, ATC, SAP-AI)
npx abap-mcp aisdk --scenario ZDEMO_AI --interaction string --out ./out  # scaffold a Generative AI Hub call
npx abap-mcp agent-rules --target Cloud --paired sap-adt-mcp --run       # print the AGENTS.md rules block
npx abap-mcp rapcheck src/ --release 2508       # check RAP behavior/service definitions (BDEF/SRVD); exit 1 on errors
npx abap-mcp unittest --run src/                # EXECUTE ABAP Unit tests offline (open-abap kernel, no DB/CDS/EML); exit 1 on failure

目录会递归遍历(遵循 abapGit 命名方式)、自动分批处理,而 readiness 会将各批次合并为一份带评分和分类的仓库报告。退出代码适用于 CI (发现错误问题 / 未达到阈值时为 1)。

Agent 式工作流、配方与 CI

docs/examples/abap2xlsx-assessment.md — 展示所有这些工具 在一个真实且知名的开源仓库上能产出什么(100 个文件,3 条命令,无需系统)。 docs/COOKBOOK.md — 实用配方:修复直至无问题的循环、 无需传输请求的 PR 审查、全仓库迁移分类、CI 门禁、各类角色的用例。 examples/claude-code/ — 开箱即用的 Agent 式工作流,将这些 工具变成贴身顾问:abap-code-reviewer 子 Agent、abap-cloud-migrator 扫描循环(以就绪度评分作为循环条件)、abap-tech-debt-assessor(评级为 A–D 的客户交付物)、每仓库的 .mcp.json,以及适用于 abapGit 仓库的 GitHub Actions 质量门禁。

Agent 式循环

Agent 在任何内容进入系统之前都可以运行的完整离线循环:

  1. 搭建脚手架 — 使用 scaffold_rap_bo、scaffold_abap_unit 或 scaffold_abap_ai_sdk,从经过 验证的起点开始,而不是面对空白编辑器。
  2. 先修复,再 lint — 先运行 fix_abap(确定性的机械处理),再运行 lint_abap,直到 问题归零或有意识地豁免。
  3. 运行 — run_abap_unit(通过 ABAP_MCP_ENABLE_RUN=1 选择启用,或始终通过 abap-mcp unittest --run 启用)执行 ABAP Unit 测试,并将实际通过/失败结果反馈到循环中——TH Köln 的 ABAP 基准测试(arXiv 2601.15188)测得,仅此一项就在多轮反馈中将 Claude Opus 4.5 的任务成功率从 31.6% 提升到 78.7%。
  4. 就绪度 — 使用 check_cloud_readiness / plan_cloud_migration 为结果评级并估算 剩余工作;compare_abap 可证明返工没有造成回归。
  5. 交接 — 配合 SAP 官方 ADT MCP 服务或 abap-adt-mcp 完成系统内部分 (写入、激活、ATC、实际运行 ABAP Unit)——参见相关项目。

工具

工具功能
lint_abap对 ABAP/CDS/BDEF 源码运行 abaplint 静态分析 → 输出结构化发现项,并附规则文档链接。预设:style(默认,适用于代码片段)、full、syntax-only;支持为组织规则包覆盖单条规则;可使用 focus 视角(Performance / Security / Styleguide)进行主题审查。
check_cloud_readiness双重解析差异(经典基线与 Cloud):将当前有效但在 ABAP Cloud 中不合法的语句归类为阻碍项(dynpro、列表输出、原生 SQL 等),并给出透明评分,以及按密度分档的 A–D 技术债务等级;基线解析已失败的代码会单独报告,不计入迁移工作量。此外,还会展示单独的、带日期的已发布 API 交叉检查(releasedApiFindings):在源码中发现的对未发布经典表的直接访问和弃用 API 用法,并提供 CDS 后继项提示——仅供参考,不计入评分。
fix_abap应用并验证 abaplint 自带的可自动修正项:关键字大小写、具有明确现代替代写法的过时语句(MOVE → = 等)。每轮批处理后都会重新解析;可能导致解析失败的批次会被丢弃——输出由解析器保证,绝不猜测。无法自动修正的发现项会作为 remaining 返回,供需要判断的返工处理(使用 compare_abap 验证)。
plan_cloud_migration在就绪度检查之上提供任务管理层:按咨询实践顺序,将每项阻碍安排到分阶段待办事项中——先修复基线,再处理机械式快速改进、核心返工、UI 重新架构,最后是单独的、标注快照日期的已发布 API 阶段。每项工作都附带 S/M/L 工作量等级、修复方案和示例位置;每个阶段都包含目标和可重新检查的退出标准。结果确定性:相同的就绪度数据,只是重新编排——不引入新的判断。
compare_abap对返工进行前后对比:已解决与新增的 lint 发现项(按内容匹配,因此代码移动不会产生干扰)、阻碍项/评分/等级变化,以及新增或删除的类/方法/FORM。是重构和 AI 重写的客观评判工具。
check_released_api在 SAP 按版本随附的 Cloudification 快照中查询对象(表、CDS 视图、函数模块、类等)(edition: s4hc | btp | pce,默认 s4hc)→ 为每个对象给出 released / deprecated / not-released 状态;还会提供 SAP 官方公布的后继项、常见经典表的精选 CDS 后继项回退信息,以及 classicAPI/noAPI/internalAPI 分类。离线提供就绪度检查中的已发布 API 部分。
scaffold_rap_bo生成规范的 RAP 托管 BO 技术栈(根视图、strict(2) 行为定义 + 可选草稿、行为类 + 本地处理程序、投影视图、元数据扩展、OData V4 服务定义),以及建议的表 DDL、激活顺序和后续步骤。
scaffold_abap_unit为每个全局类生成本地 ABAP Unit 测试类:包含 setup,并为每个公共方法生成一个测试骨架;每个骨架都会以显眼的 TODO 失败,避免生成但为空的测试冒充覆盖率。生成结果会与被测类一起通过 abaplint 回译验证。
get_object_dependencies根据提供的源码构建依赖关系图——解析器级别的表/函数引用(标注已发布 API 状态和 CDS 后继项)、继承/实现结构,以及如实标注的文本交叉引用。可选输出 Mermaid 流程图。与 plan_cloud_migration 配套,用于确定处理顺序。
list_abap_rules浏览 abaplint 的约 180 条规则(按文本或标签筛选)。
explain_abap_rule深入讲解一条规则——设计依据(通常参考 Clean ABAP)、示例和文档 URL。
format_abap离线美化打印器(关键字大小写 + 缩进)。
get_abap_outline提取源码中的类/方法/可见性/接口/FORM——无需通读即可了解大型对象。可选输出 Mermaid classDiagram,直观呈现结构。
explain_abap_releaseABAP Cloud / CDS / RAP / EML / ATC 版本差异的随附知识库,经过整理并标注日期(2026-09-10),涵盖 2502–2608 版本系列和 ABAP Platform 2025——每行都是带 SAP 来源 URL 引用的原始摘要,并标注 confirmed / reported 置信度;可按 sinceRelease、product、kind 筛选。
search_sap_knowledge对同一知识包以及 Clean Core 治理内容(A–D 级、C0–C3 版本契约、ATC 的实际术语)和 7 张 SAP AI 决策卡(SAP-ABAP-1、Generative AI Hub、ABAP AI SDK、SAP 官方 ADT MCP 服务等)进行全文搜索——每条命中结果都附带来源和置信度。
scaffold_abap_ai_sdk生成已验证的 ABAP 类,通过 ABAP AI SDK(ISLM)调用 Generative AI Hub:支持 7 种交互形式(字符串、消息、提示词模板、函数调用、结构化输出、流式处理、编排);使用 abap-mcp 自带的 IF_AIC_* 存根通过 abaplint 回译验证(validated: "abaplint-syntax");并返回其自身无法执行的 ISLM 手动设置步骤。
get_abap_agent_rules为 ABAP 仓库输出 AGENTS.md / CLAUDE.md 规则块:提交前 lint、就绪度门禁、已发布 API 规范、优先使用脚手架、离线单元测试循环,以及与在线 ADT MCP 服务的分工。
check_rap_behavior使用 abap-mcp 自带的 BDL/SDL 解析器和 48 条规则集检查 RAP 行为定义(.bdef.asbdef)及 CDS 服务定义(.srvd.srvdsrv)(40 条行为规则,包括结构层级、7 条服务定义规则、1 条版本门禁)——abaplint 不会深度解析这两种文件类型,因此这是在没有系统时唯一可用的静态反馈。涵盖草稿/etag/锁定/授权/编号一致性规则、严格模式要求、操作/运算/验证/确定/副作用的一致性、针对基础 BDEF 的投影 use,以及针对同一次调用中传入的 CDS 实体的服务 expose;提供 abapRelease 时,还会对晚于该版本的结构进行门禁检查。采用双层设计:标点错误属于错误;语法不认识的结构则会明确说明,并标记为 info。
run_abap_unit (可选启用 — ABAP_MCP_ENABLE_RUN=1)离线执行 ABAP Unit 测试:通过 @abaplint/transpiler 转译为 JavaScript,使用随附的 open-abap 内核,并在沙箱子进程中运行(服务端管理的临时目录、严格超时、文件访问限定于该目录;不会使用网络,但不会阻止网络访问)——每个方法输出一行通过/失败/错误/跳过结果,并附上如实的静态 lint 结果。仅能证明纯逻辑的正确性——不涉及 DB/CDS/EML/AMDP/授权。在 CLI 中始终可用:abap-mcp unittest --run。

知识库与资源

软件包附带一套有日期标注且附有引用来源的 SAP 知识包(整理于 2026-09-10):包含 100 条 ABAP Cloud / RAP 发布差异记录(2502–2608 版本系列 + ABAP Platform 2025,并修正了 2502 之前的时间线,避免 Agent 将已确立的功能说成 2025–26 年的新功能)、55 条 Clean Core 条目(级别 A–D、发布契约 C0–C3、真实的 ATC 术语),以及 7 张 SAP AI 决策卡(SAP-ABAP-1、Generative AI Hub 编排、ABAP AI SDK、Joule for Developers、SAP 官方 ADT MCP 服务,等等)。每条记录都是 abap-mcp 基于引用来源撰写的原创摘要,并标注 confirmed / reported 置信度——绝不复制 SAP 原文(参见 docs/DESIGN.md 中的许可边界)。

可通过工具(explain_abap_release、search_sap_knowledge;CLI release / knowledge)访问,也可通过 MCP 资源直接附加到对话中,供主机使用:abap-mcp://knowledge/manifest(所有捆绑文件的来源信息)、.../release-deltas、.../clean-core、.../sap-ai(完整文件),以及 .../release/{id}、.../clean-core/{id}、.../sap-ai/{id}(单张卡片,每张均以 application/json 和 text/markdown 格式返回)。

说明:本工具 不是什么

  • 不是 ATC。 客观就绪度评分仍属于语言层面:ABAP Cloud 语句已移除。已发布 API 的覆盖情况现在是部分覆盖、离线且按版本版次区分:check_released_api 和就绪度报告中的 releasedApiFindings 反映 SAP 发布的 Cloudification 列表截至随附快照日期的内容——每个 SAP 版本版次各一份(s4hc Public Edition、btp、pce Private Edition/本地部署;edition 参数默认值为 s4hc)——覆盖源代码中引用的表和函数模块,而非所有 API,且时效性仅与快照相同。目标系统自身的 ATC 检查(Public Edition 使用 "Usage of Released APIs (Cloudification Repository)";Private Edition 和本地部署使用 "Usage of APIs (Cloudification Repository)",通过 ABAP_CLEAN_CORE_DEVELOPMENT/ABAP_CLEAN_CORE_READINESS 等检查变体执行)仍具有权威性;应将“列表中不存在”的结果视为“截至快照时尚未发布”,而非确凿证明。就绪度报告中的 grade 是我们自己的阻断项密度分级(gradeMeaning: "blocker-density"),并非 SAP 的 Clean Core Level A–D——请查看报告中的 cleanCoreVocabulary,了解真正的 ATC 术语(src/data/atc-vocabulary.json)。
  • 脚手架验证分级进行。 生成的类和 CDS 视图会先在 Cloud 级别通过 abaplint 往返验证,然后再返回(生成器和检查器共用一个解析器)。行为定义和服务定义不在 abaplint 的检查范围内,因此会改用 abap-mcp 自有的 RAP 检查器;当检查结果中没有错误或警告级别的问题时,会标记为 validated: "rap-checker";元数据扩展没有任何检查器,因此仍标记为 "template"。每个生成的文件都会标记为 validated: "abaplint" | "rap-checker" | "template",而 ADT 激活仍是最终裁决标准。
  • RAP 检查器使用的是我们自己的语法,而非 SAP 的解析器。 check_rap_behavior(以及合并到 lint_abap 中的 rap/… 问题)使用本项目根据 SAP 发布的 RAP BDL 功能表、ABAP 关键字文档和 102 个 Apache-2.0 许可的 SAP 示例源码文件编写的分词器和语法来读取 BDEF/SRVD。每份报告都会列出 grammarVersion、rulesVersion 和 scopeNote,说明这些信息能够证明和不能证明的内容:它无法查看 DDIC 表、行为池类或 CDS 字段类型,无法识别的结构会报告为信息,绝不会报告为错误。源自低于 SAP 文档级别的规则最高只标记为 warning,并会在消息中注明其来源。所有已发布的规则均记录在 docs/RAP-RULES.md 中。
  • run_abap_unit 不是 SAP 内核。 它会将代码转译为 JavaScript,并在 open-abap 内核上执行(选择启用:ABAP_MCP_ENABLE_RUN=1;通过 CLI 的 unittest --run 时始终启用)——没有数据库(任何 ABAP SQL 都会中止方法)、没有 CDS、没有 EML/RAP 运行时、没有 AMDP、没有权限检查、没有锁、没有 ATC,也不会激活。运行通过只能证明纯逻辑的表现,绝不代表系统行为得到验证;无法执行的结构会在 unsupported 中返回,绝不会被悄然判定为通过。
  • scaffold_abap_ai_sdk 依据的是 abap-mcp 自带的存根,而非 SAP 的真实 API。 生成的类会使用本项目根据 SAP 文档编写的 IF_AIC_*/CL_AIC_* 声明,通过捆绑的 abaplint 进行往返验证;这些声明并非来自 SAP 源码。类会标记为 validated: "abaplint-syntax",表示 ABAP 语法可解析,并不表示其签名与 SAP 实际的 ABAP AI SDK 完全匹配。它所依赖的 ISLM 手动设置(SAP_COM_0A69、INTS/INTM)会列在 setupSteps 中,不会自动执行。
  • 按设计仅处理输入文本。 分析引擎不会遍历用户文件系统,也不会访问外部网络;它只会解析你明确传入的字符串。使用 stdio 时,这些字符串由本地子进程处理。使用 Streamable HTTP 时,字符串会传输到端点运营方,因此请使用 HTTPS、身份验证和文档说明的隐私控制。如需处理整个目录,请使用下方的 CLI、在 CI 中使用 abaplint,或使用 mcp-kit wrap-abaplint 配方。

开发

npm install
npm run check     # typecheck + tests + build + routing eval — the CI gate
node dist/cli.js  # stdio MCP server
npm run start:http # guarded Streamable HTTP on http://127.0.0.1:3000/mcp
npx @modelcontextprotocol/inspector --cli node dist/cli.js --method tools/list

工具和提示词描述会通过 CI 评分(评分规则会检查名称是否以动词开头、何时使用、非目标、参数说明和示例演练——遵循 mcp-kit 的规范)。

设计

决策日志——为什么选择离线模式、为什么选择 abaplint、为什么采用双解析就绪度差异比较、为什么脚手架会验证自身输出,以及哪些内容被有意排除——见 docs/DESIGN.md。

在线配套项目:abap-mcp-genai

一个独立的可选二进制文件——abap-mcp-genai,默认服务绝不会导入它——使用你自己的 SAP AI Core 租户封装 SAP Generative AI Hub 编排服务:explain_with_sap_abap_1(请 SAP 自己针对 ABAP 调优的模型解释一个类、方法或代码片段)和 list_genai_hub_models。 使用时,你的 ABAP 源代码会离开这台机器——它会发送到 SAP 基础设施,受你所在组织自己的 SAP AI Core 合同约束,绝不会发送给 abap-mcp 的作者。启用前请完整阅读 docs/GENAI.md。

相关项目

  • Furkan Coşgun 的 abap-kit(MIT)——一个 CLI,可搭建完整的离线 ABAP 项目(abapGit 布局、abaplint + 转译器配置、open-abap 运行时),还可通过 abaplint 转译器在本地执行 ABAP Unit 测试。两者在设计上互为补充:abap-kit 构建并运行项目测试框架;abap-mcp 则在其中为你的 AI Agent 提供分析、规划和脚手架工具——abap-kit create + abap-mcp setup 即可构成完整的离线 ABAP+AI 工作区。其转译并运行流水线是 run_abap_unit(v0.11)如今在本服务中原生提供该功能的先行预览,基于同一套 abaplint 转译器 + open-abap-core 基础。
  • SAP 官方 ADT MCP 服务(GA,随 ADT 提供,适用于 Eclipse 和 VS Code;8 个工具集共 20 个工具,其中 18 个无需许可证)——可在真实系统中编写、激活和测试 ABAP(abap_creation-create_object、 abap_activate_objects、abap_run_unit_tests、abap_run_atc、……),但自身不具备离线 lint、就绪度评级或已发布 API 交叉检查功能。
  • Willian Saez 的 abap-adt-mcp(MIT)——社区版的同类项目,基于同一 ADT REST API 提供 173 个在线工具,采用相同的实时系统信任模型。
  • 配合使用。 abap-mcp 会在离线环境中于前后进行验证:在代码写入系统前使用 lint_abap / check_cloud_readiness / compare_abap,然后再次检查 SAP 官方服务或 abap-adt-mcp 刚刚写入、激活或运行 ATC 的内容。两个在线服务都不需要 abap-mcp,abap-mcp 也不需要凭据——请参阅 docs/COOKBOOK.md 中的操作指南,以及 get_abap_agent_rules 中可粘贴到仓库 AGENTS.md 的规则文本。

致谢

  • Lars Hvam 的 abaplint——本项目所有工具背后的解析器和规则引擎(MIT)。
  • SAP/abap-atc-cr-cv-s4hc——SAP 官方 ABAP Cloud 化资源库(对象发布列表),Apache-2.0。随附的已发布 API 快照(src/data/released-apis.json,每周发布时刷新一次——工具输出包含其 snapshotDate)是对该数据的精简转换,注明出处并依据 Apache-2.0 重新分发;流水线详见 docs/DESIGN.md 和 scripts/build-released-api-index.mjs。
  • mcp-kit——本服务遵循的生产级 MCP 模式(类型化工具规格、传输规范、描述 lint)。

MIT © Akshay Palimkar。本项目与 SAP SE 无关联,也未获得其认可。“SAP”、“ABAP”和“RAP”是 SAP SE 的商标;这是一个面向相关开发者的独立开源工具。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。