Token导航 LogoToken导航

MCP Server · 运维云端

MCP Abap Adt API

一个基于MCP协议的服务,用于连接ABAP系统和管理ABAP对象、处理传输请求及代码分析,提升ABAP开发效率。

stdio官方级别未说明来源级核验工具 14@smithery/cli
TypeScriptClaude代码管理Claude DesktopCline

快速开始

作者 / 组织
Natuvion-GmbH
提供方
Natuvion-GmbH
运行时
Node.js

工具数量

14

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Abap Adt API 属于运维云端类 MCP Server,公开资料标注 14 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Cline,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

运维云端

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

npx -y @smithery/cli install @mario-andreschak/mcp-abap-abap-adt-api --client claude

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 14 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

免责声明:此服务器仍处于实验状态!小心使用!

ABAP-ADT-API MCP-服务器

描述

MCP服务器 mcp-abap-abap-adt-api 是一个模型上下文协议(MCP)服务器,旨在促进ABAP系统和MCP客户端之间的无缝通信。它是一个包装 abap-adt-api 并提供了一套用于管理ABAP对象、处理传输请求、执行代码分析等的工具和资源,提高了ABAP开发工作流的效率和有效性。

特性

  • 认证:使用ABAP系统进行安全身份验证 login 工具。
  • 对象管理:无缝创建、读取、更新和删除ABAP对象。
  • 运输搬运:使用以下工具管理运输请求 createTransport 和 transportInfo.
  • 代码分析:执行语法检查并检索代码完成建议。
  • 可扩展性:根据需要使用其他工具和资源轻松扩展服务器。
  • 会话管理:使用处理会话缓存和终止 dropSession 和 logout.

安装

通过Smithery安装

通过自动安装ABAP-ADT-API MCP-Server for Claude Desktop 铁匠铺:

npx -y @smithery/cli install @mario-andreschak/mcp-abap-abap-adt-api --client claude

先决条件

  • Node.js:确保您已安装Node.js。您可以从以下网址下载 这里.
  • ABAP系统访问:访问ABAP系统的凭据和URL。

步骤

  1. 克隆存储库
   git clone https://github.com/mario-andreschak/mcp-abap-abap-adt-api.git
   cd mcp-abap-abap-adt-api
  1. 安装依赖项
   npm install
  1. 配置环境变量

一 .env.example 文件在根目录中提供,作为所需环境变量的模板。要设置环境,请执行以下操作:

a.复制 .env.example 文件并将其重命名为 .env:

   cp .env.example .env

b.打开 .env 将占位符值归档并替换为实际的SAP连接详细信息:

   SAP_URL=https://your-sap-server.com:44300
   SAP_USER=YOUR_SAP_USERNAME
   SAP_PASSWORD=YOUR_SAP_PASSWORD
   SAP_CLIENT=YOUR_SAP_CLIENT
   SAP_LANGUAGE=YOUR_SAP_LANGUAGE

注意:SAP_CLIENT和SAP_LANGUAGE变量是可选的,但建议使用。

如果您使用自签名证书,还可以设置:

   NODE_TLS_REJECT_UNAUTHORIZED="0"

重要提示:切勿承诺 .env 文件到版本控制。它已经包含在 .gitignore 以防止意外犯罪。

  1. 构建项目
   npm run build
  1. 运行服务器
   npm run start

(或者将MCP服务器集成到VSCode中)

用法

服务器运行后,您可以使用支持模型上下文协议的MCP客户端或工具(例如。 克莱恩).为了将MCP服务器与Cline集成,请使用以下MCP配置:

    "mcp-abap-abap-adt-api": {
      "command": "node",
      "args": [
        "PATH_TO_YOUR/mcp-abap-abap-adt-api/dist/index.js"
      ],
      "disabled": true,
      "autoApprove": [
      ]
    },

客户指令

使用此自定义说明向您的模型解释该工具:

