Skip to content
Agentmart
Submit a tool

MCP Sap Gui

SAP GUI for Windows automation for AI agents - 60 structured tools via SAP GUI Scripting API

Connector by kts982 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 40
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/kts982-mcp-sap-gui

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

SAP GUI for Windows automation for AI agents - 60 structured tools via SAP GUI Scripting API

Use cases: workflow-automation

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
29 read · 31 write · 0 delete
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 60

Read from the source code; the running server may list different tools.

Read 29 · Look things up without changing anything.

  • sap_connect
  • sap_connect_existing
  • sap_disconnect
  • sap_find_tree_node_by_path
  • sap_get_alv_toolbar
  • sap_get_cell_info
  • sap_get_column_info
  • sap_get_combobox_entries
  • sap_get_current_cell
  • sap_get_popup_window
  • sap_get_screen_elements
  • sap_get_screen_info
Show 17 more tools
  • sap_get_session_info
  • sap_get_table_control_row_info
  • sap_get_toolbar_buttons
  • sap_get_transaction_guide
  • sap_get_workflow_guide
  • sap_list_connections
  • sap_preview
  • sap_read_field
  • sap_read_list
  • sap_read_shell_content
  • sap_read_table
  • sap_read_textedit
  • sap_read_tree
  • sap_screenshot
  • sap_search_tree_nodes
  • sap_set_confirmation_points
  • sap_set_policy_profile

Write 31 · Create, change, send or run things.

  • sap_click_tree_link
  • sap_collapse_tree_node
  • sap_double_click_cell
  • sap_double_click_tree_item
  • sap_double_click_tree_node
  • sap_execute_transaction
  • sap_expand_tree_node
  • sap_get_tree_node_children
  • sap_handle_popup
  • sap_modify_cell
  • sap_press_alv_toolbar_button
  • sap_press_button
Show 19 more tools
  • sap_press_column_header
  • sap_scroll_table_control
  • sap_select_all_rows
  • sap_select_all_table_control_columns
  • sap_select_alv_context_menu_item
  • sap_select_checkbox
  • sap_select_combobox_entry
  • sap_select_menu
  • sap_select_multiple_rows
  • sap_select_radio_button
  • sap_select_tab
  • sap_select_table_row
  • sap_select_tree_node
  • sap_send_key
  • sap_set_batch_fields
  • sap_set_current_cell
  • sap_set_field
  • sap_set_focus
  • sap_set_textedit

Network hosts it talks to 3

  • context7.com · found in code
  • github.com · found in code
  • help.sap.com · found in code

