github Python analyzed 4eca873

kts982/mcp-sap-gui

github

MCP server for SAP GUI for Windows automation via the SAP GUI Scripting API.

maintainer
kts982
license
MIT
first seen
2026-07-03
last seen
2026-07-06
releases · 30d
1
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution in kts982/mcp-sap-gui
capabilities 57 tools
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
skills & danger signals github-tarball
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

code evidence vv0.2.2 · github-tarball
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