Skip to main content
Glama
gashcrumb

nested-display-mcp

by gashcrumb

Open a nested display

display_open

Starts a visible nested Sway compositor and optionally launches an app inside; the server routes input and screenshots so host desktop focus is never required.

Instructions

Starts a nested sway compositor (visible window on the host desktop, with its own Xwayland) and optionally launches an app inside it. Input and screenshots are routed by this server, so no host focus is ever required. Returns the display id and its inner WAYLAND_DISPLAY/DISPLAY values.

Input Schema

NameRequiredDescriptionDefault
idNoExplicit display id (default d1, d2, ...)
appNoExecutable to launch inside the display
cwdNo
envNoExtra environment variables for app
argsNoArguments for app
titleNoTitle shown on the host window
widthNo
heightNo
backendNoHow the nested compositor attaches to the host. 'x11' (default when the host has a DISPLAY) gives a Mutter-decorated window that can be moved and retitled; 'wayland' avoids XWayland on the host.
positionNoHost window position (backend 'x11' only)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does substantial work: it discloses that a visible host window with its own Xwayland is created, that input and screenshots are routed server-side so host focus is never needed, and that the response contains the display id and inner WAYLAND_DISPLAY/DISPLAY. It omits lifecycle details — whether the call blocks until the app is up, whether a display must be closed before reuse, and any failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with the capability stated first, the key operational guarantee (no host focus required) second, and the return values last. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, side-effect-heavy tool with no annotations and no output schema, the description covers what is created and what comes back but leaves out the display lifecycle (cleanup via display_close), host prerequisites, and whether concurrent displays with distinct ids are supported. Adequate to call it once correctly, not adequate to manage displays over a session.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 70%, so the schema already documents id, app, env, args, title, backend, and position. The description only reinforces the id and app parameters ('optionally launches an app inside it', 'returns the display id'), and says nothing about cwd, width/height sizing, or the x11-only constraint on position. Baseline 3 is appropriate given the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — starts a nested sway compositor with its own Xwayland — plus the optional app launch, which is far more than the title's 'Open a nested display'. The resource is unambiguous against siblings like display_list and display_close, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can infer this is the tool to call first to create a display that screenshot/click/type then target. There is no explicit when-to-use statement, no mention that display_close is the counterpart for teardown, and no note on what to do if an id already exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.