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
key_combo ~137

Send a key combination such as ctrl+c, alt+F4, ctrl+shift+t, or super. Modifiers are pressed in order before the principal key and released in reverse order after. Optionally verify the effect against a target element.

NameTypeReqDescription
combostringyesKey combination string (e.g. ctrl+c, alt+F4).
element_idOptional element to verify effect against.
poll_interval_msintegerPolling interval for settle check.
settle_timeout_msintegerMax time to wait for shell to settle.
stable_for_msintegerHow long shell must be stable.

No output schema declared.

No examples provided.

kill_app ~41

Forcefully kill an application by PID. Sends SIGTERM first, then SIGKILL if still alive.

NameTypeReqDescription
app_namestringyesApplication name to kill.

No output schema declared.

No examples provided.

launch_app ~36

Launch an application by desktop ID.

NameTypeReqDescription
desktop_idstringyesDesktop file ID (e.g. org.gnome.Calculator.desktop).

No output schema declared.

No examples provided.

launch_with_logging ~39

Launch an application with stdout/stderr capture. Warning: executes the specified command on the host system.

NameTypeReqDescription
commandstringyesCommand to execute.

No output schema declared.

No examples provided.

list_applications ~21

List applications currently visible through the AT-SPI desktop tree.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_desktop_apps ~52

List installed desktop applications.

NameTypeReqDescription
include_hiddenbooleanInclude hidden applications.
max_resultsintegerMaximum number of results to return.
querystringSearch query to filter applications.

No output schema declared.

No examples provided.

list_key_names ~36

List symbolic key names by category.

NameTypeReqDescription
categorystringKey category: navigation, function, modifier, editing, or all.

No output schema declared.

No examples provided.

list_monitors ~18

List all connected monitors with geometry and properties.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_windows ~31

List top-level windows across the desktop or for one application.

NameTypeReqDescription
app_nameFilter windows by application name.

No output schema declared.

No examples provided.

list_workspaces ~17

List all workspaces with their windows.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mouse_move ~51

Move the mouse cursor to absolute screen coordinates without clicking. Useful for hover effects, tooltips, and drag preparation.

NameTypeReqDescription
xintegeryesX screen coordinate.
yintegeryesY screen coordinate.

No output schema declared.

No examples provided.

mouse_move_relative ~57

Move the mouse cursor by a relative offset (dx, dy) from its current position. Useful when absolute coordinates are not known.

NameTypeReqDescription
dxnumberyesHorizontal offset in pixels.
dynumberyesVertical offset in pixels.

No output schema declared.

No examples provided.

mouse_move_smooth ~94

Smoothly move the mouse cursor from one position to another over a given duration. Interpolates intermediate positions for natural-looking movement.

NameTypeReqDescription
duration_msintegerDuration of the movement in milliseconds.
end_xintegeryesEnding X coordinate.
end_yintegeryesEnding Y coordinate.
start_xintegeryesStarting X coordinate.
start_yintegeryesStarting Y coordinate.

No output schema declared.

No examples provided.

move_window ~43

Move the focused window by a pixel offset using keyboard move mode.

NameTypeReqDescription
dxintegeryesHorizontal offset in pixels.
dyintegeryesVertical offset in pixels.

No output schema declared.

No examples provided.

move_window_to_workspace ~29

Move the focused window to an adjacent workspace.

NameTypeReqDescription
directionstringDirection to move.

No output schema declared.

No examples provided.

navigate_menu ~60

Navigate a menu hierarchy by sequentially activating each item in the path. Waits for sub-menus to appear between levels.

NameTypeReqDescription
app_nameApplication to search menus in.
menu_patharrayyesList of menu item names to navigate through.

No output schema declared.

No examples provided.

notification_monitor_read ~27

Read captured notifications since monitoring started.

NameTypeReqDescription
clearbooleanClear notifications after reading.

No output schema declared.

No examples provided.

notification_monitor_start ~14

Start monitoring desktop notifications.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

notification_monitor_stop ~14

