# @abapify/adt-mcp 中文文档

规范地址：https://npmcn.com/package/%40abapify/adt-mcp/

版本：0\.4\.34
npm 元数据更新时间：2026-11-02T23:20:30.499Z
中文译文更新时间：2026-11-06T16:05:36.272Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40abapify/adt-mcp
原文对照：https://npmcn.com/package/%40abapify/adt-mcp/?lang=original
项目主页：https://github.com/abapify/adt-cli/tree/main/packages/adt-mcp#readme
源码仓库：https://github.com/abapify/adt-cli

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.1 MB，16 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：18 个
- 首次发布：2026-04-20T21:13:22.291Z
- 最新版本发布：2026-11-02T23:20:30.174Z
- 近 30 天下载量：2782（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：29（近 12 个月 29 个）

## 中文简介

SAP ADT 操作的 MCP 服务器 – 将adt- cli 特性暴露为 MCP 工具

## 安装

```sh
npm install @abapify/adt-mcp
```

也可以使用：`pnpm add @abapify/adt-mcp`、`yarn add @abapify/adt-mcp`、`bun add @abapify/adt-mcp`

## README

# @abapify/adt-mcp (英语)

MCP(模式上下文协议)服务器将SAP ADT操作暴露为AI助手,IDE集成和自动化管道的结构化工具.

这个包裹船 **两次运输**数字 :

| 二进制 | 运输 | 国家模式 |
| --- | --- | --- |
| `adt-mcp` | stdio (JSON-RPC 过管道) | 无国籍者——接通电话. |
| `adt-mcp-http` | 可流取的 HTTP | 会话范围已缓存 `AdtClient`,锁,和更改. |

见 [`docs/deployment/mcp-http.md`](https://npmcn.com/package/docs/deployment/mcp-http.md) 用于完整的HTTP部署指南(Docker,Okta,多系统,故障排除). 其余的这个README专注于stdio.

## 快速启动( stdio)

```bash
# Run via npx (no install required)
npx @abapify/adt-mcp
```

### 在克洛德桌面中配置

添加为 `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)或者您的OS上的等同路径:

```json
{
  "mcpServers": {
    "adt": {
      "command": "npx",
      "args": ["@abapify/adt-mcp"]
    }
  }
}
```

### 配置 VS 代码( GitHub 副驾驶代理模式)

添加为 `.vscode/mcp.json` 在工作空间中,或到您的用户设置 `"mcp"`数字 :

```json
{
  "servers": {
    "adt": {
      "type": "stdio",
      "command": "npx",
      "args": ["@abapify/adt-mcp"]
    }
  }
}
```

### 在 Cursor / Windsurf 中配置

添加到您的 MCP 服务器列表 :

```json
{
  "mcpServers": {
    "adt": {
      "command": "npx",
      "args": ["@abapify/adt-mcp"]
    }
  }
}
```

* * *

## HTTP运输(自第一波起)

`adt-mcp-http` 是可流的 HTTP 输入点。 它的目标是共享/远程部署(Docker、Kubernetes、Kiro、团队).

最小运行 :

```bash
bunx nx build adt-mcp
node packages/adt-mcp/dist/bin/adt-mcp-http.mjs --port 3000 --auth-token "$(openssl rand -hex 32)"
```

最小烟雾测试:

```bash
TOKEN=<your token>
curl -sf http://127.0.0.1:3000/healthz
curl -H "Authorization: Bearer $TOKEN" \
     -H 'Content-Type: application/json' \
     -X POST http://127.0.0.1:3000/mcp \
     -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"demo","version":"0"}}}'
