Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

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.

−2 this week 43 Trust /100
Trust breakdown (6 categories)

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
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.

Install

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

# add to Claude Code
claude mcp add asattelmaier-gnome-ui-mcp -- docker run --rm -i ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0
# add to Codex CLI
codex mcp add asattelmaier-gnome-ui-mcp -- docker run --rm -i ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0
// opencode.json
{
  "$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
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  asattelmaier-gnome-ui-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"]
// mcp.json
{
  "mcpServers": {
    "asattelmaier-gnome-ui-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"
      ]
    }
  }
}
Changelog

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
Diagnostics

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

MCP tools — 115 exposed · ~6,671 tokens

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.

Tool Tokens
accessibility_tree ~127

Return the accessibility tree for the whole desktop or a specific application. Optionally filter by roles, states, or showing-only.

NameTypeReqDescription
app_nameOnly return the tree for this application.
filter_rolesOnly include nodes with these roles.
filter_statesOnly include nodes that have all these states.
include_actionsbooleanInclude available actions on each node.
include_textbooleanInclude text content of each node.
max_depthintegerMaximum depth to traverse.
showing_onlybooleanOnly 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.

NameTypeReqDescription
action_nameSpecific AT-SPI action to invoke.
element_idstringyesElement ID to activate.

No output schema declared.

No examples provided.

analyze_screenshot ~56

Analyze a screenshot using a vision language model.

NameTypeReqDescription
modelSpecific model to use.
promptstringyesAnalysis prompt.
providerstringVLM 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.

NameTypeReqDescription
app_nameRestrict search to this application.
expected_statesStates the element should have.
querystringyesText to search for.
roleExpected element role.
timeout_msintegerMaximum time to wait for element to appear.
unexpected_statesStates the element should not have.

No output schema declared.

No examples provided.

assert_text ~61

Assert that an element's text matches expected value.

NameTypeReqDescription
element_idstringyesElement ID to check text of.
expectedstringyesExpected text value.
matchstringMatch 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.

NameTypeReqDescription
dbl_clickbooleanSet true for a double click.
include_snapshotbooleanAttach a fresh snapshot of the result to the response.
uidstringyesElement 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.

NameTypeReqDescription
buttonstringMouse button.
click_countintegerNumber of clicks (1=single, 2=double, 3=triple).
xintegeryesX screen coordinate.
yintegeryesY 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.

NameTypeReqDescription
action_nameSpecific AT-SPI action to invoke.
buttonstringMouse button: left, middle, or right.
click_countintegerNumber of clicks (1=single, 2=double, 3=triple).
element_idstringyesElement 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.

NameTypeReqDescription
action_keystringyesAction key to invoke.
notification_idintegeryesNotification ID.

No output schema declared.

No examples provided.

click_text_ocr ~48

Find text on screen via OCR and click it.

NameTypeReqDescription
buttonstringMouse button: left, middle, or right.
targetstringyesText 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).

NameTypeReqDescription
mime_typestringMIME type to request.
selectionstringSelection 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.

NameTypeReqDescription
mime_typestringMIME type for the data.
selectionstringSelection type: clipboard or primary.
textstringyesText 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.

NameTypeReqDescription
app_namestringyesApplication 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.

NameTypeReqDescription
element_idstringyesElement ID to collapse.

No output schema declared.

No examples provided.

compare_screenshots ~86

Compare two screenshots using a vision language model.

NameTypeReqDescription
image_path_1stringyesPath to the first screenshot.
image_path_2stringyesPath to the second screenshot.
modelSpecific model to use.
promptCustom comparison prompt.
providerstringVLM provider: openrouter, anthropic, or ollama.

No output schema declared.

No examples provided.

compare_state ~43

Compare two desktop state snapshots and return changes.

NameTypeReqDescription
after_idstringyesSnapshot ID for after state.
before_idstringyesSnapshot 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.

NameTypeReqDescription
argsArguments to pass to the method.
bus_namestringyesD-Bus bus name.
interfacestringyesD-Bus interface name.
methodstringyesMethod to call.
object_pathstringyesD-Bus object path.
signatureD-Bus type signature for the arguments.
timeout_msintegerTimeout in milliseconds.

No output schema declared.

No examples provided.

dismiss_notification ~35

Dismiss a desktop notification by its ID via D-Bus CloseNotification.

NameTypeReqDescription
notification_idintegeryesNotification ID to dismiss.

No output schema declared.

No examples provided.

drag ~96

Drag from one screen position to another with smooth interpolation.

NameTypeReqDescription
buttonstringMouse button.
duration_msintegerDuration of the drag in milliseconds.
end_xintegeryesEnding X coordinate.
end_yintegeryesEnding Y coordinate.
start_xintegeryesStarting X coordinate.
start_yintegeryesStarting Y coordinate.
stepsintegerNumber of interpolation steps.

No output schema declared.

No examples provided.

element_at_point ~79

