mcp-abap-abap-adt-api

MCP-сервер для SAP ABAP: агент ищет объекты, читает и правит исходники, проверяет синтаксис и ведет транспорты через ADT

  • 211 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Широкий доступ

Почему такой уровень

  • Инструменты `setObjectSource`, `activate` и транспортов меняют код и объекты в SAP в пределах прав пользователя
  • Пароль или токен SAP лежит в конфигурации клиента, а инструменты Git просят SAP обратиться к удаленному репозиторию с переданными учетными данными
Все причины и проверки

mario-andreschak/mcp-abap-abap-adt-api

Установка

Ручная установка

npm ci && npm run build

Выполняется в клонированном репозитории, нужен Node.js 22.22.2 или новее.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Инструменты `setObjectSource`, `activate` и транспортов меняют код и объекты в SAP в пределах прав пользователя
  • Пароль или токен SAP лежит в конфигурации клиента, а инструменты Git просят SAP обратиться к удаленному репозиторию с переданными учетными данными

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

mcp-abap-abap-adt-api оборачивает библиотеку abap-adt-api и отдает агенту 127 инструментов ABAP Development Tools плюс `readResultPage` для больших ответов. Агент ищет объекты (`searchObject`), читает исходники (`getObjectSource`), блокирует объект, записывает новую версию (`setObjectSource`), проверяет синтаксис (`syntaxCheckCode`), активирует и ведет транспортные запросы. Есть также запросы к данным, отладка, рефакторинг, работа с Git и анализ кода. Все вызовы идут в одну сессию SAP, которой владеет локальный клиент по stdio. Права определяют авторизации пользователя SAP: сервер не добавляет своих ограничений на чтение и запись. Ответы больше 64 КиБ возвращаются страницами: сервер выдает `resultId`, следующий сдвиг и срок жизни, а `readResultPage` собирает исходный результат. Схемы входных данных выведены из деклараций abap-adt-api 8.4.3, неизвестные аргументы отклоняются. Снимок последнего прочитанного исходника можно сразу отдать на проверку синтаксиса без повторной передачи кода.

Для кого. ABAP-разработчикам и администраторам SAP, которые ведут разработку в системе через агента: правят исходники классов и программ, проверяют синтаксис, привязывают изменения к транспортам.

Подходит, если

  • Класс или программу ABAP надо поправить по описанию: агент находит объект через `searchObject`, читает исходник, блокирует и записывает новую версию
  • До активации хочется проверить синтаксис: `syntaxCheckCode` берет последний прочитанный или записанный исходник, если не передавать `code`
  • Изменение должно попасть в транспортный запрос: `transportInfo` возвращает номер запроса для объекта
  • Выгрузка из SAP большая, и клиент обрывает ответ: `readResultPage` собирает JSON из страниц
  • Перед работой на реальной системе проверяют доступ только чтением: `npm run verify:live` с `SAP_LIVE_TEST=1` выполняет проверку входа и обнаружения

Не подходит, если

  • Нужен HTTP-сервер или вход через OAuth для нескольких пользователей: пакет работает по stdio и рассчитан на одного доверенного оператора
  • Нужна изоляция на уровне ОС: процесс сервера ничем не ограничен, доступ задают лишь права пользователя SAP
  • Сертификат SAP выпущен частным центром, а настроить `NODE_EXTRA_CA_CERTS` нельзя: проверку TLS отключить не получится
  • Несколько агентов должны работать с SAP параллельно: сессия одна, и перекрывающие вызовы получают ошибку занятости

Пример запроса к агенту

Найди в SAP класс ZCL_INVOICE_XML_GEN_MODEL, прочитай исходник и покажи, где формируется заголовок XML, ничего не записывая

MCP

Транспорт
stdio
Авторизация
API-ключ

Переменные окружения

SAP_URL обязательная
Адрес системы SAP в виде origin без пути, параметров и учетных данных
SAP_USER обязательная
Пользователь SAP
SAP_PASSWORD обязательная, секрет
Пароль пользователя SAP; вместо него можно задать SAP_BEARER_TOKEN
SAP_BEARER_TOKEN секрет
Статический токен авторизованного брокера вместо пароля
SAP_CLIENT
Номер клиента SAP
SAP_LANGUAGE
Язык входа в SAP
SAP_REQUEST_TIMEOUT_MS
Таймаут запроса, от 100 до 120000 мс, по умолчанию 60000

