Skip to main content
Glama
ethanhan2014

SAP ADT MCP Server

by ethanhan2014

SAP ADT MCP Server

MCP-сервер для REST API инструментов разработки SAP ABAP (ADT). Позволяет ИИ-ассистентам читать, создавать и изменять исходный код ABAP, просматривать объекты DDIC, выполнять SQL-запросы, управлять транспортами, анализировать трассировки, получать дампы, управлять отладчиком и многое другое — для нескольких систем SAP из одного экземпляра сервера.

Инструменты (66)

Исходный код и DDIC (11)

Инструмент

Описание

Входные данные

get_abap_program

Получить исходный код программы/отчета ABAP

name

get_class

Получить исходный код класса ABAP

name

get_function_module

Получить исходный код функционального модуля

function_group, function_name

get_function_group

Получить исходный код функциональной группы

name

get_include

Получить исходный код include-файла ABAP

name

get_interface

Получить исходный код интерфейса ABAP

name

get_cds_view

Получить исходный код DDL CDS-представления

name

get_structure

Получить определение структуры DDIC

name

get_table

Получить определение таблицы базы данных ABAP

name

get_data_element

Получить определение элемента данных DDIC

name

get_domain

Получить определение домена DDIC

name

Репозиторий и поиск (3)

Инструмент

Описание

Входные данные

search_object

Поиск объектов ABAP по шаблону имени (поддерживаются подстановочные знаки)

query, max_results?

get_transaction

Получить детали транзакции (пакет, компонент приложения)

name

get_package

Получить содержимое пакета (объекты с типами/описаниями)

name

Создание, изменение и выполнение (12)

Инструмент

Описание

Входные данные

create_abap_program

Создать, записать исходный код и активировать программу

name, description, source, package?

change_abap_program

Изменить существующую программу (блокировка, запись, активация, разблокировка)

name, source

create_abap_class

Создать, записать исходный код и активировать класс

name, description, source, package?

change_abap_class

Изменить существующий класс (блокировка, запись, активация, разблокировка)

name, source

create_interface

Создать, записать исходный код и активировать интерфейс

name, description, source, package?

change_interface

Изменить существующий интерфейс (блокировка, запись, активация, разблокировка)

name, source

create_cds_view

Создать, записать исходный код и активировать CDS-представление

name, description, source, package?

change_cds_view

Изменить существующее CDS-представление (блокировка, запись, активация, разблокировка)

name, source

execute_program

Выполнить программу и вернуть вывод WRITE

name

execute_sql

Выполнить SQL-запрос ABAP и вернуть результаты в виде таблицы

query

fetch_st22_dumps

Получить дампы ST22 за дату

date, user?, max_results?

get_csrf_token

Получить CSRF-токен и сессионный cookie

(нет)

Управление транспортами (7)

Инструмент

Описание

Входные данные

list_user_transports

Список всех изменяемых транспортов для текущего пользователя

(нет)

get_transport

Получить полные детали транспорта (задачи, объекты, статус)

transport_number

get_transport_info

Проверить требования к транспорту для объекта

uri, devclass, operation?

create_transport

Создать новый транспортный запрос

devclass, description, ref?, operation?

release_transport

Деблокировать транспорт для импорта

transport_number

delete_transport

Удалить транспортный запрос

transport_number

list_system_users

Список пользователей системы SAP

(нет)

Трассировка SAT (7)

Инструмент

Описание

Входные данные

list_traces

Список трассировок времени выполнения ABAP (SAT/SE30)

user?

get_trace_hitlist

Получить список наиболее затратных операций для трассировки

trace_id

get_trace_db_access

Получить статистику доступа к БД для трассировки

trace_id

get_trace_statements

Получить дерево вызовов на уровне операторов для трассировки

trace_id

delete_trace

Удалить трассировку времени выполнения

trace_id

create_trace_config

Создать конфигурацию сбора трассировки

object_name, process_type?, description?

delete_trace_config

Удалить конфигурацию трассировки

config_id

Трассировка производительности ST05 (3)

Инструмент

Описание

Входные данные

enable_st05_trace

Включить трассировку SQL/буфера/RFC/авторизации для пользователя

user?, sql?, buffer?, rfc?, auth?, enqueue?, http?

disable_st05_trace

Отключить все активные трассировки производительности

(нет)

get_st05_trace_state

Получить активные типы трассировки, фильтр пользователя и информацию о сервере

(нет)

Перекрестная трассировка (5)

Инструмент

Описание

Входные данные

enable_cross_trace

Включить перекрестную трассировку для RAP, OData, SADL, BAdI, Gateway

user?, components?, max_traces?, trace_level?

disable_cross_trace

Отключить активацию перекрестной трассировки

activation_id

get_cross_trace_activations

Список активных активаций перекрестной трассировки

(нет)

list_cross_traces

Список захваченных результатов перекрестной трассировки

user?

get_cross_trace_records

Получить подробные записи для перекрестной трассировки

trace_id

Привязка сервисов (3)

Инструмент

Описание

Входные данные

get_binding_details

Получить детали привязки OData-сервиса