Stop monitoring desktop notifications.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ocr_screen ~61

Extract text from the screen or a region using OCR. Use for apps with poor accessibility.

NameTypeReqDescription
heightHeight of region.
widthWidth of region.
xX coordinate of region.
yY coordinate of region.

No output schema declared.

No examples provided.

ping ~16

Return basic health information for the desktop backend.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

poll_events ~57

Poll for captured AT-SPI events.

NameTypeReqDescription
max_eventsintegerMaximum number of events to return.
subscription_idstringyesSubscription ID from subscribe_events.
timeout_msintegerMaximum time to wait for events.

No output schema declared.

No examples provided.

press_key ~113

Press and release a key by GDK key name, optionally verifying the effect against a target element and settled GNOME Shell popup state.

NameTypeReqDescription
element_idOptional element to verify effect against.
key_namestringyesGDK key name (e.g. Return, Escape).
poll_interval_msintegerPolling interval for settle check.
settle_timeout_msintegerMax time to wait for shell to settle.
stable_for_msintegerHow long shell must be stable.

No output schema declared.

No examples provided.

read_app_log ~48

Read stdout/stderr of a launched application by PID.

NameTypeReqDescription
last_n_linesintegerNumber of lines from the end (0 = all).
pidintegeryesProcess ID.

No output schema declared.

No examples provided.

resize_window ~43

Resize the focused window by a pixel delta using keyboard resize mode.

NameTypeReqDescription
dhintegeryesHeight change in pixels.
dwintegeryesWidth change in pixels.

No output schema declared.

No examples provided.

resolve_click_target ~40

Resolve the nearest actionable ancestor for an element so labels can map to clickable parents.

NameTypeReqDescription
element_idstringyesElement ID to resolve click target for.

No output schema declared.

No examples provided.

screen_record_start ~81

Start recording the screen or a region to video.

NameTypeReqDescription
draw_cursorbooleanInclude mouse cursor in recording.
framerateintegerRecording framerate.
heightHeight of recording region.
widthWidth of recording region.
xX coordinate of recording region.
yY coordinate of recording region.

No output schema declared.

No examples provided.

screen_record_stop ~55

Stop recording and optionally convert to GIF.

NameTypeReqDescription
gif_fpsintegerGIF frames per second.
gif_widthintegerGIF width in pixels.
to_gifbooleanConvert recording to GIF.

No output schema declared.

No examples provided.

screenshot ~60

Capture the current GNOME desktop to a PNG file. Optionally return the image as a base64-encoded string.

NameTypeReqDescription
filenameOutput file path. Auto-generated if omitted.
return_base64booleanInclude the image in the response content.

No output schema declared.

No examples provided.

screenshot_area ~79

Capture a rectangular region of the screen to a PNG file.

NameTypeReqDescription
filenameOutput file path. Auto-generated if omitted.
heightintegeryesHeight of the region.
widthintegeryesWidth of the region.
xintegeryesX coordinate of the region.
yintegeryesY coordinate of the region.

No output schema declared.

No examples provided.

screenshot_window ~92

Capture a window to a PNG file. Focuses the window by element_id first, then captures the currently focused window via D-Bus ScreenshotWindow.

NameTypeReqDescription
filenameOutput file path. Auto-generated if omitted.
include_cursorbooleanInclude mouse cursor in screenshot.
include_framebooleanInclude window frame decorations.
window_element_idstringyesElement ID of the window to capture.

No output schema declared.

No examples provided.

scroll ~75

Scroll the mouse wheel at the current pointer position or at given screen coordinates. Use direction and clicks for discrete mouse-wheel steps.

NameTypeReqDescription
clicksintegerNumber of discrete scroll steps.
directionstringScroll direction.
xOptional X coordinate to scroll at.
yOptional Y coordinate to scroll at.

No output schema declared.

No examples provided.

scroll_smooth ~81

Perform smooth (non-discrete) scrolling at a given position. Use dx/dy for horizontal/vertical scroll amounts as floating-point values.