Return the deepest visible element at a given screen coordinate.

NameTypeReqDescription
app_nameRestrict search to this application.
include_click_targetbooleanInclude resolved click target in result.
max_depthintegerMaximum depth to search.
xintegeryesX screen coordinate.
yintegeryesY screen coordinate.

No output schema declared.

No examples provided.

expand_node ~33

Expand a tree or expander node if it is currently collapsed.

NameTypeReqDescription
element_idstringyesElement 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.

NameTypeReqDescription
pathstringyesFile 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.

NameTypeReqDescription
include_snapshotbooleanAttach a fresh snapshot of the result to the response.
uidstringyesElement uid from the latest snapshot.
valuestringyesText 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.

NameTypeReqDescription
fieldsarrayyesList of {uid, value} objects to fill, in order.
include_snapshotbooleanAttach 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.

NameTypeReqDescription
action_nameSpecific AT-SPI action to invoke.
app_nameRestrict search to this application.
bounds_onlybooleanOnly match elements that have screen bounds.
clickable_onlybooleanOnly match elements that are directly clickable.
max_depthintegerMaximum tree depth to search.
querystringyesText to search for.
roleOnly match elements with this role.
showing_onlybooleanOnly match elements that are currently showing.
within_element_idScope search to children of this element.
within_popupbooleanScope 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.

NameTypeReqDescription
app_nameRestrict search to this application.
bounds_onlybooleanOnly return elements that have screen bounds.
clickable_onlybooleanOnly return elements that are directly clickable.
max_depthintegerMaximum tree depth to search.
max_resultsintegerMaximum number of results to return.
querystringText to search for in element names and descriptions.
roleOnly return elements with this role (e.g. 'push button').
showing_onlybooleanOnly return elements that are currently showing.
within_element_idScope search to children of this element.
within_popupbooleanScope 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.

NameTypeReqDescription
heightHeight of search region.
targetstringyesText to search for.
widthWidth of search region.
xX coordinate of search region.
yY coordinate of search region.

No output schema declared.

No examples provided.

focus_element ~31

Focus an element through the AT-SPI component interface.

NameTypeReqDescription
element_idstringyesElement ID to focus.

No output schema declared.

No examples provided.

get_action_history ~31

Get recent automation actions with undo hints.

NameTypeReqDescription
last_nintegerNumber 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.

NameTypeReqDescription
element_idstringyesElement 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.

NameTypeReqDescription
element_idstringyesElement 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.

NameTypeReqDescription
element_idstringyesElement 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.

NameTypeReqDescription
element_idsarrayyesList 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.

NameTypeReqDescription
xintegeryesX screen coordinate.
yintegeryesY screen coordinate.

No output schema declared.

No examples provided.

get_pixel_color ~37

Get the pixel color at screen coordinates.

NameTypeReqDescription
xintegeryesX screen coordinate.
yintegeryesY screen coordinate.

No output schema declared.

No examples provided.

get_region_color ~60

Get the average color of a screen region.

NameTypeReqDescription
heightintegeryesHeight of region.
widthintegeryesWidth of region.
xintegeryesX coordinate of region.
yintegeryesY coordinate of region.

No output schema declared.

No examples provided.

get_table_cell ~49

Return information about a specific cell in a table element.

NameTypeReqDescription
colintegeryesColumn index.
element_idstringyesTable element ID.
rowintegeryesRow index.

No output schema declared.

No examples provided.

get_table_info ~34

Return table dimensions, column headers, and caption for a table element.

NameTypeReqDescription
element_idstringyesTable 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.

NameTypeReqDescription
element_idstringyesElement ID to get tooltip from.

No output schema declared.

No examples provided.

gsettings_get ~39

Read a GSettings key value.

NameTypeReqDescription
keystringyesKey name within the schema.
schemastringyesGSettings schema ID.

No output schema declared.

No examples provided.

gsettings_list_keys ~30

List all keys in a GSettings schema.

NameTypeReqDescription
schemastringyesGSettings schema ID.

No output schema declared.

No examples provided.

gsettings_reset ~42

Reset a GSettings key to its default value.

NameTypeReqDescription
keystringyesKey name within the schema.
schemastringyesGSettings schema ID.

No output schema declared.

No examples provided.

gsettings_set ~62

Write a GSettings key value.

NameTypeReqDescription
keystringyesKey name within the schema.
schemastringyesGSettings schema ID.
valuestring|integer|number|booleanyesValue 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.

NameTypeReqDescription
colorstringColor of the highlight rectangle.
element_idstringyesElement ID to highlight.
labelOptional 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).

NameTypeReqDescription
include_snapshotbooleanAttach a fresh snapshot of the result to the response.
uidstringyesElement uid from the latest snapshot.

No output schema declared.

No examples provided.

hover_element ~31

Move cursor to an element's center without clicking.

NameTypeReqDescription
element_idstringyesElement ID to hover over.

No output schema declared.

No examples provided.