# mcp-abap-abap-adt-api

MCP-сервер для работы с ABAP-объектами в SAP через ADT API: чтение исходников, правки, транспорты, отладка. Нужен, если вы ведёте ABAP-разработку и хотите делать это из ИИ-клиента.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 205
- Автор: mario-andreschak
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/mario-andreschak/mcp-abap-abap-adt-api
- Обновлён: 2026-09-16
- HTML: https://affpapa.org/nevibecode/mcp/mcp-abap-abap-adt-api

## Что делает

Сервер оборачивает библиотеку `abap-adt-api` и отдаёт агенту набор инструментов для SAP: поиск объектов, чтение и запись исходников, блокировки, активация, транспорты, отладка, рефакторинг, Git и анализ. Все операции идут через одну сессию SAP, которой владеет локальный stdio-клиент. Что именно эта сессия может читать и менять, решают авторизации в самой системе.

Собирается из исходников: нужен Node 22.22.2+ или 24.15.0+, затем `npm ci` и `npm run build`, а клиент запускает `node` с абсолютным путём к `dist/index.js`. Учётные данные приходят из окружения MCP-клиента: `SAP_URL` — это origin без пути и встроенных логинов, плюс `SAP_USER` и `SAP_PASSWORD`. Для приватного CA задайте `NODE_EXTRA_CA_CERTS` до старта Node. Проверку TLS отключить нельзя.

Одновременно выполняется только одна операция, параллельные запросы получают ошибку занятости. `SAP_REQUEST_TIMEOUT_MS` по умолчанию 60000 и принимает значения от 100 до 120000. Клиент не следует редиректам, не подхватывает прокси из окружения и не повторяет изменяющие вызовы. Прерванная запись могла уже изменить объект в SAP, поэтому после сбоя смотрите блокировки и при необходимости вызывайте `login`, `dropSession` или `logout`. Это инструмент для доверенного оператора, а не песочница и не многопользовательский сервис.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `SAP_URL`, `SAP_USER`, `SAP_PASSWORD`, `SAP_CLIENT`, `SAP_LANGUAGE`, `NODE_TLS_REJECT_UNAUTHORIZED` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env SAP_URL=<SAP_URL> --env SAP_USER=<SAP_USER> --env SAP_PASSWORD=<SAP_PASSWORD> --env SAP_CLIENT=<SAP_CLIENT> --env SAP_LANGUAGE=<SAP_LANGUAGE> --transport stdio mcp-abap-abap-adt-api -- npx -y mcp-abap-abap-adt-api
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add mcp-abap-abap-adt-api --env SAP_URL=<SAP_URL> --env SAP_USER=<SAP_USER> --env SAP_PASSWORD=<SAP_PASSWORD> --env SAP_CLIENT=<SAP_CLIENT> --env SAP_LANGUAGE=<SAP_LANGUAGE> -- npx -y mcp-abap-abap-adt-api
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-abap-abap-adt-api": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-abap-abap-adt-api"
            ],
            "env": {
                "SAP_URL": "<SAP_URL>",
                "SAP_USER": "<SAP_USER>",
                "SAP_PASSWORD": "<SAP_PASSWORD>",
                "SAP_CLIENT": "<SAP_CLIENT>",
                "SAP_LANGUAGE": "<SAP_LANGUAGE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-abap-abap-adt-api": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "mcp-abap-abap-adt-api"
            ],
            "env": {
                "SAP_URL": "<SAP_URL>",
                "SAP_USER": "<SAP_USER>",
                "SAP_PASSWORD": "<SAP_PASSWORD>",
                "SAP_CLIENT": "<SAP_CLIENT>",
                "SAP_LANGUAGE": "<SAP_LANGUAGE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e SAP_URL=<SAP_URL> -e SAP_USER=<SAP_USER> -e SAP_PASSWORD=<SAP_PASSWORD> -e SAP_CLIENT=<SAP_CLIENT> -e SAP_LANGUAGE=<SAP_LANGUAGE> mcp-abap-abap-adt-api npx -y mcp-abap-abap-adt-api
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

## Когда брать
- найти ABAP-объект по имени класса и получить его URI
- прочитать исходник программы и проверить синтаксис
- записать изменённый код обратно в систему
- разобраться с транспортами при переносе изменений
- подключить отладчик к выполняющейся программе

## Примеры запросов агенту
- Найди ABAP-класс `zcl_invoice_xml_gen_model` и покажи его исходник
- Проверь синтаксис кода, который ты только что прочитал из системы
- Покажи информацию о транспорте для этого объекта

## Похожие
- [MCP Toolbox for Databases](https://affpapa.org/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP-сервер · ★ 16717
- [PostHog MCP Server](https://affpapa.org/nevibecode/mcp/posthog-mcp-server.md) — MCP-сервер · ★ 40409
- [OpenWork MCP Gateway](https://affpapa.org/nevibecode/mcp/openwork-mcp-gateway.md) — MCP-сервер · ★ 24242
- [Keploy](https://affpapa.org/nevibecode/mcp/keploy.md) — MCP-сервер · ★ 18727

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