Files it touches

  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (60)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • sap_click_tree_link

    Click a hyperlink in a tree node item. For SPRO/customizing trees, click on the execute icon column (typically item_name='2') to run an activity. Use sap_read_tree to see which columns have link-type items.

  • sap_collapse_tree_node

    Collapse a folder node in a tree control (e.g. SPRO/customizing tree).

  • sap_connectread-only

    Connect to an SAP system by its name in SAP Logon Pad. Credentials are resolved from a .env file (SAP_USER, SAP_PASSWORD, SAP_CLIENT, SAP_LANGUAGE) so passwords never appear in MCP tool calls. Parameters provided here override the .env values (except password). If SAP is already open and logged in, use sap_connect_existing instead.

  • sap_connect_existingread-only

    Connect to an already open SAP session. Use this when SAP is already logged in. This is the most common starting point. connection_index=0 and session_index=0 connect to the first open session. Also attaches to SAP Business Client / embedded SAP GUI sessions. Indexes come from sap_list_connections; a connection with scripting_disabled=true cannot be attached. system: pass it only when the user named the SAP system, as 'DEV' or 'DEV/100' (system/client). One open session on it is attached; several, or none, return an error that lists what is open. The indexes are then ignored. With the 'atta…

  • sap_disconnectread-only

    Disconnect from the current SAP session and release the binding. Sessions opened by this MCP session (via sap_connect) are closed. Sessions that were attached (via sap_connect_existing) are detached but left open so the user can continue working manually.

  • sap_double_click_cell

    Double-click a cell in a table/grid (often opens details or drills down). Row is zero-based. Column is the column name (from sap_read_table or sap_get_column_info). Works on both ALV and TableControl.

  • sap_double_click_tree_item

    Double-click a specific item (column cell) in a tree node row. item_name is the column name (e.g., 'Column1', 'Column2'). Use sap_read_tree to discover column names for the tree.

  • sap_double_click_tree_node

    Double-click a node in a tree control (often opens details or drills down). In SPRO/customizing trees, this may open documentation (hypertext) rather than executing the activity. Use sap_click_tree_link on the execute column (typically column '2') for SPRO activities.

  • sap_execute_transaction

    Execute (start/run) an SAP transaction code (tcode), e.g. MM03, VA01, SM30. Navigates to the transaction's initial screen. Always check the screen info in the response to understand what screen you landed on. Some transactions require /n prefix for SCWM (e.g., /n/SCWM/MON). A bare /n leaves the current transaction (unsaved data is lost). Subject to transaction blocklist/allowlist. Use sap_get_session_info to see the current transaction before navigating away.

  • sap_expand_tree_node

    Expand a folder node in a tree control to reveal its children. After expanding, use sap_get_tree_node_children or sap_read_tree to see the newly visible child nodes.

  • sap_find_tree_node_by_pathread-only

    Find a tree node key by its path. E.g., '2\1\2' = 2nd child of root, then 1st child, then 2nd.

  • sap_get_alv_toolbarread-only

    Get all toolbar buttons from an ALV grid. Returns button IDs, texts, and types. Use this to discover available actions (sort, filter, export, etc.) before pressing them with sap_press_alv_toolbar_button. Only works on GuiGridView (ALV), not GuiTableControl.

  • sap_get_cell_inforead-only

    Get detailed cell metadata from an ALV grid. Returns value, changeable, cell_type (Normal, CheckBox, ValueList, Button, ...), state (Normal, Error, Warning, Info: why a cell was rejected), f4_help, hotspot, color, tooltip, max_length; plus checked for a checkbox and list_box_count (entries) for a dropdown cell. Does NOT work on GuiTableControl.

  • sap_get_column_inforead-only

    Get detailed column info from an ALV grid or table control. Returns column names, titles and tooltips; for an ALV grid also each column's data_type (string, date, decimal, ...) and key flag, for a table control each column's cell_type and cell_id template. For a lighter alternative, use sap_read_table with columns_only=true.

  • sap_get_combobox_entriesread-only

    List all entries in a combobox/dropdown. Returns key-value pairs so you know which values are valid.

