MCP server for SAP GUI for Windows automation via the SAP GUI Scripting API.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in kts982/mcp-sap-gui
transport stdio · streamable-http · http counts 57 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
sap_click_tree_link
-
sap_collapse_tree_node
-
sap_connect
-
sap_connect_existing
-
sap_disconnect
-
sap_double_click_cell
-
sap_double_click_tree_item
-
sap_double_click_tree_node
-
sap_execute_transaction
-
sap_expand_tree_node
-
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
-
sap_get_session_info
-
sap_get_table_control_row_info
-
sap_get_toolbar_buttons
-
sap_get_transaction_guide
-
sap_get_tree_node_children
-
sap_get_workflow_guide
-
sap_handle_popup
-
sap_list_connections
-
sap_modify_cell
-
sap_press_alv_toolbar_button
-
sap_press_button
-
sap_press_column_header
-
sap_read_field
-
sap_read_shell_content
-
sap_read_table
-
sap_read_textedit
-
sap_read_tree
-
sap_screenshot
-
sap_scroll_table_control
-
sap_search_tree_nodes
-
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_policy_profile
-
sap_set_textedit
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 4eca873 · analyzer v28 · 1d ago
danger signals1
- dynamic code execution __import__() kts982-mcp-sap-gui-4eca873/tests/test_server.py :1459
return __builtins__.__import__(name, *args, **kwargs)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 21
filesystem 2
- fs kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/discovery.py :656
with open(filepath, "rb") as f: - fs kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1163
"""Check if a popup/modal dialog is open (wnd[1], wnd[2], etc.).
secrets 1
- secrets kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :660
kwargs["password"] = os.environ.get("SAP_PASSWORD") or None
tool registrations 57
- sap_connect kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :640
- sap_connect_existing kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :666
- sap_list_connections kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :682
- sap_get_session_info kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :690
- sap_execute_transaction kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :701
- sap_send_key kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :717
- sap_get_screen_info kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :746
- sap_read_field kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :767
- sap_set_field kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :777
- sap_press_button kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :790
- sap_select_menu kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :802
- sap_select_checkbox kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :814
- sap_select_radio_button kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :825
- sap_select_combobox_entry kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :836
- sap_select_tab kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :847
- sap_get_combobox_entries kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :858
- sap_set_batch_fields kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :867
- sap_read_textedit kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :897
- sap_set_textedit kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :908
- sap_set_focus kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :917
- sap_read_table kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :933
- sap_get_alv_toolbar kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :961
- sap_press_alv_toolbar_button kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :973
- sap_select_alv_context_menu_item kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :983
- sap_select_table_row kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1017
- sap_double_click_cell kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1029
- sap_modify_cell kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1042
- sap_set_current_cell kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1053
- sap_get_column_info kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1063
- sap_get_current_cell kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1074
- sap_scroll_table_control kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1083
- sap_get_table_control_row_info kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1095
- sap_select_all_table_control_columns kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1109
- sap_get_cell_info kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1123
- sap_press_column_header kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1133
- sap_select_all_rows kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1141
- sap_select_multiple_rows kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1149
- sap_get_popup_window kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1161
- sap_handle_popup kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1172
- sap_get_toolbar_buttons kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1199
- sap_read_shell_content kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1211
- sap_read_tree kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1225
- sap_expand_tree_node kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1238
- sap_collapse_tree_node kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1249
- sap_select_tree_node kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1257
- sap_double_click_tree_node kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1268
- sap_double_click_tree_item kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1280
- sap_click_tree_link kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1295
- sap_find_tree_node_by_path kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1309
- sap_search_tree_nodes kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1318
- sap_get_tree_node_children kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1338
- sap_get_screen_elements kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1358
- sap_screenshot kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1393
- sap_set_policy_profile kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1419
- sap_get_workflow_guide kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1453
- sap_get_transaction_guide kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1478
- sap_disconnect kts982-mcp-sap-gui-4eca873/src/mcp_sap_gui/server.py :1504
declared dependencies 8
- fastmcp@>=3.4.1,<4
- pywin32@>=306; platform_system ==
- pillow@>=10.0.0
- pytest@>=7.0.0
- pytest-asyncio@>=0.21.0
- mypy@>=1.5.0
- ruff@>=0.1.0
- claude-agent-sdk@>=0.1.0