## mcp-abap-abap-adt-api Server

This server provides tools for interacting with an SAP system via ADT (ABAP Development Tools) APIs. It allows you to retrieve information about ABAP objects, modify source code, and manage transports.

**Key Tools and Usage:**

*   **`searchObject`:** Finds ABAP objects based on a query string (e.g., class name).
    *   `query`: (string, required) The search term.
    *   Returns the object's URI.  Example: `/sap/bc/adt/oo/classes/zcl_invoice_xml_gen_model`

*   **`transportInfo`:** Retrieves transport information for a given object.
    *   `objSourceUrl`: (string, required) The object's URI (obtained from `searchObject`).
    *   Returns transport details, including the transport request number (`TRKORR` or `transportInfo.LOCKS.HEADER.TRKORR` in the JSON response).

*   **`lock`:** Locks an ABAP object for editing.
    *   `objectUrl`: (string, required) The object's URI.
    *   Returns a `lockHandle`, which is required for subsequent modifications.

*   **`unLock`:** Unlocks a previously locked ABAP object.
    *   `objectUrl`: (string, required) The object's URI.
    *   `lockHandle`: (string, required) The lock handle obtained from the `lock` operation.

*   **`setObjectSource`:** Modifies the source code of an ABAP object.
    *   `objectSourceUrl`: (string, required) The object's URI *with the suffix `/source/main`*.  Example: `/sap/bc/adt/oo/classes/zcl_invoice_xml_gen_model/source/main`
    *   `lockHandle`: (string, required) The lock handle obtained from the `lock` operation.
    *   `source`: (string, required) The complete, modified ABAP source code.
    *   `transport`: (string, optional) The transport request number.

*   **`syntaxCheckCode`:** Performs a syntax check on a given ABAP source code.
    *   `code`: (string, required) The ABAP source code to check.
    *   `url`: (string, optional) The URL of the object.
    *   `mainUrl`: (string, optional) The main URL.
    *   `mainProgram`: (string, optional) The main program.
    *   `version`: (string, optional) The version.
    *   Returns syntax check results, including any errors.

*   **`activate`:** Activates an ABAP object. (See notes below on activation/unlocking.)
    *    `object`: The object to be activated.

*   **`getObjectSource`:** Retrieves the source code of an ABAP object.
    *   `objectSourceUrl`: (string, required) The object's URI *with the suffix `/source/main`*.

**Workflow for Modifying ABAP Code:**

1.  **Find the object URI:** Use `searchObject`.
2.  **Read the original source code:** Use `getObjectSource` (with the `/source/main` suffix).
3.  **Clone and Modify the source code locally:** (e.g., `write_to_file` for creating a local copy, and using `read_file`, `replace_in_file` for modifying this local copy).
4.  **Get transport information:** Use `transportInfo`.
5.  **Lock the object:** Use `lock`.
6.  **Set the modified source code:** Use `setObjectSource` (with the `/source/main` suffix).
7.  **Perform a syntax check:** Use `syntaxCheckCode`.
8.  **Activate** the object, Use `activate`..
9.  **unLock the object:** Use `unLock`.

**Important Notes:**
*   **File Handling:** SAP is completly de-coupled from the local file system. Reading source code will only return the code as tool result - it has no effect on file. Files are not synchronized with SAP but merely a local copy for our reference. FYI: It's not strictly necessary for you to create local copies of source codes, as they have no effect on SAP, but it helps us track changes. 
*   **File Handling:** The local filenames you will use will not contain any paths, but only a filename! It's preferable to use a pattern like "[ObjectName].[ObjectType].abap". (e.g., SAPMV45A.prog.abap for a ABAP Program SAPMV45A, CL_IXML.clas.abap for a Class CL_IXML)
*   **URL Suffix:**  Remember to add `/source/main` to the object URI when using `setObjectSource` and `getObjectSource`.
*   **Transport Request:** Obtain the transport request number (e.g., from `transportInfo` or from the user) and include it in relevant operations.
*   **Lock Handle:**  The `lockHandle` obtained from the `lock` operation is crucial for `setObjectSource` and `unLock`. Ensure you are using a valid `lockHandle`. If a lock fails, you may need to re-acquire the lock. Locks can expire or be released by other users.
*   **Activation/Unlocking Order:** The exact order of `activate` and `unLock` operations might need clarification. Refer to the tool descriptions or ask the user. It appears `activate` can be used without unlocking first.
* **Error Handling:** The tools return JSON responses. Check for error messages within these responses.