```

抓起来 `Mcp-Session-Id` 响应头,然后呼叫 `sap_connect`,你需要的工具, 最后 `sap_disconnect` ——或关闭运输自动触发清理.

**Auth 模式 :** `none` (dev/回转), `bearer` (共享秘密), `proxy` (信托) `x-forwarded-user` 从上游代理, `oauth` (OIDC JWT针对Okta / Entra ID / Cognitto的验证). 全旗 + env 矩阵 [`docs/deployment/mcp-http.md`](https://npmcn.com/package/docs/deployment/mcp-http.md#cli-reference)。 。 。 .

### 会话生命周期工具

仅在HTTP运输中可用 :

| 工具 | 目的 |
| --- | --- |
| `sap_connect` | 每一次MCP会话进行SAP安全会话握手. 接受内置证书或 a `systemId` 已解决 `SAP_SYSTEMS_JSON` 编号 : `SAP_SYSTEMS_FILE`。 。 。 . |
| `sap_disconnect` | 释放锁,DELETE SAP安全会话,并放下缓存客户端. |

### (自第3波起)交易变更

Bundle 多个 ADT 写入单个原子单位:

| 工具 | 目的 |
| --- | --- |
| `changeset_begin` | 打开与当前 MCP 会话绑定的交易单位工作( 一次一个) . |
| `changeset_add` | 阶段一个对象写入——获得一个锁并PUT提供源. 德弗斯启动. |
| `changeset_commit` | 批量活化单个调用中每个已上演的对象,再放出所有锁. |
| `changeset_rollback` | 释放每个被扣的锁 并标记回滚的更改器。 源 PUT 不返回( SAP 没有交易抛弃) . |

见 [`docs/deployment/mcp-http.md#transactional-changesets`](https://npmcn.com/package/docs/deployment/mcp-http.md#transactional-changesets) 是一个实例.

* * *

## 连接参数

每个工具都需要这些连接参数(通过每次呼叫,从未存储) :

| 参数 | 类型 | 需求 | 说明 |
| --- | --- | --- | --- |
| `baseUrl` | 字符串 | ✅ | SAP系统基础URL,例如. `https://my-system.example.com:8000` |
| `client` | 字符串 | —— 说 | SAP客户号,例如:. `100` |
| `username` | 字符串 | —— 说 | 基本认证的用户名 |
| `password` | 字符串 | —— 说 | 基本认证的密码 |

> **安全说明:** 证书按请求直接转交SAP系统。 MCP服务器没有状态,并且坚持没有证书.

* * *

## 工具参考

### 发现系统( S)

#### `discovery`

在SAP系统中发现可用的ADT服务. 用于在使用其他工具之前检查系统支持的终点.

**参数:** 仅连接

**回返情况:** JSON对象具有可用的服务收藏及其链接.

* * *

#### `system_info`

获取SAP系统和/或会话信息.

**参数:**

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `scope` | `"session"` | `"system"` | `"both"` | `"both"` | 获取什么信息 |

**回返情况:**

```json
{
  "session": { "user": "DEVELOPER", "client": "100", "language": "EN", ... },
  "system": { "systemId": "DEV", "release": "757", ... }
}
```

* * *

### 对象仓库

#### `search_objects`

在仓库中搜索 ABAP 对象 。 支持通配符.

**参数:**

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `query` | 字符串 | ✅ | 搜索名词等. `ZCL_*` 或者说 `MY_CLASS` |
| `maxResults` | 编号 | `50` | 最大结果数 |

**回返情况:**

```json
{
  "count": 3,
  "objects": [
    { "name": "ZCL_MY_CLASS", "type": "CLAS/OC", "uri": "/sap/bc/adt/oo/classes/zcl_my_class", ... }
  ]
}
```

* * *

#### `get_object`

获取特定ABAP对象的名称细节 。 进行精确匹配搜索,如果找不到精确匹配,则返回对象元数据加上类似对象列表.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `objectName` | 字符串 | 要查找的 ABAP 对象名称 |

**回返情况:**

```json
{ "found": true, "object": { "name": "ZCL_MY_CLASS", "type": "CLAS/OC", "uri": "...", ... } }
```

或,未找到时:

```json
{ "found": false, "message": "Object 'FOO' not found", "similar": [...] }
```

* * *

### 源代码

#### `list_source_versions`

列出不可移动的 ADT 源版元数据和运输出处 一个对象的源组件。 结果是只使用元数据;它从未嵌入 ABAP来源.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `objectName` | 字符串 | ABAP 对象名称 |
| `objectType` | 字符串 | 对象类型( E)`PROG`, (中文(简体) ), `CLAS`, (中文(简体) ), `INTF`, (...) (中文(简体) ) |
| `component` | 绳子? | 精确组件 ID 如 `implementations` |