Show 45 more tools
  • sap_get_current_cellread-only

    Get the currently focused cell position in an ALV grid or table control.

  • sap_get_popup_windowread-only

    Check if a popup/modal dialog is open (wnd[1], wnd[2], etc.). Returns the popup's title, text content, and available buttons so you know how to respond. Also classifies the popup and suggests a safe next action. Returns {popup_exists: false} if no popup. The popup's text is in `texts`: labels and display-only fields (a message popup's lines). A popup whose body is a classic list (an F4 hit list, a note, a message's long text) has `list` (`cells`, `rows`, `hint`) instead: its lines are never in `texts` or `interactive_elements`; read them with sap_read_list. Radio buttons and checkboxes in in…

  • sap_get_screen_elementsread-only

    Discover all elements on the current SAP screen. Useful for finding field IDs when working with a new screen. Use type_filter and changeable_only to reduce response size on complex screens (e.g. type_filter="GuiTextField,GuiCTextField" to find only input fields). max_depth controls how deep to recurse into containers (default 2). Use max_depth=1 for a quick overview, max_depth=3+ for deeply nested layouts (splitter containers, tab strips with sub-containers). Pass container_id='wnd[0]/mbar' to discover the menu bar structure. Radio buttons and checkboxes report selected (true/false); a dr…

  • sap_get_screen_inforead-only

    Get current SAP screen info: transaction, program, screen number, window title, and status bar message (success/error/warning text). Reads from ``session.ActiveWindow`` so the response always reflects what the user sees. The ``active_window`` field tells you which window is in focus (e.g. ``wnd[0]`` for the main screen, ``wnd[1]`` for a popup). The ``title`` comes from the active window. Every action tool (press_button, send_key, select_menu, etc.) returns this same screen info, so you always know when a popup appears. Use sap_get_popup_window for full popup content (texts, buttons). Pres…

  • sap_get_session_inforead-only

    Get information about the current SAP session (system, client, user, transaction, screen). Also the SAP GUI release (sap_gui_version) and scripting_read_only: when true, the SAP server allows read-only scripting and write tools refuse.

  • sap_get_table_control_row_inforead-only

    Get row metadata (selectable, selected) from a GuiTableControl. If rows is omitted, queries all visible rows. Does NOT work on ALV grids.

  • sap_get_toolbar_buttonsread-only

    List all buttons on the system toolbar (tbar[0]) and app toolbar (tbar[1]). Returns button IDs, text, tooltip, and enabled state. This is for standard SAP toolbars, NOT ALV (use sap_get_alv_toolbar for ALV).

  • sap_get_transaction_guideread-only

    Return a generic, read-first guide for a supported SAP transaction. Available transactions: - **/SCWM/MON**: EWM Warehouse Monitor with tree navigation and ALV results. - **SM30**: table/view maintenance and view clusters (SM34) - also what most IMG activities open: reading the table, the docked dialog-structure tree, new entries, saving and the customizing request prompt. Aliases accepted: `SCWM/MON`, `warehouse monitor`, `ewm warehouse monitor`, `SM34`, `table maintenance`, `view maintenance`, `view cluster`.

  • sap_get_tree_node_children

    Get direct children of a tree node. Much faster than read_tree for step-by-step navigation of deep trees (e.g., SPRO). Omit node_key or pass empty string for root-level nodes. Set expand=true to expand the node first (requires write permission).

  • sap_get_workflow_guideread-only

    Return step-by-step guidance for a common SAP workflow. Available workflows: - **search_help**: F4 search help on a field. `target` = field ID. - **table_export**: Paginated table export. `target` = table element ID. - **spro_navigate**: SPRO customizing navigation. `target` = activity name.

  • sap_handle_popup

    Read and optionally act on the current popup/modal dialog. Use when active_window shows wnd[1] or higher. Combines popup inspection and response in a single call. Actions: - read: return popup content without acting (default) - confirm: press OK/Yes/Continue/Enter on the popup - cancel: press Cancel (or F12) on the popup; never No, which on a save prompt drops the changes - press: press a specific button by its text or tooltip - auto: take only a clearly safe action; otherwise return the popup read-only A press that may save (a Save button, or Yes/OK on a popup about saving, e.g. "Save th…

  • sap_list_connectionsread-only

    List all open SAP connections and sessions. Covers SAP Logon plus SAP Business Client / embedded SAP GUI sessions (`host`: saplogon | sapguiserver). A connection with no sessions and `scripting_disabled: true` means the server parameter sapgui/user_scripting is off, so no session can be read. Each session has its system, client, user, transaction, `session_number` (the "(2)" in "DEV(2)") and window `title`.

  • sap_modify_cell

    Modify the value of a cell in an ALV grid or table control. Only works on editable cells. Use sap_get_cell_info to check if a cell is changeable before attempting to modify it.

  • sap_press_alv_toolbar_button

    Press a toolbar button on an ALV grid (e.g., sort, filter, export). Use sap_get_alv_toolbar to find button IDs. A menu button (Menu / ButtonAndMenu) opens its menu and the response lists menu_items (text and function_code); pick one with sap_select_alv_context_menu_item.

  • sap_press_button

    Press (click) a pushbutton or toolbar button on the current SAP screen. Returns screen info after the press so you can detect navigation or popups. Use sap_get_toolbar_buttons to discover toolbar button IDs. Use sap_get_screen_elements to find on-screen button IDs. When screen info has message_has_long_text, pressing 'wnd[0]/sbar' opens that long text (Diagnosis / Procedure), usually as a list popup: read it with sap_read_list(window_id='wnd[1]'). A popup button is checked like sap_handle_popup's press: a press that may save, or any answer but Cancel to a popup question the tool cannot read,…

  • sap_press_column_header

    Click a column header in an ALV grid (triggers sort). Does NOT work on GuiTableControl.

  • sap_previewread-only

    Render a preview card of the current SAP screen for the user: screenshot, session/transaction info, status bar, and the values the agent is about to write (pending_fields). Call before significant writes (batch fills, F11 save) or whenever the user asks to see what's about to happen. Read-only: nothing is written or saved.

  • sap_read_fieldread-only

    Read the value of a field on the current SAP screen. Returns value, type, changeable status, and labels (left/right). For a dropdown, value is the selected entry's text and key its key. For a radio button or checkbox, value is its label and selected says whether it is selected. Use sap_get_screen_elements to discover field IDs on unknown screens.

  • sap_read_listread-only

    Read a classic ABAP list (WRITE output of a report) as lines of text. Use it when a report shows a plain list rather than an ALV grid (program SAPMSSY0, screen 120), and for F4 hit lists in a popup (window_id= 'wnd[1]'). Such a list has no table object: every word is its own label, so sap_get_screen_elements leaves the cells out and reports it under 'lists'. This returns the page as the lines the user sees, with no screenshot needed. - colors: rows whose text has a semantic list colour, e.g. 'negative' (red, errors), 'positive' (green), 'total', 'heading' - scroll: present when the list is…

  • sap_read_shell_contentread-only

    Read content from a GuiShell subtype (e.g., HTMLViewer). An HTML viewer's page text and URL are readable only with the Internet Explorer browser control; with the Edge control (SAP GUI 7.70+ default, e.g. the F1 Performance Assistant) the response says so in `note`. Use sap_get_screen_elements first to find shell element IDs.

  • sap_read_tableread-only

    Read rows from a table on the current screen — ALV grid (report/list output) or TableControl (SM30 maintenance view, customizing screens). Auto-detects the table type. The response includes a 'table_type' field ('GuiGridView' for ALV or 'GuiTableControl') so you know which type-specific tools to use next (e.g., sap_get_alv_toolbar for ALV, sap_scroll_table_control for TableControl). Use columns_only=true for schema discovery (returns column metadata only, no data). For a TableControl it also gives each column's cell_type and a cell_id template ({row} = zero-based visible row) for sap_set_bat…

  • sap_read_texteditread-only

    Read the content of a multiline text editor (GuiTextedit) — long texts, notes, comments, document text. Returns full text and line count. Use max_lines to cap output for large text editors (0 = all lines).

  • sap_read_treeread-only

    Read data from a tree control (TableTreeControl, ColumnTreeControl, etc.). Returns node hierarchy with texts and column values. For large trees (e.g., SPRO with 1000+ nodes), use sap_get_tree_node_children for step-by-step navigation instead. Use sap_search_tree_nodes to find specific nodes by text. total_nodes is the number of nodes read; truncated=true means the tree has more loaded nodes (available_nodes) than max_nodes allowed.

  • sap_screenshotread-only

    Take a screenshot of the current SAP window. Use as a fallback when structured tools (sap_get_screen_elements, sap_read_field, sap_read_table) return empty or confusing results, e.g., on Web Dynpro screens where the element tree is non-standard. To put a screenshot into a document, pass save_path (must end in .png, directory must exist, existing files are never overwritten). The file keeps SAP GUI's full resolution; the inline image is capped at 1920px. The response then also reports the absolute path and pixel size. Set inline=False to skip the image when only the file is needed.

  • sap_scroll_table_control

    Scroll a GuiTableControl to a specific row position. Does NOT work on ALV grids (they handle scrolling internally). For reading data at a specific offset, prefer sap_read_table with start_row parameter — it handles scrolling automatically. position in the response is the row SAP actually put at the top, which can differ from the one asked for (then requested_position and a note say so). Cell IDs ([col,row]) count visible rows from that row.

  • sap_search_tree_nodesread-only

    Search for tree nodes by text. Returns matches with full ancestor paths. Useful for finding nodes in deep trees where the same label appears in multiple branches. Case-insensitive substring match. Optionally pass column to search in a specific column instead of node text. **Important limitation**: Only searches nodes that are already loaded (expanded) in the tree. Collapsed subtrees are not searched. If you don't find what you expect, expand parent nodes first using sap_get_tree_node_children with expand=true, then search again. total_matches counts the matches returned. stopped_early=true …

  • sap_select_all_rows

    Select all rows in an ALV grid. Does NOT work on GuiTableControl.

  • sap_select_all_table_control_columns

    Select or deselect all columns in a GuiTableControl. Does NOT work on ALV grids.

  • sap_select_alv_context_menu_item

    Select an item from an opened ALV context menu. First use sap_press_alv_toolbar_button on a Menu button to open it, then use this to select an item. Alternatively, pass toolbar_button_id to open the menu and select in one atomic call (recommended). `menu_item_id` can be a technical function code (for example `@M00006`), visible menu text (for example `Confirm WT in Foreground`), or a position descriptor. You can pass human-readable menu text directly. The menu_items of sap_press_alv_toolbar_button list what a menu offers. `select_by` controls how selection is performed: - `auto` (default): …

  • sap_select_checkbox

    Select or deselect a checkbox on the current SAP screen. Set selected=false to uncheck. Use sap_get_screen_elements with type_filter='GuiCheckBox' to find checkbox IDs.

  • sap_select_combobox_entry

    Select an entry in a combobox/dropdown by its key or display value text. Accepts either the technical key or the visible display text. Use sap_get_combobox_entries first to see all valid options. F4 opens nothing on a dropdown; sap_set_field selects entries the same way.

  • sap_select_menu

    Select a menu item from the menu bar or a submenu. Example: 'wnd[0]/mbar/menu[1]/menu[0]'. Use sap_get_screen_elements on 'wnd[0]/mbar' to discover menu structure. Returns screen info after selection so you can detect navigation.

  • sap_select_multiple_rows

    Select multiple rows at once in an ALV grid or table control. Pass a list of row indices (e.g., [0, 2, 5]).

  • sap_select_radio_button

    Select a radio button on the current SAP screen. Use sap_get_screen_elements with type_filter='GuiRadioButton' to find radio button IDs on the current screen.

  • sap_select_tab

    Select a tab in a tab strip control. Returns screen info after selection (tab content changes). Tab IDs typically look like 'wnd[0]/usr/tabsTABSTRIP/tabpTAB01'.

  • sap_select_table_row

    Select a row in a table/grid. Works on both ALV grids and table controls. Row index is zero-based. For ALV: uses absolute row index. For TableControl: scrolls to make the row visible first if needed.

  • sap_select_tree_node

    Select a node in a tree control. Highlights the node without opening it. For SPRO-style trees, use sap_click_tree_link on the execute icon column instead.

  • sap_send_key

    Press a keyboard key / function key in the SAP window (sendVKey). Common keys: Enter (confirm), F1 (Help), F3 (Back), F4 (search help / value help), F5 (Refresh), F8 (Execute), F11 (Save), F12 (Cancel/Escape). Also supports Shift+F1..F9 and Ctrl+F, Ctrl+G, Ctrl+P. A key that is not active on the screen is not sent: the response has an error and available_keys, the keys this screen accepts. F11 / Save requires user confirmation via elicitation before proceeding; the response then has confirmed_by_user: true. A declined save returns status 'cancelled' with an error.

  • sap_set_batch_fields

    Fill in multiple input fields at once (dict of field_id to value). Use this to fill a form or selection screen in one call — more efficient than repeated sap_set_field calls. Table-control cells work too: take the cell_id template of each column from sap_read_table(columns_only=true) and replace {row}. A dropdown (cmb) takes an entry's key or text, as in sap_set_field. The result gives counts; `results` lists only the fields that did NOT succeed (all of them with verbose=true). Check failed == 0: a field that was not set does not stop the others. With --strict-errors such a batch is returned…

  • sap_set_confirmation_pointsread-only

    Choose which SAP operations need the user's explicit approval first. Replaces this session's set of confirmation points. When a point is active, every matching tool call pauses and asks the user to approve it (MCP elicitation) before anything reaches SAP; declining returns an error and nothing is executed. Points: - transactions: sap_execute_transaction - batch_fields: sap_set_batch_fields - field_writes: sap_set_field, sap_modify_cell, sap_set_textedit, sap_select_checkbox, sap_select_radio_button, sap_select_combobox_entry - all_writes: every write-tagged tool. Strict and noisy — many wr…

  • sap_set_current_cell

    Set the current (focused) cell in an ALV grid or table control. Useful before pressing toolbar buttons that act on the current cell.

  • sap_set_field

    Set (type/enter) a value into an input field on the current SAP screen. Works on GuiTextField and GuiCTextField input fields, and on dropdowns (GuiComboBox, ID prefix cmb): there value picks the entry by its key or its text, and the response reports the key and text selected. For filling in multiple fields of a form at once, use sap_set_batch_fields instead. After setting a field, you may need to press Enter to trigger validation. A value longer than the field (MaxLength) or a field that is not changeable is refused before writing: status 'rejected' and an error that says which, and the fiel…

  • sap_set_focus

    Set focus to any screen element by its ID. Some SAP actions require focus on a specific element before they work (e.g., F4 search help on a field). Use this to set focus before sending keys with sap_send_key.

  • sap_set_policy_profileread-only

    Switch the active policy profile for this session. Profiles control which tools are visible: - exploration: read-only tools (discover, inspect, screenshot) - operator: read + write tools (normal SAP interaction) - full: all tools including destructive (transaction execution) A session can only restrict, never widen: if the server was started with --profile, a request above that floor is capped to the floor. Default profile is 'full' unless the server was started with --profile.

  • sap_set_textedit

    Write text into a multiline text editor (GuiTextedit) — long texts, notes, comments, document text.

Signals

Stars
40
Forks
16
Open issues
0
Contributors
4
Weekly downloads
596
Last commit
Oct 23, 2026 (6 days ago)
Last release
Oct 17, 2026 (12 days ago)
Last package publish
Oct 17, 2026 (12 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.kts982/mcp-sap-gui
Version
0.5.2
Auth
No auth
Packages
pypi mcp-sap-gui
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

MCP Sap Gui. Agent Mart. https://agentmart.dev/connectors/kts982-mcp-sap-gui (last updated 2026-10-24)