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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| combo | string | yes | Key combination string (e.g. ctrl+c, alt+F4). |
| element_id | — | — | Optional element to verify effect against. |
| poll_interval_ms | integer | — | Polling interval for settle check. |
| settle_timeout_ms | integer | — | Max time to wait for shell to settle. |
| stable_for_ms | integer | — | How 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.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | string | yes | Application name to kill. |
No output schema declared.
No examples provided.
launch_app ~36
Launch an application by desktop ID.
| Name | Type | Req | Description |
|---|---|---|---|
| desktop_id | string | yes | Desktop 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.
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | Command 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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_hidden | boolean | — | Include hidden applications. |
| max_results | integer | — | Maximum number of results to return. |
| query | string | — | Search query to filter applications. |
No output schema declared.
No examples provided.
list_key_names ~36
List symbolic key names by category.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Key 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.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| x | integer | yes | X screen coordinate. |
| y | integer | yes | Y 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dx | number | yes | Horizontal offset in pixels. |
| dy | number | yes | Vertical 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.
| Name | Type | Req | Description |
|---|---|---|---|
| duration_ms | integer | — | Duration of the movement 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. |
No output schema declared.
No examples provided.
move_window ~43
Move the focused window by a pixel offset using keyboard move mode.
| Name | Type | Req | Description |
|---|---|---|---|
| dx | integer | yes | Horizontal offset in pixels. |
| dy | integer | yes | Vertical offset in pixels. |
No output schema declared.
No examples provided.
move_window_to_workspace ~29
Move the focused window to an adjacent workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | — | Direction 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.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Application to search menus in. |
| menu_path | array | yes | List of menu item names to navigate through. |
No output schema declared.
No examples provided.
notification_monitor_read ~27
Read captured notifications since monitoring started.
| Name | Type | Req | Description |
|---|---|---|---|
| clear | boolean | — | Clear 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.
| Name | Type | Req | Description |
|---|---|---|---|
| height | — | — | Height of region. |
| width | — | — | Width of region. |
| x | — | — | X coordinate of region. |
| y | — | — | Y 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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_events | integer | — | Maximum number of events to return. |
| subscription_id | string | yes | Subscription ID from subscribe_events. |
| timeout_ms | integer | — | Maximum 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.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | — | — | Optional element to verify effect against. |
| key_name | string | yes | GDK key name (e.g. Return, Escape). |
| poll_interval_ms | integer | — | Polling interval for settle check. |
| settle_timeout_ms | integer | — | Max time to wait for shell to settle. |
| stable_for_ms | integer | — | How 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.
| Name | Type | Req | Description |
|---|---|---|---|
| last_n_lines | integer | — | Number of lines from the end (0 = all). |
| pid | integer | yes | Process ID. |
No output schema declared.
No examples provided.
resize_window ~43
Resize the focused window by a pixel delta using keyboard resize mode.
| Name | Type | Req | Description |
|---|---|---|---|
| dh | integer | yes | Height change in pixels. |
| dw | integer | yes | Width 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.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element 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.
| Name | Type | Req | Description |
|---|---|---|---|
| draw_cursor | boolean | — | Include mouse cursor in recording. |
| framerate | integer | — | Recording framerate. |
| height | — | — | Height of recording region. |
| width | — | — | Width of recording region. |
| x | — | — | X coordinate of recording region. |
| y | — | — | Y coordinate of recording region. |
No output schema declared.
No examples provided.
screen_record_stop ~55
Stop recording and optionally convert to GIF.
| Name | Type | Req | Description |
|---|---|---|---|
| gif_fps | integer | — | GIF frames per second. |
| gif_width | integer | — | GIF width in pixels. |
| to_gif | boolean | — | Convert 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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | — | — | Output file path. Auto-generated if omitted. |
| return_base64 | boolean | — | Include 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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | — | — | Output file path. Auto-generated if omitted. |
| height | integer | yes | Height of the region. |
| width | integer | yes | Width of the region. |
| x | integer | yes | X coordinate of the region. |
| y | integer | yes | Y 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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | — | — | Output file path. Auto-generated if omitted. |
| include_cursor | boolean | — | Include mouse cursor in screenshot. |
| include_frame | boolean | — | Include window frame decorations. |
| window_element_id | string | yes | Element 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.
| Name | Type | Req | Description |
|---|---|---|---|
| clicks | integer | — | Number of discrete scroll steps. |
| direction | string | — | Scroll direction. |
| x | — | — | Optional X coordinate to scroll at. |
| y | — | — | Optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dx | number | — | Horizontal scroll amount. |
| dy | number | — | Vertical scroll amount. |
| x | integer | yes | X coordinate to scroll at. |
| y | integer | yes | Y 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.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to scroll to. |
| max_scrolls | integer | — | Maximum number of scroll attempts. |
| scroll_clicks | integer | — | Number 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.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID containing text. |
| end_offset | — | — | End offset for text selection. |
| start_offset | — | — | Start 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.
| Name | Type | Req | Description |
|---|---|---|---|
| child_index | integer | yes | Index of the child to select. |
| element_id | string | yes | Container 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.
| Name | Type | Req | Description |
|---|---|---|---|
| window | string | yes | Window 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.
| Name | Type | Req | Description |
|---|---|---|---|
| height | integer | — | Display height in pixels. |
| width | integer | — | Display 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.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_global_keys | — | — | Key combos allowed outside the boundary. |
| app_name | — | — | Application name to restrict automation to. |
No output schema declared.
No examples provided.
set_element_text ~42
Replace the text contents of an editable element.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to set text on. |
| text | string | yes | New 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.
| Name | Type | Req | Description |
|---|---|---|---|
| element_id | string | yes | Element ID to set value on. |
| value | number | yes | Numeric 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.
| Name | Type | Req | Description |
|---|---|---|---|
| desired_state | boolean | yes | Desired state: true for on, false for off. |
| element_id | string | yes | Toggle element ID. |
No output schema declared.
No examples provided.
snap_window ~26
Snap the focused window to a screen position.
| Name | Type | Req | Description |
|---|---|---|---|
| position | string | — | Snap 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.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Filter events to this application. |
| event_types | array | yes | List of AT-SPI event types to subscribe to. |
No output schema declared.
No examples provided.
switch_workspace ~24
Switch to an adjacent workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | — | Direction 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.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | — | — | Snapshot this application instead of a single window. |
| max_depth | — | — | Maximum tree depth to capture. |
| window | — | — | Window 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.
| Name | Type | Req | Description |
|---|---|---|---|
| active | — | — | Set overview state. Defaults to True if omitted. |
No output schema declared.
No examples provided.