#### `get_source_version`

明确读取一个不可变源 URI 返回 `list_source_versions` 或者说 `cts_transport_source_manifest`输出范围 以 `maxBytes` (1 MiB 默认, 4 MiB 硬盖) 并失败而非截取.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `uri` | 字符串 | 服务器关系不可改变 `/sap/bc/adt/...` URI 资源 |
| `maxBytes` | 号码? | UTF-8 响应限制 |

#### `cts_transport_source_manifest`

构建一个仅包含元数据、 组件- 角精确度的指令列表 非空运列表。 每个叶子都报告它的变化类型,精确度, 具体请求/任务来源,已知的不可改变基准/标题参考文献, 以及无法证实完全隔离时的打字诊断.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `transports` | 字符串 \[\] | 订购的请求/任务标识符 |
| `selector` | 对象? | 可选 `objFunc`, (中文(简体) ), `pgmid`,以及 `type` 过滤器 |
| `concurrency` | 号码? | 受约束元数据/食用货币(最多32个) |

#### `get_source`

为程序、类、接口或函数组获取ABAP源代码。 支持版本感知读取,类包括,方法级读取,并用regex grep来进行有符号效率的源探索.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `objectName` | 字符串 | ABAP 对象名称 |
| `objectType` | 绳子? | 对象类型提示( E)`PROG`, (中文(简体) ), `CLAS`, (中文(简体) ), `INTF`。在提供搜索回路时跳过. |
| `version` | 埃努姆吗? | `active` (默认, 上次激活) 或 `inactive` (未激活的草稿). |
| `include` | 绳子? | 对于 `CLAS`:来源包括(`main`, (中文(简体) ), `definitions`, (中文(简体) ), `implementations`, (中文(简体) ), `testclasses`, (中文(简体) ), `macros`, (中文(简体) ), `text_symbols`, (中文(简体) ), `localtypes`) (中文(简体) ). |
| `method` | 绳子? | 对于 `CLAS`: 要读取的方法名称, 或 `*` 以列出所有方法. |
| `grep` | 绳子? | Regex 模式; 返回与上下文匹配的源行而不是完整源行 。 对于 `CLAS` 源,每个匹配都附加了自有方法/类/包含的注释. |
| `maxBytes` | 号码? | 以字节表示的最大UTF-8响应大小(默认为一米B,硬盖为二米B). |
| `format` | 埃努姆吗? | `raw` (违约)或 `structured` (类包括并用方法边界为JSON). |

**回返情况:**

-   默认 : `{ object, bytes, source, version, include }`
-   `method=*`数字 : `{ object, methodCount, methods }`
-   `method=<name>`数字 : `{ object, method, startLine, endLine, bytes, source }`
-   `grep`数字 : `{ object, pattern, matchCount, matches, methodContext }`
-   `format=structured`数字 : `{ object, source, bytes, version, include, includes, methods }`

**实例:**

```text
get_source objectName=ZCL_ORDER objectType=CLAS version=inactive
get_source objectName=ZCL_ORDER objectType=CLAS include=testclasses
get_source objectName=ZCL_ORDER objectType=CLAS method=get_name
get_source objectName=ZCL_ORDER objectType=CLAS grep="SELECT.*FROM"
```

**提示 :** 不要合并 `method` 财务报告和审定财务报表 `grep`启用 `grep` 然后找到密码 `method` 以读取完整的方法.

* * *

#### `update_source`

将新的 ABAP 源代码写入已有对象 。 内部执行全SAP ADT锁 PUT 解锁循环.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `objectName` | 字符串 | ABAP 对象名称 |
| `objectType` | 绳子? | 对象类型提示 |
| `sourceCode` | 字符串 | 新建 ABAP 源代码 |
| `transport` | 绳子? | 运输请求号(可运输物品需要) |

**回返情况:**

```json
{ "status": "updated", "object": "ZCL_MY_CLASS" }
```

> ⚠️ **更新后总是激活** ——不活动源没有编译,无法执行.

* * *

#### `get_test_classes`

检索测试类定义(`FOR TESTING`)嵌入于ABAP类. 返回测试类的原始来源.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `className` | 字符串 | ABAP类名称,例如. `ZCL_MY_CLASS` |

