GNOME UI MCP
OCI · GHCR.IO/ASATTELMAIER/GNOME-UI-MCP:0.5.0 · SCANNED AUG 3
GNOME Wayland desktop automation via AT-SPI discovery and Mutter input.
Available components
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 →
Supply Chain Security0
- Malware scan not yet available for this package.Unverified
- CVE data not yet available for this package.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency-health data not yet available.Unverified
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 38 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 6689 tokens (~58/item across 115 items; 115 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
oci · ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0
claude mcp add asattelmaier-gnome-ui-mcp -- docker run --rm -i ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0
codex mcp add asattelmaier-gnome-ui-mcp -- docker run --rm -i ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"asattelmaier-gnome-ui-mcp": {
"type": "local",
"command": [
"docker",
"run",
"--rm",
"-i",
"ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"
],
"enabled": true
}
}
} mcp_servers:
asattelmaier-gnome-ui-mcp:
command: "docker"
args: ["run", "--rm", "-i", "ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"] {
"mcpServers": {
"asattelmaier-gnome-ui-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"
]
}
}
} 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.
- 3 Aug 26 +4
- Stability: unverified → 0.23 ▲ functional
- 31 Jul 26 −6
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Jul 26 +34
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: excellent functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: pass functional
- First check of Schema quality: fail functional
- 26 Jul 26 11
First indexed and scored.
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → 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 3 Aug 2026 · Analysed oci/ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0
Provenance none
Ecosystem: oci · Outcome: none
Reason: no_attestation
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.
toggle_window_state ~27
Toggle the focused window's state.
| Name | Type | Req | Description |
|---|---|---|---|
| state | string | — | Window state to toggle. |
No output schema declared.
No examples provided.
touch_rotate ~108
Perform a two-finger rotation gesture around a center point. Angles are in radians. Two touch slots trace circular arcs on opposite sides.
| Name | Type | Req | Description |
|---|---|---|---|
| center_x | integer | yes | Center X coordinate. |
| center_y | integer | yes | Center Y coordinate. |
| duration_ms | integer | — | Duration of the gesture in milliseconds. |
| end_angle | number | yes | End angle in radians. |
| radius | number | yes | Radius of the rotation arc. |
| start_angle | number | yes | Start angle in radians. |
No output schema declared.
No examples provided.
type_into ~65
Find an input field by label text and type into it. AT-SPI first, OCR fallback.
| Name | Type | Req | Description |
|---|---|---|---|
| label | string | yes | Label text of the input field. |
| submit | boolean | — | Press Enter after typing. |
| text | string | yes | Text to type into the field. |
No output schema declared.
No examples provided.
type_text ~26
Type text into the currently focused element.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | Text to type. |
No output schema declared.
No examples provided.
unsubscribe_events ~28
Unsubscribe from AT-SPI events.
| Name | Type | Req | Description |
|---|---|---|---|
| subscription_id | string | yes | Subscription ID to unsubscribe. |
No output schema declared.
No examples provided.
visible_shell_popups ~20
Return visible GNOME Shell popup or menu containers.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
visual_diff ~60
Compare two screenshots and return changed regions.
| Name | Type | Req | Description |
|---|---|---|---|
| image_path_1 | string | yes | Path to the first image. |
| image_path_2 | string | yes | Path to the second image. |
| threshold | integer | — | Color difference threshold (0-255). |
No output schema declared.
No examples provided.
wait_and_act ~157
Wait for an element to appear, then act on it. Atomic wait+act in one MCP call.
| Name | Type | Req | Description |
|---|---|---|---|
| poll_interval_ms | integer | — | Polling interval in milliseconds. |
| then_action | string | — | Action to perform: activate, click, focus, or set_text. |
| then_query | — | — | Override query for the action target. |
| then_role | — | — | Override role for the action target. |
| then_text | — | — | Text to set (for set_text action). |
| timeout_ms | integer | — | Maximum time to wait in milliseconds. |
| wait_app_name | — | — | Application filter for the wait phase. |
| wait_query | string | yes | Text to wait for in element names. |
| wait_role | — | — | Role filter for the wait phase. |
No output schema declared.
No examples provided.
wait_for_app ~79
Wait for an application to appear in the AT-SPI tree.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | string | yes | Application name to wait for. |
| poll_interval_ms | integer | — | Polling interval in milliseconds. |
| require_window | boolean | — | Require at least one window to be open. |
| timeout_ms | integer | — | Maximum time to wait in milliseconds. |
No output schema declared.
No examples provided.
wait_for_element ~171
Poll the accessibility tree until a matching element appears or the timeout expires, optionally scoped to a subtree or visible popup.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Restrict search to this application. |
| bounds_only | boolean | — | Only match elements that have screen bounds. |
| clickable_only | boolean | — | Only match elements that are directly clickable. |
| poll_interval_ms | integer | — | Polling interval in milliseconds. |
| query | string | yes | Text to search for in element names. |
| role | — | — | Only match elements with this role. |
| showing_only | boolean | — | Only match elements that are currently showing. |
| timeout_ms | integer | — | Maximum time to wait in milliseconds. |
| within_element_id | — | — | Scope search to children of this element. |
| within_popup | boolean | — | Scope search to the currently visible popup. |
No output schema declared.
No examples provided.
wait_for_element_gone ~173
Poll the accessibility tree until a matching element disappears or the timeout expires, optionally scoped to a subtree or visible popup.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Restrict search to this application. |
| bounds_only | boolean | — | Only match elements that have screen bounds. |
| clickable_only | boolean | — | Only match elements that are directly clickable. |
| poll_interval_ms | integer | — | Polling interval in milliseconds. |
| query | string | yes | Text to search for in element names. |
| role | — | — | Only match elements with this role. |
| showing_only | boolean | — | Only match elements that are currently showing. |
| timeout_ms | integer | — | Maximum time to wait in milliseconds. |
| within_element_id | — | — | Scope search to children of this element. |
| within_popup | boolean | — | Scope search to the currently visible popup. |
No output schema declared.
No examples provided.
wait_for_popup_count ~82
Poll the GNOME Shell until the number of visible popups matches a count.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | Expected number of popups. |
| max_depth | integer | — | Maximum tree depth to search for popups. |
| poll_interval_ms | integer | — | Polling interval in milliseconds. |
| timeout_ms | integer | — | Maximum time to wait in milliseconds. |
No output schema declared.
No examples provided.
wait_for_shell_settled ~84
Poll until GNOME Shell popup state has stayed unchanged for a short time.
| Name | Type | Req | Description |
|---|---|---|---|
| max_depth | integer | — | Maximum tree depth for popup detection. |
| poll_interval_ms | integer | — | Polling interval in milliseconds. |
| stable_for_ms | integer | — | How long shell must be stable. |
| timeout_ms | integer | — | Maximum time to wait in milliseconds. |
No output schema declared.
No examples provided.
wait_for_window ~79
Wait for a window to appear.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Restrict search to this application. |
| poll_interval_ms | integer | — | Polling interval in milliseconds. |
| query | string | yes | Window title text to match. |
| role | — | — | Only match windows with this role. |
| timeout_ms | integer | — | Maximum time to wait in milliseconds. |
No output schema declared.
No examples provided.
wayland_protocols ~30
List Wayland protocols supported by the compositor.
| Name | Type | Req | Description |
|---|---|---|---|
| filter_protocol | — | — | Filter protocols by substring match. |
No output schema declared.
No examples provided.