Skip to main content
Glama
engoetz

sap-adt-mcp

by engoetz

sap-adt-mcp

tests license python

MCP-сервер и Python-клиент для REST API SAP ADT (ABAP Development Tools). Он предоставляет вашему ИИ-ассистенту те же операции, которые использует Eclipse ADT — поиск по репозиторию, чтение и запись исходного кода, активацию, проверку синтаксиса и работу с транспортными запросами — общаясь с теми же эндпоинтами /sap/bc/adt/*.

Полная техническая документация также доступна на английском: docs/PROJECT_DOCUMENTATION.md.


Возможности

  • Поиск и навигация — объекты по маске (Z*, ZCL_*), содержимое пакетов (включая пространства имён /ACME/PKG) и метаданные

  • Чтение и запись исходников — с блокировкой, назначением транспорта и активацией в одном вызове; опционально сохранение/чтение локальных файлов

  • Активация и проверка синтаксиса — с сообщениями об ошибках с указанием строки и столбца

  • Транспорты — просмотр, создание, выпуск и проверка необходимости транспорта для объекта

  • Создание объектов — программ, классов, интерфейсов и пакетов (локальных или транспортируемых)

  • Экспорт DDIC в Markdown — таблицы, элементы данных, домены и представления превращаются в читаемый для ИИ контекст

  • Работа в старых релизах — media types согласовываются для каждого эндпоинта, а sap_system_info сообщает, что поддерживает данная система

Учётные данные хранятся в менеджере учётных данных операционной системы; ни один пароль не записывается в файлы проекта.


Related MCP server: mcp-abap-abap-adt-api

Требования

Требование

Минимум

Проверка

Python

3.10+

python --version

Система SAP

NetWeaver 7.31 SP04+ с активным узлом ICF /sap/bc/adt

sap-adt test <ID>

MCP-клиент

Cursor, Claude Code, Claude Desktop, VS Code или другой с поддержкой MCP

Сеть

доступ к хосту и порту SAP

Предварительные требования на стороне SAP (сервисы ICF, роли и объекты авторизации) подробно описаны в разделе 6 справочника команд.


Установка

Прямо из GitHub (рекомендуется)

pip install git+https://github.com/engoetz/sap-adt-mcp

Это регистрирует две команды в PATH:

Команда

Назначение

sap-adt

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

sap-adt-mcp

запуск MCP-сервера (stdio)

Ничего не устанавливая постоянно, с помощью uv:

uvx --from git+https://github.com/engoetz/sap-adt-mcp sap-adt-mcp

Из исходного кода (для разработки)

git clone https://github.com/engoetz/sap-adt-mcp
cd sap-adt-mcp
python -m venv .venv && .venv/Scripts/activate   # Linux/macOS: source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests -q

Настройка в MCP-клиенте

После установки команда sap-adt-mcp уже находится в PATH — абсолютный путь не нужен:

{
  "mcpServers": {
    "sap-adt": {
      "command": "sap-adt-mcp",
      "args": []
    }
  }
}

Куда поместить этот блок:

Клиент

Файл

Cursor (глобально)

~/.cursor/mcp.json — Windows: C:\Users\<usuário>\.cursor\mcp.json

Cursor (для проекта)

.cursor/mcp.json в корне проекта — есть шаблон в .cursor/mcp.json.example

Claude Code

claude mcp add sap-adt -- sap-adt-mcp

Claude Desktop

claude_desktop_config.json

Если вы предпочитаете запускать прямо из исходного кода, не устанавливая пакет, замените на "command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"].

Проверка

В Cursor сервер отображается как user-sap-adt в Settings > MCP. Чтобы проверить в любом клиенте, вызовите sap_list_environments() — он должен вернуть список сохранённых подключений.

Проблема

Решение

Сервер не отображается

Проверьте путь к файлу конфигурации и перезапустите клиент

Сервер отображается красным

Запустите sap-adt-mcp в терминале и посмотрите ошибку; обычно это неправильный Python в PATH

ModuleNotFoundError: sap_adt

Пакет был установлен в другое виртуальное окружение

No password available

Выполните sap-adt password <ID>

Missing connection parameter(s)

Выполните sap-adt add <ID>, чтобы создать подключение


Учётные данные

Через терминал (рекомендуется)

sap-adt add DEV

Команда запрашивает хост, порт, мандант, пользователя, язык и HTTPS (Enter принимает предложенное значение) и, наконец, пароль — вводится дважды, без эха на экране. Так он не попадает ни в историю shell, ни в историю разговора с ИИ.

sap-adt list                      # conexões salvas e se têm senha
sap-adt edit DEV --port 8020      # alterar campos sem tocar na senha
sap-adt password DEV              # trocar apenas a senha
sap-adt test DEV                  # conectar e sondar os endpoints ADT
sap-adt delete DEV                # remover conexão e senha

Параметра --password не существует: по определению пароль вводится только через запрос. Для автоматизации принимается переменная SAP_PASSWORD.

Пароль сохраняется в системном хранилище ключей (Windows Credential Manager, macOS Keychain, Linux Secret Service). Остальные параметры находятся в ~/.sap-adt/environments.json, вне проекта.

Через чат

sap_save_password(system_id="DEV", host="...", port=8000, client="100", user="username", password="...") делает то же самое — но пароль остаётся записанным в разговоре. Предпочитайте терминал.


Первое использование

sap_connect(system_id="DEV")
sap_system_info()                       # o que este sistema suporta (rode em release antiga)

sap_search(query="Z*", object_type="CLAS")
sap_read_source(object_name="ZCL_MINHA_CLASSE", object_type="CLAS")

sap_write_source(
    object_name="ZCL_MINHA_CLASSE",
    object_type="CLAS",
    source_code="...",
    transport_request="DEVK900123"
)

Вне MCP-клиента sap-adt test DEV выполняет ту же диагностику через терминал.


Совместимость между релизами

Более старые системы (ECC, NetWeaver 7.3x) предоставляют подмножество ADT и не всегда понимают те же версии media type. Клиент обрабатывает это автоматически:

  • Согласование media types для каждого эндпоинта, от новых к старым, с запоминанием того, что сработало

  • Discovery с альтернативами, когда /sap/bc/adt/discovery не активен в SICF

  • Транспорт отправляется двумя способами (corrNr в query и заголовок sap-transportrequest)

  • sap_system_info проверяет эндпоинты и сообщает, какие инструменты там не будут работать

Подробнее в разделе 6.7 справочника.


Инструменты MCP (25)

Подключение и учётные данные

Инструмент

Описание

sap_connect

Аутентификация в системе SAP (поддерживаются сохранённые среды)

sap_disconnect

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

sap_system_info

Диагностика: какие эндпоинты ADT поддерживает система

sap_discovery

Список доступных сервисов ADT

sap_save_password

Сохранить учётные данные в менеджере учётных данных ОС

sap_delete_password

Удалить сохранённые учётные данные

sap_list_environments

Список сохранённых сред SAP

Репозиторий

Инструмент

Описание

sap_search

Поиск объектов ABAP (CLAS, PROG, INTF, FUGR, TABL)

sap_browse_package

Список содержимого пакетов (поддерживаются пространства имён)

sap_object_metadata

Получить сведения об объекте (имя, тип, пакет, ответственный)

sap_export_ddic_markdown

Экспорт метаданных DDIC в формате Markdown

Исходный код

Инструмент

Описание

sap_read_source

Чтение исходного кода ABAP (опционально: сохранение в локальный файл)

sap_write_source

Запись исходного кода с автоматической блокировкой, транспортом и активацией

sap_activate

Компиляция/активация объектов

sap_syntax_check

Проверка синтаксиса без активации

Транспорты

Инструмент

Описание

sap_check_lock

Проверить статус блокировки объекта

sap_list_transports

Список открытых транспортных запросов

sap_create_transport

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

sap_release_transport

Выпустить транспортный запрос

sap_transport_check

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

Создание и удаление

Инструмент

Описание

sap_create_program

Создать новую программу ABAP

sap_create_class

Создать новый класс ABAP

sap_create_interface

Создать новый интерфейс ABAP

sap_create_package

Создать новый пакет ABAP (DEVC), локальный или транспортируемый

sap_delete_object

Удалить объект ABAP (требуется confirm='DELETE')

Параметры, примеры и возвращаемые значения для каждого инструмента: docs/MCP_COMMAND_REFERENCE.md


Архитектура

Cliente MCP  →  servidor MCP (stdio/JSON-RPC)  →  cliente REST ADT  →  SAP /sap/bc/adt/*
src/sap_adt/
├── client.py            # HTTP: autenticação, CSRF, sessões stateful, negociação de media type
├── credential_store.py  # ~/.sap-adt/environments.json + keyring do SO
├── repository.py        # pesquisa, navegação de pacotes, metadados
├── source.py            # leitura/escrita de fonte com bloqueio
├── activation.py        # ativação e verificação de sintaxe
├── transport.py         # transport requests (CTS)
├── ddic_export.py       # DDIC → Markdown
├── cli.py               # comando `sap-adt`
├── models.py            # dataclasses
├── exceptions.py        # hierarquia de exceções
└── mcp_server.py        # servidor MCP com as 25 ferramentas

Зависимость

Назначение

requests

HTTP-клиент для REST API ADT

mcp

SDK Model Context Protocol (FastMCP)

lxml

разбор XML

keyring

учётные данные в менеджере ОС


Разработка

pip install -e ".[dev]"
python -m pytest tests -q

Тесты офлайн: не требуются ни система SAP, ни сеть. Они покрывают разрешение URI, XML-парсеры на статических ответах (включая формат старых релизов) и CLI. CI запускает набор тестов в Linux и Windows, Python 3.10 и 3.13, и проверяет, что пакет собирается.

Вклад и сообщения о проблемах приветствуются через issues. Открывая issue, не вставляйте hostname, пользователя, мандант или фрагменты проприетарного кода — опишите поведение и, если возможно, приложите вывод sap_system_info.


Документация

Документ

Содержание

docs/MCP_COMMAND_REFERENCE.md

Справочник команд: параметры, примеры, предварительные требования SAP и руководство по CLI

docs/PROJECT_DOCUMENTATION.md

Полная техническая документация (английский)

docs/PROJECT_DOCUMENTATION_PT-BR.md

Полная техническая документация (португальский)

AGENTS.md

Правила работы для ассистента, использующего инструменты


Лицензия

Apache-2.0.

Независимый проект, без аффилиации, спонсорства или одобрения со стороны SAP SE. SAP, ABAP и SAP NetWeaver являются товарными знаками SAP SE. Инструмент лишь использует публично документированный API ADT, с учётными данными самого пользователя.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Facilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.
    100
    148
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.
    4
    24

View all related MCP servers

Related MCP Connectors

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

View all MCP Connectors

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/engoetz/sap-adt-mcp'

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