NameTypeReqDescription
dxnumberHorizontal scroll amount.
dynumberVertical scroll amount.
xintegeryesX coordinate to scroll at.
yintegeryesY coordinate to scroll at.

No output schema declared.

No examples provided.

scroll_to_element ~62

Scroll an element into view if it is off-screen.

NameTypeReqDescription
element_idstringyesElement ID to scroll to.
max_scrollsintegerMaximum number of scroll attempts.
scroll_clicksintegerNumber of scroll clicks per attempt.

No output schema declared.

No examples provided.

select_element_text ~74

Select text within an element using the AT-SPI Text interface. Provide start_offset and end_offset for a range, or omit both to select all text.

NameTypeReqDescription
element_idstringyesElement ID containing text.
end_offsetEnd offset for text selection.
start_offsetStart offset for text selection.

No output schema declared.

No examples provided.

select_option ~60

Select a child item within a container element via the AT-SPI Selection interface. Use for combo boxes, list boxes, and menus.

NameTypeReqDescription
child_indexintegeryesIndex of the child to select.
element_idstringyesContainer element ID.

No output schema declared.

No examples provided.

select_window ~57

Choose a window (from list_windows) as the implicit scope for take_snapshot, and try to focus it. Subsequent take_snapshot calls without a 'window' argument capture this window.

NameTypeReqDescription
windowstringyesWindow id from list_windows.

No output schema declared.

No examples provided.

session_info ~16

Get information about the current isolated session.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

session_start ~59

Start an isolated GNOME Shell session via gnome-shell --headless. Creates a private D-Bus session with its own display and input.

NameTypeReqDescription
heightintegerDisplay height in pixels.
widthintegerDisplay width in pixels.

No output schema declared.

No examples provided.

session_stop ~16

Stop the isolated GNOME Shell session.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

set_boundaries ~42

Restrict automation to a specific application.

NameTypeReqDescription
allow_global_keysKey combos allowed outside the boundary.
app_nameApplication name to restrict automation to.

No output schema declared.

No examples provided.

set_element_text ~42

Replace the text contents of an editable element.

NameTypeReqDescription
element_idstringyesElement ID to set text on.
textstringyesNew text content.

No output schema declared.

No examples provided.

set_element_value ~56

Set the numeric value of a slider, spinbutton, or progress bar via the AT-SPI Value interface.

NameTypeReqDescription
element_idstringyesElement ID to set value on.
valuenumberyesNumeric value to set.

No output schema declared.

No examples provided.

set_toggle_state ~61

Set a toggle button or checkbox to a desired on/off state. Returns no-op if already in the desired state.

NameTypeReqDescription
desired_statebooleanyesDesired state: true for on, false for off.
element_idstringyesToggle element ID.

No output schema declared.

No examples provided.

snap_window ~26

Snap the focused window to a screen position.

NameTypeReqDescription
positionstringSnap position.

No output schema declared.

No examples provided.

snapshot_state ~17

Capture a snapshot of the current desktop state.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

subscribe_events ~48

Subscribe to AT-SPI events. Returns subscription ID.

NameTypeReqDescription
app_nameFilter events to this application.
event_typesarrayyesList of AT-SPI event types to subscribe to.

No output schema declared.

No examples provided.

switch_workspace ~24

Switch to an adjacent workspace.

NameTypeReqDescription
directionstringDirection to switch.

No output schema declared.

No examples provided.

take_snapshot ~113

Capture a snapshot of the accessibility tree and assign every element a stable uid. Reference these uids in click, fill, hover, and fill_form. Defaults to the active window; pass 'window' (from list_windows) or 'app_name' to scope it. Taking a new snapshot invalidates older uids.

NameTypeReqDescription
app_nameSnapshot this application instead of a single window.
max_depthMaximum tree depth to capture.
windowWindow id from list_windows. Defaults to the active window.

No output schema declared.

No examples provided.

toggle_overview ~31

Toggle the GNOME Shell activities overview.

NameTypeReqDescription
activeSet overview state. Defaults to True if omitted.

No output schema declared.

No examples provided.