sap-adt-mcp
sap-adt-mcp
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-ADT
Требования
Требование | Минимум | Проверка |
Python | 3.10+ |
|
Система SAP | NetWeaver 7.31 SP04+ с активным узлом ICF |
|
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:
Команда | Назначение |
| управление подключениями через терминал (пароль вводится скрыто) |
| запуск 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 (для проекта) |
|
Claude Code |
|
Claude Desktop |
|
Если вы предпочитаете запускать прямо из исходного кода, не устанавливая пакет, замените на
"command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"].
Проверка
В Cursor сервер отображается как user-sap-adt в Settings > MCP. Чтобы проверить в любом клиенте, вызовите sap_list_environments() — он должен вернуть список сохранённых подключений.
Проблема | Решение |
Сервер не отображается | Проверьте путь к файлу конфигурации и перезапустите клиент |
Сервер отображается красным | Запустите |
| Пакет был установлен в другое виртуальное окружение |
| Выполните |
| Выполните |
Учётные данные
Через терминал (рекомендуется)
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 (поддерживаются сохранённые среды) |
| Завершить текущее подключение (позволяет сменить систему) |
| Диагностика: какие эндпоинты ADT поддерживает система |
| Список доступных сервисов ADT |
| Сохранить учётные данные в менеджере учётных данных ОС |
| Удалить сохранённые учётные данные |
| Список сохранённых сред SAP |
Репозиторий
Инструмент | Описание |
| Поиск объектов ABAP (CLAS, PROG, INTF, FUGR, TABL) |
| Список содержимого пакетов (поддерживаются пространства имён) |
| Получить сведения об объекте (имя, тип, пакет, ответственный) |
| Экспорт метаданных DDIC в формате Markdown |
Исходный код
Инструмент | Описание |
| Чтение исходного кода ABAP (опционально: сохранение в локальный файл) |
| Запись исходного кода с автоматической блокировкой, транспортом и активацией |
| Компиляция/активация объектов |
| Проверка синтаксиса без активации |
Транспорты
Инструмент | Описание |
| Проверить статус блокировки объекта |
| Список открытых транспортных запросов |
| Создать новый транспортный запрос |
| Выпустить транспортный запрос |
| Проверить, требуется ли объекту транспорт |
Создание и удаление
Инструмент | Описание |
| Создать новую программу ABAP |
| Создать новый класс ABAP |
| Создать новый интерфейс ABAP |
| Создать новый пакет ABAP (DEVC), локальный или транспортируемый |
| Удалить объект ABAP (требуется |
Параметры, примеры и возвращаемые значения для каждого инструмента: 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Зависимость | Назначение |
| HTTP-клиент для REST API ADT |
| SDK Model Context Protocol (FastMCP) |
| разбор XML |
| учётные данные в менеджере ОС |
Разработка
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.
Документация
Документ | Содержание |
Справочник команд: параметры, примеры, предварительные требования SAP и руководство по CLI | |
Полная техническая документация (английский) | |
Полная техническая документация (португальский) | |
Правила работы для ассистента, использующего инструменты |
Лицензия
Независимый проект, без аффилиации, спонсорства или одобрения со стороны SAP SE. SAP, ABAP и SAP NetWeaver являются товарными знаками SAP SE. Инструмент лишь использует публично документированный API ADT, с учётными данными самого пользователя.
This server cannot be deployed
Maintenance
Related MCP Connectors
Any REST/SOAP/GraphQL/OData/SQL API as MCP tools for Claude & ChatGPT. 561 connectors: SAP, ERP.
Read and write KukGit repositories, files, issues and pull requests from an AI assistant.
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…
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to access SAP ADT APIs for reading, writing, debugging, deploying, and testing ABAP code through natural language or DSL automation.512MIT
- AlicenseCqualityDmaintenanceFacilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.100139 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.240MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform ABAP Development Tools operations on SAP ERP (ECC and S/4HANA) systems, including source code editing, object activation, syntax checks, and ABAP unit tests.8 npmMIT