# mcp-abap-adt-ro

Даёт агенту доступ к репозиториям ABAP через ADT в режиме только чтения: анализ объектов, поиск и навигация по системе.

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

## Что делает

Сервер подключается к SAP ECC/S/4HANA (on-premise) и SAP BTP ABAP Cloud и отдаёт агенту инструменты только для чтения: where-used, метаданные объектов, навигация по репозиторию, разбор структуры и зависимостей. Изменения через него не проходят — это осознанное ограничение, потому что анализ должен опираться на реальные данные системы, а не на догадки модели.

Запускается через `npx -y @mcp-abap-adt/core-ro`. Авторизация строится на destinations: файл сервисного ключа кладётся в каталог `service-keys`, а имя файла без расширения передаётся в `--mcp=<destination>`. Поддерживаются basic (HTTP или RFC), SNC (RFC, без пароля) и JWT с входом через браузер; уже имеющийся JWT уходит в заголовке `x-sap-jwt-token` у `mcp-abap-adt-http` / `mcp-abap-adt-sse`. Транспорты — stdio, HTTP и SSE.

Для HTTP нужен только Node.js 22 или 24. Если выбираете RFC или SNC, понадобится библиотека SAP NW RFC: на Windows — 64-битная `sapnwrfc.dll` из SAP GUI, иначе SAP NW RFC SDK. Без неё сервер в этом режиме не поднимется. Устаревшие системы BASIS < 7.50 не поддерживаются.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `MCP_ENV_PATH`, `AUTH_BROKER_PATH`, `MCP_BROWSER`, `MCP_BROWSER_AUTH_PORT`, `MCP_UNSAFE`, `SAP_CONNECTION_TYPE`, `SAP_SYSTEM_TYPE`, `SAP_LANGUAGE` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

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

**Командой платформы**
```bash
claude mcp add --env MCP_ENV_PATH=<MCP_ENV_PATH> --env AUTH_BROKER_PATH=<AUTH_BROKER_PATH> --env MCP_BROWSER=<MCP_BROWSER> --env MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> --env MCP_UNSAFE=<MCP_UNSAFE> --transport stdio mcp-abap-adt-ro -- npx -y @mcp-abap-adt/core-ro
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add mcp-abap-adt-ro --env MCP_ENV_PATH=<MCP_ENV_PATH> --env AUTH_BROKER_PATH=<AUTH_BROKER_PATH> --env MCP_BROWSER=<MCP_BROWSER> --env MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> --env MCP_UNSAFE=<MCP_UNSAFE> -- npx -y @mcp-abap-adt/core-ro
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-abap-adt-ro": {
            "command": "npx",
            "args": [
                "-y",
                "@mcp-abap-adt/core-ro"
            ],
            "env": {
                "MCP_ENV_PATH": "<MCP_ENV_PATH>",
                "AUTH_BROKER_PATH": "<AUTH_BROKER_PATH>",
                "MCP_BROWSER": "<MCP_BROWSER>",
                "MCP_BROWSER_AUTH_PORT": "<MCP_BROWSER_AUTH_PORT>",
                "MCP_UNSAFE": "<MCP_UNSAFE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-abap-adt-ro": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@mcp-abap-adt/core-ro"
            ],
            "env": {
                "MCP_ENV_PATH": "<MCP_ENV_PATH>",
                "AUTH_BROKER_PATH": "<AUTH_BROKER_PATH>",
                "MCP_BROWSER": "<MCP_BROWSER>",
                "MCP_BROWSER_AUTH_PORT": "<MCP_BROWSER_AUTH_PORT>",
                "MCP_UNSAFE": "<MCP_UNSAFE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e MCP_ENV_PATH=<MCP_ENV_PATH> -e AUTH_BROKER_PATH=<AUTH_BROKER_PATH> -e MCP_BROWSER=<MCP_BROWSER> -e MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> -e MCP_UNSAFE=<MCP_UNSAFE> mcp-abap-adt-ro npx -y @mcp-abap-adt/core-ro
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

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

## Примеры запросов агенту
- Покажи, где используется класс `ZCL_ORDER_HANDLER`
- Разбери структуру функционального модуля `Z_GET_PRICE`
- Найди в репозитории все объекты, зависящие от этого CDS-вью

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119160
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43872
- [AIHawk](https://affpapa.org/nevibecode/mcp/aihawk.md) — MCP-сервер · ★ 32221

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