## Efficient Database Access

SAP systems contain vast amounts of data.  It's crucial to write ABAP code that accesses the database efficiently to minimize performance impact and network traffic.  Avoid selecting entire tables or using broad `WHERE` clauses when you only need specific data.

*   **Use `WHERE` clauses:** Always use `WHERE` clauses in your `SELECT` statements to filter the data retrieved from the database.  Select only the specific rows you need.
*   **`UP TO 1 ROWS`:** If you only need a single record, use the `SELECT SINGLE` statement, if you can guarantee that you can provide ALL the key fields for the `SELECT SINGLE` statement. Otherwise, use the `SELECT` statement with the `UP TO 1 ROWS` addition. This tells the database to stop searching after finding the first matching record, improving performance. Example:

SELECT vgbel FROM vbrp WHERE vbeln = @me->lv_vbeln INTO @DATA(lv_vgbel) UP TO 1 ROWS. EXIT. " Exit any loop after this. ENDSELECT.

## Checking Table and Structure Definitions

When working with ABAP objects, you may encounter errors related to unknown field names or incorrect table usage.  You can use the following tools to inspect table and structure definitions:

*   **`GetTable`:** Use this tool to retrieve the structure of an ABAP Dictionary table, including its field names and data types. This is helpful for verifying the correct fields to use in your `SELECT` statements.
*    If you need to inspect an include structure, you may need to use `searchObject` to find the include and then use `GetTypeInfo` or `GetStructure`. You may get a 404 error and try again with `GetStructure`
*   **`GetStructure`:** Use this tool to retrieve the structure of an ABAP Dictionary structure, including its field names and data types. This is helpful for verifying the correct fields to use in your `SELECT` statements.
*    If you need to inspect an include structure, you may need to use `searchObject` to find the include and then use `GetTypeInfo` or `GetStructure`.

## SAP Change Safety Policy
The following rules always apply before any modifying or destructive action in the SAP system
(e.g., deleting, changing, creating objects, releasing transports, database modifications). Before executing the action: Clearly explain what you intend to do.  List all affected objects including their name and type. Specify everytime in which SAP system (SID) and in which client (e.g., 001) the action will be executed. Wait for my explicit confirmation before executing the action.
Additional rule: Never make assumptions about what might be intended. If something is unclear, ask for clarification first.

贡献

欢迎投稿!请按照以下步骤进行贡献:

  1. 分叉存储库
  1. 创建新分支
   git checkout -b feature/your-feature-name
  1. 提交您的更改
   git commit -m "Add some feature"
  1. 推到分支机构
   git push origin feature/your-feature-name
  1. 打开拉取请求

许可证

该项目根据 MIT许可证.

工具与能力

工具数量

14

资源数量

0

提示词数量

0

能力标签

ABAP开发TypeScript本地部署SAP集成代码管理传输处理语法检查

支持客户端

Claude DesktopClaudeCline

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 工具数量 14 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Cline,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Abap Adt API

MCP World · 本页

14stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Abap Adt API 怎么安装?

公开资料给出的安装命令是 npx -y @smithery/cli install @mario-andreschak/mcp-abap-abap-adt-api --client claude,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Abap Adt API 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

MCP Abap Adt API 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Abap Adt API 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

MCP Abap Adt API 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cline;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP