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.
accessibility_tree ~127
Return the accessibility tree for the whole desktop or a specific application. Optionally filter by roles, states, or showing-only.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Only return the tree for this application. |
| filter_roles | — | — | Only include nodes with these roles. |
| filter_states | — | — | Only include nodes that have all these states. |
| include_actions | boolean | — | Include available actions on each node. |
| include_text | boolean | — | Include text content of each node. |
| max_depth | integer | — | Maximum depth to traverse. |
| showing_only | boolean | — | Only include nodes that are currently showing. |
No output schema declared.
No examples provided.
activate_element ~49
Activate an element with action first, then focus plus keyboard, then mouse fallback.
| Name | Type | Req | Description |
|---|---|---|---|
| action_name | — | — | Specific AT-SPI action to invoke. |
| element_id | string | yes | Element ID to activate. |
No output schema declared.
No examples provided.
analyze_screenshot ~56
Analyze a screenshot using a vision language model.
| Name | Type | Req | Description |
|---|---|---|---|
| model | — | — | Specific model to use. |
| prompt | string | yes | Analysis prompt. |
| provider | string | — | VLM provider: openrouter, anthropic, or ollama. |
No output schema declared.
No examples provided.
assert_element ~95
Assert that an element exists with expected states. Returns pass/fail with structured checks.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Restrict search to this application. |
| expected_states | — | — | States the element should have. |
| query | string | yes | Text to search for. |
| role | — | — | Expected element role. |
| timeout_ms | integer | — | Maximum time to wait for element to appear. |
| unexpected_states | — | — | States the element should not have. |
No output schema declared.
No examples provided.
assert_text ~61
Assert that an element's text matches expected value.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to check text of. |
| expected | string | yes | Expected text value. |
| match | string | — | Match mode: exact, contains, startswith, or regex. |
No output schema declared.
No examples provided.
clear_boundaries ~13
Remove automation boundaries.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
click ~77
Click the element referenced by a uid from the latest snapshot. Auto-waits for the UI to settle and reports effect verification.
| Name | Type | Req | Description |
|---|---|---|---|
| dbl_click | boolean | — | Set true for a double click. |
| include_snapshot | boolean | — | Attach a fresh snapshot of the result to the response. |
| uid | string | yes | Element uid from the latest snapshot. |
No output schema declared.
No examples provided.
click_at ~78
Click at absolute screen coordinates and report input injection plus any observable effect verification.
| Name | Type | Req | Description |
|---|---|---|---|
| button | string | — | Mouse button. |
| click_count | integer | — | Number of clicks (1=single, 2=double, 3=triple). |
| x | integer | yes | X screen coordinate. |
| y | integer | yes | Y screen coordinate. |
No output schema declared.
No examples provided.
click_element ~93
Click an element or its resolved clickable ancestor, and report input injection plus observable effect verification.
| Name | Type | Req | Description |
|---|---|---|---|
| action_name | — | — | Specific AT-SPI action to invoke. |
| button | string | — | Mouse button: left, middle, or right. |
| click_count | integer | — | Number of clicks (1=single, 2=double, 3=triple). |
| element_id | string | yes | Element ID to click. |
No output schema declared.
No examples provided.
click_notification_action ~45
Invoke an action on a desktop notification by its ID and action key.
| Name | Type | Req | Description |
|---|---|---|---|
| action_key | string | yes | Action key to invoke. |
| notification_id | integer | yes | Notification ID. |
No output schema declared.
No examples provided.
click_text_ocr ~48
Find text on screen via OCR and click it.
| Name | Type | Req | Description |
|---|---|---|---|
| button | string | — | Mouse button: left, middle, or right. |
| target | string | yes | Text to find and click. |
No output schema declared.
No examples provided.
clipboard_read ~54
Read the Wayland clipboard contents. Supports custom MIME types for reading binary data (returned as base64).
| Name | Type | Req | Description |
|---|---|---|---|
| mime_type | string | — | MIME type to request. |
| selection | string | — | Selection type: clipboard or primary. |
No output schema declared.
No examples provided.
clipboard_write ~71
Write to the Wayland clipboard. Supports custom MIME types. For binary types, pass base64-encoded data as text.
| Name | Type | Req | Description |
|---|---|---|---|
| mime_type | string | — | MIME type for the data. |
| selection | string | — | Selection type: clipboard or primary. |
| text | string | yes | Text to write to clipboard. |
No output schema declared.
No examples provided.
close_app ~35
Gracefully close all windows of an application by sending Alt+F4.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | string | yes | Application name to close. |
No output schema declared.
No examples provided.
close_window ~19
Close the currently focused window via Alt+F4.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
collapse_node ~33
Collapse a tree or expander node if it is currently expanded.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to collapse. |
No output schema declared.
No examples provided.
compare_screenshots ~86
Compare two screenshots using a vision language model.
| Name | Type | Req | Description |
|---|---|---|---|
| image_path_1 | string | yes | Path to the first screenshot. |
| image_path_2 | string | yes | Path to the second screenshot. |
| model | — | — | Specific model to use. |
| prompt | — | — | Custom comparison prompt. |
| provider | string | — | VLM provider: openrouter, anthropic, or ollama. |
No output schema declared.
No examples provided.
compare_state ~43
Compare two desktop state snapshots and return changes.
| Name | Type | Req | Description |
|---|---|---|---|
| after_id | string | yes | Snapshot ID for after state. |
| before_id | string | yes | Snapshot ID for before state. |
No output schema declared.
No examples provided.
dbus_call ~107
Call any D-Bus method on the session bus. Use with caution.
| Name | Type | Req | Description |
|---|---|---|---|
| args | — | — | Arguments to pass to the method. |
| bus_name | string | yes | D-Bus bus name. |
| interface | string | yes | D-Bus interface name. |
| method | string | yes | Method to call. |
| object_path | string | yes | D-Bus object path. |
| signature | — | — | D-Bus type signature for the arguments. |
| timeout_ms | integer | — | Timeout in milliseconds. |
No output schema declared.
No examples provided.
dismiss_notification ~35
Dismiss a desktop notification by its ID via D-Bus CloseNotification.
| Name | Type | Req | Description |
|---|---|---|---|
| notification_id | integer | yes | Notification ID to dismiss. |
No output schema declared.
No examples provided.
drag ~96
Drag from one screen position to another with smooth interpolation.
| Name | Type | Req | Description |
|---|---|---|---|
| button | string | — | Mouse button. |
| duration_ms | integer | — | Duration of the drag in milliseconds. |
| end_x | integer | yes | Ending X coordinate. |
| end_y | integer | yes | Ending Y coordinate. |
| start_x | integer | yes | Starting X coordinate. |
| start_y | integer | yes | Starting Y coordinate. |
| steps | integer | — | Number of interpolation steps. |
No output schema declared.
No examples provided.
element_at_point ~79
Return the deepest visible element at a given screen coordinate.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Restrict search to this application. |
| include_click_target | boolean | — | Include resolved click target in result. |
| max_depth | integer | — | Maximum depth to search. |
| x | integer | yes | X screen coordinate. |
| y | integer | yes | Y screen coordinate. |
No output schema declared.
No examples provided.
expand_node ~33
Expand a tree or expander node if it is currently collapsed.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to expand. |
No output schema declared.
No examples provided.
file_dialog_set_path ~52
Set a file path in a GTK file dialog by sending Ctrl+L to activate the location entry, typing the path, and pressing Return.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | File path to set in the dialog. |
No output schema declared.
No examples provided.
fill ~103
Type text into an input, or set a checkbox/radio/switch from a boolean value (true/false), for the element referenced by a uid from the latest snapshot. Auto-waits for the UI to settle.
| Name | Type | Req | Description |
|---|---|---|---|
| include_snapshot | boolean | — | Attach a fresh snapshot of the result to the response. |
| uid | string | yes | Element uid from the latest snapshot. |
| value | string | yes | Text to type, or 'true'/'false' for toggles. |
No output schema declared.
No examples provided.
fill_form ~91
Fill multiple elements in one call from a list of {uid, value} objects (uids from the latest snapshot). Prefer this over repeated fill calls for forms: fewer round trips. Auto-waits for the UI to settle.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | yes | List of {uid, value} objects to fill, in order. |
| include_snapshot | boolean | — | Attach a fresh snapshot of the result to the response. |
No output schema declared.
No examples provided.
find_and_activate ~161
Find the best matching element and activate it, optionally scoped to a subtree or visible popup.
| Name | Type | Req | Description |
|---|---|---|---|
| action_name | — | — | Specific AT-SPI action to invoke. |
| 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. |
| max_depth | integer | — | Maximum tree depth to search. |
| query | string | yes | Text to search for. |
| role | — | — | Only match elements with this role. |
| showing_only | boolean | — | Only match elements that are currently showing. |
| 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.
find_elements ~181
Search accessible elements by text and optional role filter, with optional clickable and bounds filters, optionally scoped to a subtree or visible popup.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Restrict search to this application. |
| bounds_only | boolean | — | Only return elements that have screen bounds. |
| clickable_only | boolean | — | Only return elements that are directly clickable. |
| max_depth | integer | — | Maximum tree depth to search. |
| max_results | integer | — | Maximum number of results to return. |
| query | string | — | Text to search for in element names and descriptions. |
| role | — | — | Only return elements with this role (e.g. 'push button'). |
| showing_only | boolean | — | Only return elements that are currently showing. |
| 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.
find_text_ocr ~70
Find text on screen via OCR and return its coordinates.
| Name | Type | Req | Description |
|---|---|---|---|
| height | — | — | Height of search region. |
| target | string | yes | Text to search for. |
| width | — | — | Width of search region. |
| x | — | — | X coordinate of search region. |
| y | — | — | Y coordinate of search region. |
No output schema declared.
No examples provided.
focus_element ~31
Focus an element through the AT-SPI component interface.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to focus. |
No output schema declared.
No examples provided.
get_action_history ~31
Get recent automation actions with undo hints.
| Name | Type | Req | Description |
|---|---|---|---|
| last_n | integer | — | Number of recent actions to return. |
No output schema declared.
No examples provided.
get_element_path ~39
Return the ancestry chain from root to a given element as a list of nodes.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to trace path for. |
No output schema declared.
No examples provided.
get_element_properties ~45
Return extended AT-SPI properties for an element: value, selection, relations, attributes, and image info.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to get properties for. |
No output schema declared.
No examples provided.
get_element_text ~47
Return detailed text information for an element: full text, caret offset, selections, and text attributes at the caret position.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to get text from. |
No output schema declared.
No examples provided.
get_elements_by_ids ~44
Resolve multiple element IDs in one call, returning summaries for found elements and a list of missing IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| element_ids | array | yes | List of element IDs to resolve. |
No output schema declared.
No examples provided.
get_focused_element ~18
Return metadata about the currently focused element.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_keyboard_layout ~18
Read the active keyboard layout from GSettings.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_monitor_for_point ~39
Return which monitor contains the given screen coordinates.
| Name | Type | Req | Description |
|---|---|---|---|
| x | integer | yes | X screen coordinate. |
| y | integer | yes | Y screen coordinate. |
No output schema declared.
No examples provided.
get_pixel_color ~37
Get the pixel color at screen coordinates.
| Name | Type | Req | Description |
|---|---|---|---|
| x | integer | yes | X screen coordinate. |
| y | integer | yes | Y screen coordinate. |
No output schema declared.
No examples provided.
get_region_color ~60
Get the average color of a screen region.
| Name | Type | Req | Description |
|---|---|---|---|
| height | integer | yes | Height of region. |
| width | integer | yes | Width of region. |
| x | integer | yes | X coordinate of region. |
| y | integer | yes | Y coordinate of region. |
No output schema declared.
No examples provided.
get_table_cell ~49
Return information about a specific cell in a table element.
| Name | Type | Req | Description |
|---|---|---|---|
| col | integer | yes | Column index. |
| element_id | string | yes | Table element ID. |
| row | integer | yes | Row index. |
No output schema declared.
No examples provided.
get_table_info ~34
Return table dimensions, column headers, and caption for a table element.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Table element ID. |
No output schema declared.
No examples provided.
get_tooltip_text ~51
Get the tooltip text for an element. Checks the element's description first, then looks for tooltip relations in the AT-SPI tree.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to get tooltip from. |
No output schema declared.
No examples provided.
gsettings_get ~39
Read a GSettings key value.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Key name within the schema. |
| schema | string | yes | GSettings schema ID. |
No output schema declared.
No examples provided.
gsettings_list_keys ~30
List all keys in a GSettings schema.
| Name | Type | Req | Description |
|---|---|---|---|
| schema | string | yes | GSettings schema ID. |
No output schema declared.
No examples provided.
gsettings_reset ~42
Reset a GSettings key to its default value.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Key name within the schema. |
| schema | string | yes | GSettings schema ID. |
No output schema declared.
No examples provided.
gsettings_set ~62
Write a GSettings key value.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Key name within the schema. |
| schema | string | yes | GSettings schema ID. |
| value | string|integer|number|boolean | yes | Value to set (string, number, or boolean). |
No output schema declared.
No examples provided.
highlight_element ~58
Take a screenshot with a colored rectangle highlighting an element for visual debugging.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | — | Color of the highlight rectangle. |
| element_id | string | yes | Element ID to highlight. |
| label | — | — | Optional label to display on the highlight. |
No output schema declared.
No examples provided.
hover ~64
Move the pointer over the element referenced by a uid from the latest snapshot (e.g. to reveal a hover menu or tooltip).
| Name | Type | Req | Description |
|---|---|---|---|
| include_snapshot | boolean | — | Attach a fresh snapshot of the result to the response. |
| uid | string | yes | Element uid from the latest snapshot. |
No output schema declared.
No examples provided.
hover_element ~31
Move cursor to an element's center without clicking.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to hover over. |
No output schema declared.
No examples provided.