binding_name

publish_service_binding

Опубликовать привязку OData-сервиса

binding_name, binding_version

unpublish_service_binding

Отменить публикацию привязки OData-сервиса

binding_name, binding_version

Отладчик (14)

Инструмент

Описание

Входные данные

start_debugger_listener

Запустить прослушиватель отладчика (открывает сессию с состоянием)

terminal_id?, ide_id?, user?

stop_debugger_listener

Остановить прослушиватель и закрыть сессию отладки

terminal_id?, ide_id?, user?

get_debugger_session

Проверить, подключена ли сессия отладчика

terminal_id?, ide_id?, user?

set_debugger_breakpoint

Установить точку останова в месте исходного кода

uri, line, user?

delete_debugger_breakpoint

Удалить точку останова

breakpoint_id

attach_debugger

Подключиться к запущенной сессии отладки ABAP

debug_mode?

get_debugger_stack

Получить текущий стек вызовов

(нет)

get_debugger_variables

Получить значения переменных

variable_names[]

get_debugger_child_variables

Получить значения дочерних/вложенных переменных

variable_name

set_debugger_variable_value

Установить значение переменной во время отладки

variable_name, value

debugger_step

Шаг с заходом/перешагиванием/возвратом/продолжением/завершением

step_type, uri?

debugger_goto_stack

Перейти к кадру стека

stack_type, position

insert_watchpoint

Установить точку наблюдения за переменной (пауза при изменении значения)

variable_name, condition?

get_watchpoints

Список всех активных точек наблюдения

(нет)

Мультисистемность (1)

Инструмент

Описание

Входные данные

list_systems

Список всех настроенных систем SAP с ID, именами хостов и клиентами

(нет)

Все инструменты принимают необязательный параметр system_id для выбора конкретной системы SAP. Если пропустить, будет использоваться система по умолчанию (первая настроенная).

Предварительные требования

  • Node.js v18 или новее

  • Пользователь SAP с полномочиями S_ADT_RES для доступа к ресурсам ADT

  • Активированные сервисы ICF в пути /sap/bc/adt/ (через транзакцию SICF)

  • Роль SAP_BC_DWB_ABAPDEVELOPER или эквивалентная

Установка

git clone https://github.com/ethanhan2014/sap-adt-mcp.git
cd sap-adt-mcp
npm install
npm run build

Конфигурация

Вариант 1: Одна система через .env

cp .env.example .env

Отредактируйте .env, указав данные для подключения к вашей системе SAP:

SAP_HOSTNAME=your-sap-host.example.com
SAP_SYSNR=50
SAP_USERNAME=YOUR_USER
SAP_PASSWORD=YOUR_PASSWORD
SAP_CLIENT=001
SAP_LANGUAGE=EN

Переменная

Описание

Пример

SAP_HOSTNAME

Имя хоста системы SAP

your-sap-host.example.com

SAP_SYSNR

Системный номер (порт = 443 + sysnr)

50 → порт 44350

SAP_USERNAME

Пользователь SAP

DEVELOPER

SAP_PASSWORD

Пароль SAP

secret

SAP_CLIENT

Клиент SAP

001

SAP_LANGUAGE

Язык входа (по умолчанию: EN)

EN

Вариант 2: Несколько систем через systems.json

Создайте systems.json в корне проекта (см. systems.json.example):

[
  {
    "id": "DEV",
    "hostname": "dev-system.sap.com",
    "sysnr": "50",
    "client": "001",
    "username": "YOUR_USER",
    "password": "YOUR_PASSWORD",
    "language": "EN"
  },
  {
    "id": "QA",
    "hostname": "qa-system.sap.com",
    "sysnr": "00",
    "client": "001",
    "authType": "certificate",
    "certThumbprint": "YOUR_CERT_THUMBPRINT",
    "language": "EN"
  }
]

Когда присутствует systems.json, файл .env игнорируется для конфигурации системы. Первая система является системой по умолчанию. Используйте system_id при вызове любого инструмента, чтобы обратиться к конкретной системе.

Поддерживаемые типы аутентификации:

  • basic (по умолчанию) — имя пользователя/пароль

  • certificate — клиентский сертификат X.509 через certThumbprint

Использование

Claude Code

Добавьте в ~/.claude.json:

{
  "mcpServers": {
    "sap-adt": {
      "command": "node",
      "args": ["/path/to/sap-adt-mcp/dist/index.js"]
    }
  }
}

Cline (VS Code)

Добавьте в настройки MCP Cline (cline_mcp_settings.json):

{
  "mcpServers": {
    "sap-adt": {
      "command": "node",
      "args": ["/path/to/sap-adt-mcp/dist/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Автономный режим

npm start

Разработка (с MCP Inspector)

npx @modelcontextprotocol/inspector node dist/index.js

Технологический стек

  • TypeScript + Node.js

  • MCP SDK (@modelcontextprotocol/sdk)

  • Axios для HTTP

  • SAP ADT REST API через HTTPS с Basic Auth или сертификатом X.509

Install Server
F
license - not found
B
quality
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ethanhan2014/sap-adt-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server