**回返情况:** 本地测试类的普通ABAP来源包括.

* * *

### 激活语法( C)

#### `activate_object`

激活一个或多个ABAP对象. 支持单对象和批量模式.

**单个对象模式 :**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `objectName` | 字符串 | ABAP 对象名称 |
| `objectType` | 字符串 | 对象类型( E)`PROG`, (中文(简体) ), `CLAS`, (中文(简体) ), `INTF`, (...) (中文(简体) ) |

**批量模式 :**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `objects` | `Array<{objectName, objectType}>` | 一个请求中要激活的对象 |

**回返情况:**

```json
{ "status": "activated", "count": 2, "objects": [{ "name": "ZCL_FOO", "type": "CLAS" }, ...] }
```

* * *

#### `check_syntax`

运行一个对象的ABAP语法检查并返回结构化的检查消息. 使用 `checkrun` schema — 在工具代码中没有解析 XML .

**参数:**

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `objectName` | 字符串 | ✅ | ABAP 对象名称 |
| `objectType` | 绳子? | —— 说 | 快速解析对象类型提示 |
| `version` | `"active"` | `"inactive"` | `"new"` | `"active"` | 要检查的版本 |

**回返情况:**

```json
{
  "hasErrors": false,
  "hasWarnings": true,
  "reports": [
    {
      "reporter": "syntax",
      "triggeringUri": "/sap/bc/adt/oo/classes/zcl_foo",
      "checkMessageList": {
        "checkMessage": [{ "type": "W", "shortText": "Variable X is unused", ... }]
      }
    }
  ]
}
```

* * *

### 单位测试

#### `run_unit_tests`

运行 ABAP 单位在物体或包上进行测试,并收到按测试方法细分的通过/失败计数.

**参数:**

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `objectName` | 字符串 | ✅ | 对象名称( 类、 程序或软件包) |
| `objectType` | 绳子? | —— 说 | 类型提示( E)`CLAS`, (中文(简体) ), `PROG`, (中文(简体) ), `DEVC`, (...) (中文(简体) ) |
| `withCoverage` | 布尔 | `false` | 是否收集代码覆盖数据 |

**回返情况:**

```json
{
  "totalTests": 5,
  "passCount": 4,
  "failCount": 1,
  "errorCount": 0,
  "programs": [ ... ]
}
```

* * *

### 软件包管理

#### `list_package_objects`

列出包中包含的ABAP对象. 用途 `quickSearch` 带有 `packageName` 过滤器.

**参数:**

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `packageName` | 字符串 | ✅ | 包名,例如:. `ZPACKAGE` |
| `objectType` | 绳子? | —— 说 | 按类型过滤( N)`CLAS`, (中文(简体) ), `PROG`, (...) (中文(简体) ) |
| `maxResults` | 编号 | `200` | 最大结果计数 |

**回返情况:**

```json
{
  "packageName": "ZPACKAGE",
  "count": 12,
  "objects": [{ "name": "ZCL_FOO", "type": "CLAS/OC", ... }]
}
```

* * *

### 改变和运输系统(CTS)

#### `cts_list_transports`

列出CTS的运输请求.

**参数:**

| 参数 | 类型 | 默认 |
| --- | --- | --- |
| `maxResults` | 编号 | `50` |

**回返情况:** 运输请求描述符.

* * *

#### `cts_get_transport`

获取具体运输请求的细节.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `transportId` | 字符串 | 运输编号,例如:. `DEVK900001` |

**回返情况:** 完整的运输描述符,包括任务和对象.

* * *

#### `cts_create_transport`

创建新的运输请求 .