Ограничения

  • Релиз в npm не опубликован: сервер собирают из исходников командами `npm ci` и `npm run build`, нужен Node.js 22.22.2 или новее (либо 24.15.0 и новее).
  • Запросы к SAP ограничены таймаутом: по умолчанию 60 секунд, `SAP_REQUEST_TIMEOUT_MS` принимает значения от 100 до 120000. Редиректы и прокси из окружения сервер не использует.
  • Живая проверка в README рассчитана на чтение: запись, отладку, Git и транспорты автор советует проверять на системе разработки.
  • Адрес `SAP_URL` указывается как origin без пути и параметров.

Как отключить. Уберите запись `abap-adt` из конфигурации MCP-клиента и перезапустите клиент. Сессию SAP снимают инструменты `logout` или `dropSession`, а локальную сборку удаляют вместе с папкой репозитория.

Частые вопросы

Как подключить mcp-abap-abap-adt-api к Claude Code или Cursor?

Соберите проект (`npm ci`, затем `npm run build`) и добавьте в конфигурацию клиента сервер с командой `node` и абсолютным путем к `dist/index.js`. В блок `env` впишите `SAP_URL`, `SAP_USER`, `SAP_PASSWORD`, `SAP_CLIENT` и `SAP_LANGUAGE`.

Какие переменные окружения нужны для входа в SAP?

Обязательны `SAP_URL` и учетные данные: `SAP_USER` с `SAP_PASSWORD` либо статический токен авторизованного брокера в `SAP_BEARER_TOKEN`. Файл `.env` подгружается только если путь к нему задан в `SAP_ENV_FILE`.

Почему healthcheck отвечает нормально, а SAP недоступен?

`healthcheck` показывает локальную конфигурацию и состояние восстановления сессии, но не проверяет соединение с SAP. Для проверки входа служит `npm run verify:live` с `SAP_LIVE_TEST=1`.

В каком порядке агент меняет исходник ABAP?

Ищет объект через `searchObject`, читает исходник с суффиксом `/source/main`, узнает транспорт через `transportInfo`, блокирует объект через `lock`, записывает код через `setObjectSource` и проверяет `syntaxCheckCode`. Затем остаются `activate` и `unLock`.

Работает ли сервер с адресом SAP по HTTP?

По умолчанию нужен HTTPS с проверкой сертификата. HTTP на loopback разрешен для тестовых стендов, а для частной сети надо задать `SAP_ALLOW_HTTP=1`: тогда учетные данные идут по сети в открытом виде.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы
Официальный

MCP-сервер превращает операции OpenAPI в инструменты агента и отправляет реальные запросы к указанному REST API.

MCP-серверРасширенный доступ302Звезды репозитория

MCP-сервер, который дает агенту читать файлы, искать по коду и запускать команды в рабочей папке

MCP-серверШирокий доступ1,2 тыс.Звезды репозитория
Официальный

MCP-сервер Ref: поиск по документации API и библиотек, который отдает агенту только нужные куски страниц

MCP-серверРасширенный доступ1,2 тыс.Звезды репозитория

MCP-сервер, который индексирует код через tree-sitter и отдает агенту отдельные функции и классы вместо целых файлов

MCP-серверРасширенный доступ2,8 тыс.Звезды репозитория
Российский стек

Внешняя обработка 1С с MCP и REST API: запросы, метаданные, журнал регистрации и выполнение кода без изменения конфигурации

MCP-серверШирокий доступ346Звезды репозитория
Официальный

Справочники по прошивкам для агента: регистры, Modbus и SCPI с цитатой и страницей, а при отсутствии данных отказ без выдумки

MCP-серверМинимальный доступ26Звезды репозитория

Коротко о README

Верхняя часть страницы посвящена сборке, конфигурацию MCP-клиента и переменные окружения, потом правила сессии, лимиты и защитные границы. Дальше идут проверки приемки (сборка, тесты, stdio, пакет, Docker) и список связанных запросов на слияние. Нижняя половина осталась от прежних версий: инструкция для модели с перечнем ключевых инструментов и пошаговый сценарий правки кода.

Бейдж для README

Сообщить о проблеме

Foxx AImcp-abap-abap-adt-api
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.