MCP SAP GUI
MCP-сервер для SAP GUI под Windows запускает транзакции, читает экран и заполняет поля одной выбранной сессии.
- 144 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Агент управляет живым окном SAP GUI: может менять данные и отбросить несохраненную работу, поэтому подойдет только отдельная тестовая сессия.
Установка
- Работает в
Ручная установка
python -m pip install .
Copy-Item .env.example .env
python -m sap_gui_server.serverБлок Install из README, выполняется в PowerShell на Windows из каталога репозитория. В `.env` выберите сессию SAP.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Агент управляет живым окном SAP GUI: может менять данные и отбросить несохраненную работу, поэтому подойдет только отдельная тестовая сессия.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
MCP SAP GUI дает агенту управление одной заранее выбранной сессией SAP GUI for Windows. Инструменты `launch_transaction` и `end_transaction` запускают и завершают транзакцию, `sap_get_screen` читает до 300 элементов управления по COM, `sap_set_field` вводит текст в поле, `sap_press` нажимает кнопку, а `sap_send_vkey` отправляет виртуальную клавишу SAP. Для случаев без COM есть `sap_click`, `sap_type` и `sap_scroll` по пикселям окна. Сервер не выбирает окно сам: нужен точный `SAP_SESSION_ID` или `SAP_CONNECTION`. Поля с паролем в выводе скрыты. Дополнительно запускаются заранее установленные скрипты GuiXT через `sap_run_guixt_script`.
Для кого. Консультантам и разработчикам SAP, которые автоматизируют рутину в SAP GUI на тестовом клиенте.
Подходит, если
- Нужно прогнать одну и ту же транзакцию по списку значений на тестовой системе.
- Агент должен прочитать содержимое экрана транзакции и пересказать поля.
- В экране нет скриптового API, и придется работать по пикселям окна.
- Автоматизацию надо привязать к выделенной сессии, не трогая остальные окна SAP.
Не подходит, если
- Нужен SAP GUI for Java, веб-клиент или среда без экрана: сервер их не поддерживает.
- Есть только боевая система без отдельного тестового клиента.
- Сервер собираются запустить в Linux или Docker: инструменты SAP там вернут ошибку платформы.
Пример запроса к агенту
Открой транзакцию SE16 в выбранной сессии, прочитай экран и перечисли поля ввода, ничего не меняя.MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Переменные окружения
SAP_SESSION_ID- Точный идентификатор сессии SAP GUI для автоматизации, например `/app/con[0]/ses[0]`.
SAP_CONNECTION- Описание подключения из SAP Logon, если сессию нужно открыть заново.
SAP_PASSWORD- Необязательный пароль; при SSO не нужен.
Ограничения
Нужны Windows, лицензионный SAP GUI 8.00 или 8.10, SAP Logon и включенный администратором SAP GUI Scripting. В README сказано, что реальные системы SAP в CI не проверялись, поэтому перед работой прогоните сервер на отдельном тестовом клиенте. Вход через SSO берет личность локального пользователя Windows и не передает личность пользователя чата. Явный `end_transaction` может отбросить несохраненные данные выбранной транзакции.
Как отключить. Закройте MCP-подключение: сессии SAP останутся открытыми. Удалите сервер из конфигурации клиента и пакет `pip uninstall`, а файл `.env` с настройками сессии удалите вручную.
Частые вопросы
Как выбрать сессию SAP?
Укажите в `.env` точный `SAP_SESSION_ID`, например `/app/con[0]/ses[0]`; идентификатор показывает запись скриптов SAP GUI. Либо оставьте его пустым и задайте `SAP_CONNECTION` с описанием из SAP Logon.
Хранится ли пароль?
Пароль необязателен: при SSO он не нужен. Если `SAP_PASSWORD` задан, он вводится через COM и не попадает ни в аргументы процесса, ни в журнал.
Что с управлением по пикселям?
Инструменты `sap_click`, `sap_type` и `sap_scroll` работают с координатами скриншота окна SAP. Если элемент доступен по COM, надежнее `sap_set_field` и `sap_press`.
Работает ли Docker-образ?
Образ собирается, но в Linux-контейнере нет интерактивного SAP GUI, и вызовы SAP вернут явную ошибку платформы. Автоматизация идет только в Windows.
Что делает скрипт GuiXT?
`sap_run_guixt_script` запускает только заранее установленный InputScript в окне выбранной сессии. Подготовить такой скрипт должен администратор или вы сами заранее.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер и CLI wincli: агент управляет окнами Windows по именам кнопок и полей через UI Automation, без координат скриншота
MCP-сервер для управления Windows: агент открывает приложения, кликает и печатает, читает состояние окон и интерфейса, работает с файлами и PowerShell
computer-use-linux, MCP-сервер, показывает активность агента поверх рабочего стола, пропуская клики пользователя к приложению.
MCP-сервер для Windows: агент двигает мышь, нажимает клавиши, управляет окнами и делает снимки экрана
MCP-сервер помогает агенту создавать и проверять Python-задачи для управления приложениями Windows и устройствами Android.
MCP-сервер на Swift дает агенту управлять любым приложением macOS: кликать, печатать и читать дерево интерфейса
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| MCP SAP GUI (эта карточка) | нет | не нужна | 144 | |
| mcp-abap-abap-adt-api | нет | API-ключ | 211 | работает с исходниками ABAP через ADT; здесь управление окном SAP GUI и транзакциями |
| SAP Skills | нет | 490 | набор скиллов без доступа к экрану; здесь агент вызывает транзакции и читает поля |
Коротко о README
Версия 0.2 заменила переменную `SAP_SYSTEM` на `SAP_CONNECTION` или `SAP_SESSION_ID` и убрала глобальные действия вроде завершения процессов.