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-abap-abap-adt-api
Требования
Требование | Минимум | Проверка |
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 installed
Maintenance
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
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to access SAP ADT APIs for reading, writing, debugging, deploying, and testing ABAP code through natural language or DSL automation.448MIT
- AlicenseCqualityCmaintenanceEnables interaction with SAP ABAP systems through ADT APIs, allowing management of ABAP objects, transport requests, and code analysis via natural language.100148MIT
- AlicenseCqualityCmaintenanceFacilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.100148MIT
- FlicenseAqualityCmaintenanceEnables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.424
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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