MCP SAP GUI
An MCP server for SAP GUI for Windows that runs transactions, reads the screen and fills fields in one chosen session.
- 144 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The agent drives a live SAP GUI window: it can change data and discard unsaved work, so use a dedicated test session only.
Install
- Works in
Manual install
python -m pip install .
Copy-Item .env.example .env
python -m sap_gui_server.serverThe Install block from the README, run in PowerShell on Windows from the repository directory. Choose the SAP session in `.env`.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent drives a live SAP GUI window: it can change data and discard unsaved work, so use a dedicated test session only.
This is third-party code. Review the repository files before installing.
What it does
MCP SAP GUI lets an agent drive one pre-selected SAP GUI for Windows session. `launch_transaction` and `end_transaction` start and end a transaction, `sap_get_screen` reads up to 300 controls over COM, `sap_set_field` types into a field, `sap_press` presses a button and `sap_send_vkey` sends a SAP virtual key. For cases without COM there are pixel-based `sap_click`, `sap_type` and `sap_scroll`. The server never picks a window by itself: it needs an exact `SAP_SESSION_ID` or `SAP_CONNECTION`. Password fields are redacted in output. Preinstalled GuiXT scripts run through `sap_run_guixt_script`.
Who it is for. SAP consultants and developers automating routine SAP GUI work on a test client.
Good fit when
- You need to run one transaction over a list of values on a test system.
- An agent must read a transaction screen and describe its fields.
- A screen has no scripting API and you have to work by window pixels.
- Automation must stay bound to a dedicated session without touching other SAP windows.
Not a fit when
- You need SAP GUI for Java, a web client or a headless environment; the server does not support them.
- You only have a production system with no separate test client.
- You plan to run it on Linux or in Docker, where SAP tools return a platform error.
Example request
Open transaction SE16 in the selected session, read the screen and list the input fields without changing anything.MCP
- Transport
- stdio
- Authentication
- not required
Environment variables
SAP_SESSION_ID- Exact SAP GUI session ID for automation, for example `/app/con[0]/ses[0]`.
SAP_CONNECTION- SAP Logon connection description when a new session must be opened.
SAP_PASSWORD- Optional password; not needed with SSO.
Limitations
It needs Windows, a licensed SAP GUI 8.00 or 8.10, SAP Logon and SAP GUI Scripting enabled by an administrator. The author states that real SAP systems were not exercised in CI, so try the server on a separate test client first. SSO login takes the identity of the local Windows user and does not carry the chat user identity. An explicit `end_transaction` can discard unsaved data in the chosen transaction.
How to disable. Close the MCP connection: SAP sessions stay open. Remove the server from the client configuration and uninstall the package with pip, and delete the `.env` file with session settings by hand.
FAQ
How do I choose the SAP session?
Set an exact `SAP_SESSION_ID` such as `/app/con[0]/ses[0]` in `.env`; the SAP GUI scripting recorder shows it. Or leave it empty and set `SAP_CONNECTION` to a SAP Logon description.
Is the password stored?
The password is optional and SSO needs none. If `SAP_PASSWORD` is set, it is typed through COM and never appears in process arguments or logs.
What about pixel control?
The `sap_click`, `sap_type` and `sap_scroll` tools use SAP window screenshot coordinates. If a control is reachable over COM, `sap_set_field` and `sap_press` are more reliable.
Does the Docker image work?
The image builds, but a Linux container has no interactive SAP GUI and SAP calls return an explicit platform error. Automation runs on Windows only.
What does a GuiXT script do?
`sap_run_guixt_script` runs only a preinstalled InputScript in the chosen session window. An administrator or you must prepare such a script beforehand.
Discussion
No questions or reviews yet.
Related
MCP serversMCP server and wincli CLI: agents drive Windows apps by control name through UI Automation instead of screen coordinates
An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell
computer-use-linux is an MCP server with an on-screen agent activity indicator that lets user clicks reach the application.
An MCP server for Windows: the agent moves the mouse, presses keys, manages windows and takes screenshots
An MCP server helps an agent build and test Python automation tasks for Windows applications and Android devices.
A Swift MCP server that lets an agent drive any macOS app: click, type and read the interface tree
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| MCP SAP GUI (this card) | no | not required | 144 | |
| mcp-abap-abap-adt-api | no | API key | 211 | works with ABAP sources through ADT; here control of the SAP GUI window and transactions |
| SAP Skills | no | 490 | a skill set with no screen access; here the agent runs transactions and reads fields |
README in short
Version 0.2 replaced the `SAP_SYSTEM` variable with `SAP_CONNECTION` or `SAP_SESSION_ID` and removed global actions such as killing processes.