io.github.kts982/mcp-sap-gui
PYPI · MCP-SAP-GUI
SAP GUI for Windows automation for AI agents - 59 structured tools via SAP GUI Scripting API
Available components
Last scanned (7 hours ago)
Scores higher than 93% of PyPI servers
Category Workflow Automation
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 1 of 16 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to kts982/mcp-sap-gui). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 7 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability82
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 7918 tokens (~131/item across 60 items; 59 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management68
- Stability check failed: the tool surface changed between 0.5.1 and 0.6.0: 1 tool removals, 0 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage73
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 4% of tool parameters carry a description.Partial
- Structured output schemas are declared (97% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 61 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 62 to 65.
- 3 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 2 Nov 26 +10
- Malware scan: unverified → pass ▲ security
- 1 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 31 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 28 Oct 26 −1
- Stability: pass → fail ▼ security
- Malware scan: unverified → pass ▲ security
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- Package version: 0.5.4 → 0.6.0 functional
- 27 Oct 26 −14
- Malware scan: pass → unverified ▼ security
- Stability: 0.97 → pass security
- Package version: 0.5.2 → 0.5.4 functional
- Package version: 0.5.2 → 0.5.3 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed pypi/mcp-sap-gui@0.6.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | kts982/mcp-sap-gui |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/kts982/mcp-sap-gui/.github/workflows/release.yml@refs/tags/v0.6.0 |
| Rekor log index | 3544303571 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:b3f22d07242bfe06151694367413299470567af935b75417d0b783e3f369296c |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 16 packages
| Packages resolved | 16 |
|---|---|
| Stale | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
sap_select_table_row Sap Select Table Row ~74
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.
| Name | Type | Req | Description |
|---|---|---|---|
| row | integer | yes | – |
| table_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
sap_select_tree_node Sap Select Tree Node ~59
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.
| Name | Type | Req | Description |
|---|---|---|---|
| node_key | string | yes | – |
| tree_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
sap_send_key Sap Send Key ~168
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.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
sap_set_batch_fields Sap Set Batch Fields ~302
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 as an error.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | object | yes | Dict mapping field_id -> value. |
| skip_readonly | boolean | – | Silently skip fields whose element reports Changeable == False instead of counting them as failures. |
| validate | boolean | – | Press Enter after setting fields and return status-bar feedback. Skipped when no fields were actually set, and when any field failed (`failed` > 0) unless validate_partial=true. `validation.performed… |
| validate_partial | boolean | – | With validate=true, press Enter even when some fields failed. |
| verbose | boolean | – | List every field in `results`, not only the failures. |
Structured output declared, but exposes no named fields.
No examples provided.
sap_set_confirmation_points Sap Set Confirmation Points ~373
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 write tools only select, scroll or navigate, and they will all prompt. Under all_writes, sap_send_key("F11") asks twice: once for the category and once for the unchanged save gate. - attach: sap_connect_existing lets the user pick the SAP session in a dialog, unless the call names a system with exactly one open session. 'save' (F11 / Save key, Save toolbar button) is always on and cannot be turned off. Points set by the server's --confirm flag cannot be removed either. Adding a point is silent; *removing* one asks the user first, and a declined removal keeps the point. Confirmation prompts block until the user answers, and on clients without elicitation support the gated call fails instead of running unconfirmed (same fail-closed rule as the save gate). On such a client points also cannot be removed, so activating one there blocks that whole category for the rest of the session. Call sap_preview before a gated action so the user can see the screen and pending values first.
| Name | Type | Req | Description |
|---|---|---|---|
| points | array | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
sap_set_current_cell Sap Set Current Cell ~60
Set the current (focused) cell in an ALV grid or table control. Useful before pressing toolbar buttons that act on the current cell.
| Name | Type | Req | Description |
|---|---|---|---|
| column | string | yes | – |
| grid_id | string | yes | – |
| row | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
sap_set_field Sap Set Field ~173
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 field keeps its content.
| Name | Type | Req | Description |
|---|---|---|---|
| field_id | string | yes | – |
| value | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
sap_set_focus Sap Set Focus ~65
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.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
sap_set_textedit Sap Set Textedit ~49
Write text into a multiline text editor (GuiTextedit) — long texts, notes, comments, document text.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | – |
| textedit_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the io.github.kts982/mcp-sap-gui server?
io.github.kts982/mcp-sap-gui runs locally as a PyPI package, launched with uvx mcp-sap-gui. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · mcp-sap-gui
claude mcp add kts982-mcp-sap-gui -- uvx mcp-sap-gui
What is the io.github.kts982/mcp-sap-gui server?
io.github.kts982/mcp-sap-gui is listed in the public MCP registry as io.github.kts982/mcp-sap-gui. SAP GUI for Windows automation for AI agents - 59 structured tools via SAP GUI Scripting API. This page covers its PyPI package (mcp-sap-gui).
Is the io.github.kts982/mcp-sap-gui server safe to use?
io.github.kts982/mcp-sap-gui scores 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.kts982/mcp-sap-gui server expose?
io.github.kts982/mcp-sap-gui exposes 59 tools: sap_connect, sap_connect_existing, sap_list_connections, sap_get_session_info, sap_execute_transaction, and 54 more. Their descriptions and schemas cost roughly 7,097 tokens of context every time the server is loaded.
Is the io.github.kts982/mcp-sap-gui server still maintained?
io.github.kts982/mcp-sap-gui is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.kts982/mcp-sap-gui server under?
io.github.kts982/mcp-sap-gui declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.