**参数:**

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `description` | 字符串 | ✅ | 运输说明 |
| `type` | `"K"` | `"W"` | `"K"` | 工作中心(`K`)或自定义(`W`(中文(简体) ) |

* * *

#### `cts_create_task`

在现有运输请求下创建并核查可修改的任务.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `transport` | 字符串 | 父母运输申请号 |
| `owner` | 字符串 | SAP 用户将拥有此任务 |

**回返情况:** 母运输编号,创建任务编号,规范所有者, 财务报告和审定财务报表 `created` 状态.

* * *

#### `cts_release_transport`

发布运输请求.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `transport` | 字符串 | 运输编号 |
| `releaseAll` | 布尔 | 在请求前释放可修改的任务 |

#### `cts_delete_transport`

删除运输请求.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `transport` | 字符串 | 运输编号 |

* * *

#### `flow_checkout_tr`

将允许的本地工作空间调和到精确的运输源边界. 工具代表 `@abapify/adt-flow`; 它不运行 Git 命令 .

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `transports` | 字符串 \[\] | ✅ | 非空运输范围 |
| `workspaceRoot` | 字符串 | ✅ | 服务器所属根中的绝对目录 |
| `base` | 布尔 | `false` | 在范围前选择版本 |
| `verifyInventory` | 布尔 | `false` | 重算存货而不是重用精确标题索引 |

JSON结果包含更改、移动、去除、不变、描述和 SAP的电话数。 与 `verifyInventory: true`,其中还包含刷新 清单和每个项目的决议结果。 它从不包含源体或 证书.

* * *

#### `flow_index_tr`

长期库存和未解决的当地允许的边界说明 不读取或实现源文件的工作空间。 不像严格 `flow_checkout_tr`,此工具将不准确的组件记录为省略 稍后精确的检出可以重试它们.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `transports` | 字符串 \[\] | 非空运输范围 |
| `workspaceRoot` | 字符串 | 服务器所属根中的绝对目录 |

JSON结果包含运输/物体说明和疏漏诊断; 它的源调数总是零.

* * *

### ABAP 测试舱(ATC)

#### `atc_run`

运行 ABAP 测试 Cockpit 检查对象或包并返回结果工作列表 .

在目的模式下,此操作需要明确 `safe_execute` 赠款。 A 类 `read` 赠款不足,因为SAP创建了临时 用于分析的服务器侧工作列表.

**参数:**

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `scope` | 对象 | ATC 范围 : `{ kind: 'package', packageName }`, (中文(简体) ), `{ kind: 'transport_request', trkorr }`,或 `{ kind: 'objects', objects: [{ objectType, objectName }] }` |

**回返情况:**

```json
{ "status": "completed", "worklist": { ... } }
```

* * *

## 共同工作流程

### 读取 编辑 保存 激活

```
1. get_source      objectName=ZCL_FOO objectType=CLAS
2. update_source   objectName=ZCL_FOO objectType=CLAS sourceCode="..." transport=DEVK900001
3. check_syntax    objectName=ZCL_FOO objectType=CLAS version=inactive
4. activate_object objectName=ZCL_FOO objectType=CLAS
5. run_unit_tests  objectName=ZCL_FOO objectType=CLAS
```

### 探索软件包

```
1. list_package_objects packageName=ZPACKAGE
2. get_object      objectName=ZCL_FOO objectType=CLAS
3. get_source      objectName=ZCL_FOO objectType=CLAS
```

### 质量门

```
1. check_syntax objectName=ZCL_FOO objectType=CLAS
2. atc_run      scope={"kind":"objects","objects":[{"objectType":"CLAS","objectName":"ZCL_FOO"}]}
3. run_unit_tests objectName=ZCL_FOO objectType=CLAS
```

* * *

## 建筑

```
┌──────────────┐    stdio (JSON-RPC)   ┌──────────────────────────────┐
│  MCP Client  │ ◄───────────────────► │  @abapify/adt-mcp            │
│ (AI / IDE)   │                       │  McpServer (17 tools)        │
└──────────────┘                       └──────────────┬───────────────┘
                                                      │ calls
                                       ┌──────────────▼───────────────┐
                                       │  @abapify/adt-client         │
                                       │  (typed contracts via speci) │
                                       └──────────────┬───────────────┘
                                                      │ HTTP/HTTPS
                                       ┌──────────────▼───────────────┐
                                       │  SAP System (ADT REST)       │
                                       └──────────────────────────────┘
```

**设计原则:**

-   **无逻辑重复** - 工具代表 `@abapify/adt-client` 服务.
-   **基于Schema的序列化** - 请求/答复 XML 是通过打入的系统处理的,来自 `@abapify/adt-schemas`。没有手动 XML 构建,也没有第三方 XML 解析器.
-   **结构化 JSON** – 每个工具返回JSON,从不原始控制台输出.
-   **Zod 验证** – 所有工具输入在到达SAP系统之前都经过验证.
-   **连线** – 每个工具调用都会创建自己的ADT客户端;服务器是无国籍的.

* * *

## 程序用途

```typescript
import { createMcpServer } from '@abapify/adt-mcp';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

const server = createMcpServer();
const transport = new StdioServerTransport();
await server.connect(transport);
```

### 自定义客户端工厂(例如用于测试或SSO)

```typescript
import { createMcpServer } from '@abapify/adt-mcp';

const server = createMcpServer({
  clientFactory: (params) =>
    createAdtClient({
      baseUrl: params.baseUrl,
      username: params.username ?? '',
      password: params.password ?? '',
      client: params.client,
    }),
});
```

* * *

## 测试

集成测试使用Vitest和一个内置的模拟APT服务器,不需要SAP系统.

```bash
# Run all integration tests
bunx vitest run tests/integration.test.ts
```

### 在自己的测试中使用模拟服务器

模拟ADT服务器 住在私人 `@abapify/adt-fixtures` 软件包 (monorepo- only – 它不发布于 npm). 在这个仓库里 集成测试直接导入:

```typescript
import { createMockAdtServer } from '@abapify/adt-fixtures';
```

* * *

## 发展

```bash
bunx nx build adt-mcp      # build
bunx nx typecheck adt-mcp  # type check
bunx nx lint adt-mcp       # lint
bunx nx test adt-mcp       # run integration tests with Vitest
```

* * *

## 特征对等地图

| CLI 命令 | MCP 工具 | 状态 |
| --- | --- | --- |
| `adt discovery` | `discovery` | ✅ |
| `adt info` | `system_info` | ✅ |
| `adt search` | `search_objects` | ✅ |
| `adt get` | `get_object` | ✅ |
| `adt source get` | `get_source` | ✅ |
| `adt source versions` | `list_source_versions` | ✅ |
| `adt source version get` | `get_source_version` | ✅ |
| `adt source put` | `update_source` | ✅ |
| `adt activate` | `activate_object` | ✅ |
| `adt check` | `check_syntax` | ✅ |
| `adt aunit run` | `run_unit_tests` | ✅ |
| `adt atc run` | `atc_run` | ✅ |
| `adt cts tr list` | `cts_list_transports` | ✅ |
| `adt cts tr get` | `cts_get_transport` | ✅ |
| `adt cts tr task create` | `cts_create_task` | ✅ |
| `adt cts tr source-manifest` | `cts_transport_source_manifest` | ✅ |
| `adt cts tr delete` | `cts_delete_transport` | ✅ |
| `adt cts tr create` | `cts_create_transport` | ✅ |
| `adt cts tr release` | `cts_release_transport` | ✅ |
| `adt flow checkout tr` | `flow_checkout_tr` | ✅ |
| `adt flow index tr` | `flow_index_tr` | ✅ |
| `adt ls` | —— 说 | 未来 |
| `adt cts search` | —— 说 | 未来 |
| `adt import package` | —— 说 | 未来 |
| `adt import transport` | —— 说 | 未来 |

## 常见问题

### @abapify/adt-mcp 是什么？

SAP ADT 操作的 MCP 服务器 – 将adt- cli 特性暴露为 MCP 工具

### 如何安装 @abapify/adt-mcp？

在项目目录运行 npm install @abapify/adt-mcp，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 adt-mcp、adt-mcp-http，可以用 npx adt-mcp 直接运行。

### @abapify/adt-mcp 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @abapify/adt-mcp 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @abapify/adt-mcp 可以商用吗？

@abapify/adt-mcp 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @abapify/adt-mcp 的下载量有多少？

根据 npm 官方下载统计，@abapify/adt-mcp 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,782 次，日均约 93 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @abapify/adt-mcp 还在维护吗？

最新版本 0\.4\.34 发布于 2026/11/03（4 天前）；至今共发布 29 个版本，其中过去 12 个月发布了 29 个；首次发布于 2026/04/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

