Glasswarp
Server Details
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- glasswarp/mcp-server
- GitHub Stars
- 0
- Server Listing
- Glasswarp
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.5/5 across 16 of 16 tools scored.
Each tool has a clearly distinct purpose: session management, input methods, screen observation, demo retrieval, and rig listing. Descriptions explicitly state when to prefer one over another (e.g., click_target over click_xy, send_actions over chaining). No two tools overlap in functionality.
All tools follow the domain.verb_noun pattern (e.g., app.launch, input.click_target, session.start) with consistent snake_case. Verbs like launch, list, get, click, send, type, observe are clear actions, and the naming is predictable across the entire set.
16 tools cover the full spectrum of remote desktop control: 2 for demos, 1 for rigs, 4 for sessions, 1 for screen, 7 for input, and 1 for app launching. Each tool is necessary and there is no redundancy; the count is well-scoped for the domain.
The tool set provides a complete lifecycle for remote desktop interaction: rig selection, session start/end, screen observation, all common input actions (click, type, scroll, drag, multi-step sequences), app launching, and demo retrieval. There are no obvious gaps for typical UI automation tasks.
Available Tools
16 toolsapp.launchADestructiveInspect
Launch an executable on the remote Windows rig (name on PATH or absolute path), optional args. Side effects: starts a process; Glasswarp tracks it and closes it on session.end. Use for notepad.exe, mspaint.exe, chrome with URL args, etc. Wait/re-observe after launch before clicking — do not assume the window is focused immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Process args, e.g. ["--new-window", "https://example.com"] | |
| session_id | Yes | Active session id | |
| path_or_name | Yes | Executable name (e.g. notepad.exe) or absolute path |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes side effects (starts process, tracked by Glasswarp, closed on session.end) and warns about focus assumption. Annotations already indicate destructiveHint and openWorldHint, so description adds useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loads the action and parameter info, then adds crucial usage guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present (not shown but mentioned), description explains side effects, use cases, and post-launch behavior. Sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have schema descriptions (coverage 100%). Description adds context about optional args and mentions 'name on PATH or absolute path', which is already in the schema. Examples provide slight additional clarity but no essential new information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (launch) and resource (executable on remote Windows rig), with examples like notepad.exe, mspaint.exe. Distinguishes from sibling tools which are mostly input/screen/session related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases (notepad.exe, chrome with URL args) and a post-launch behavior warning (do not assume window focused). However, does not explicitly state when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demos.getARead-onlyInspect
Return one showcase run contract (install, command, needs, framing). Does NOT execute the demo or control a PC. Call after demos.list when you know the demo_id. If the client can run shell, offer the command; if chat-only, show the card. Do not replace this with a slow MCP click loop for solver demos.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format: markdown (default) or json | |
| demo_id | Yes | Showcase id from demos.list |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces that this tool does NOT execute demos or control a PC. It adds behavioral context about the return type (contract) and usage, but does not describe all behaviors like error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with four focused sentences. Each sentence adds unique value: purpose, negation of execution, usage guidance, and a warning. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with 2 parameters and presence of an output schema, the description covers the core purpose, usage order, and output interpretation. It lacks explicit error handling or edge cases, but the output schema likely fills remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so baseline is 3. The description adds value by contextualizing the demo_id parameter as coming from demos.list, and implicitly linking format to user interaction style (shell vs chat-only). This goes beyond just repeating schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Return' and clearly identifies the resource as 'showcase run contract' with details (install, command, needs, framing). It explicitly distinguishes itself by stating what it does NOT do (execute or control a PC), ensuring no confusion with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to call this tool ('after demos.list when you know the demo_id') and how to use its output (offer command if shell, show card if chat-only). It also warns against misuse, but does not explicitly list alternative tools for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demos.listARead-onlyInspect
List showcase run contracts (id, title, install, command). Read-only catalog — does NOT start a session, touch a rig, or run solvers. Use when the user asks for Minesweeper/Mona Lisa/Paint demos or you need the glasswarp-demo command. Prefer demos.get for one full card. For ad-hoc UI work use rigs.list → session.start → screen.observe instead.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format: markdown (default) or json |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds key behavioral constraints: does NOT start a session, touch a rig, or run solvers. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with three sentences, front-loading the primary purpose and immediately adding usage guidance. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear annotations, the description covers purpose, usage, and behavioral constraints thoroughly. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with one parameter (format) with enum options and description. The description does not add new semantic information beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists showcase run contracts with specific fields (id, title, install, command). It distinguishes from siblings by mentioning demos.get for one full card and lists other tools for ad-hoc workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when user asks for Minesweeper/Mona Lisa/Paint demos or needs the glasswarp-demo command. Also provides clear alternatives: prefer demos.get for one card, and for ad-hoc UI work use rigs.list → session.start → screen.observe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input.click_targetADestructiveInspect
Left/right/middle-click a UIA target by id from the latest screen.observe (uses native center coords). Prefer over input.click_xy. Side effect: real mouse click on the remote Windows desktop. Do not reuse target_id after the screen may have changed — re-observe first. For click→type→keys sequences, use input.send_actions (one turn) instead of chaining this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| button | No | Mouse button (default left) | |
| double | No | If true, double-click (two clicks) | |
| target_id | Yes | Target id from the most recent screen.observe (e.g. uia-… ) | |
| session_id | Yes | Active session id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include destructiveHint=true. The description adds specific behavioral context: 'Side effect: real mouse click on the remote Windows desktop' and warns about target_id reuse. This goes beyond annotations but still could mention response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 4 sentences, front-loaded with the core action. Every sentence adds value: purpose, preference, side effect, caution, and alternative usage pattern. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations and output schema (present), the description covers essential usage notes including side effects and re-usability constraints. It lacks details on return value, but output schema likely handles that. Mostly complete for a click tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds that target_id comes from the latest screen.observe and that button defaults left, but these are already in schema. No additional semantic value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs left/right/middle-click on a UIA target identified by an id from the latest screen.observe. It specifies the verb, resource, and source, and explicitly distinguishes it from the sibling tool input.click_xy by stating preference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool over alternatives: 'Prefer over input.click_xy' and for click→type→keys sequences, use input.send_actions instead. It also advises not to reuse target_id after the screen may have changed, indicating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input.click_xyADestructiveInspect
Click at native screen coordinates (0…native_width-1, 0…native_height-1 from screen.observe). Last resort when no suitable UIA target exists — prefer input.click_target. Never use JPEG/downscaled pixel coords. Side effect: real mouse click on the remote desktop.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Native X (0…native_width-1) | |
| y | Yes | Native Y (0…native_height-1) | |
| button | No | Mouse button (default left) | |
| double | No | If true, double-click | |
| session_id | Yes | Active session id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint, openWorldHint), description adds 'Side effect: real mouse click on the remote desktop' and clarifies coordinate system usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences, no redundant words, front-loaded with core purpose and critical usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers when to use, coordinate system, side effects, and alternatives; output schema handles return values; sufficient for a tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds valuable context about native coordinates and their origin from screen.observe, enhancing schema meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Click at native screen coordinates' and distinguishes from sibling tool 'input.click_target' by specifying it's a last resort.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Last resort when no suitable UIA target exists — prefer input.click_target' and warns against using JPEG/downscaled pixel coords.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input.dragADestructiveInspect
Press-move-release mouse drag in native capture coordinates. Use for drawing, sliders, selection boxes, and drag-and-drop. Side effect: mouse_down → moves → mouse_up on the remote desktop. Prefer input.send_actions if the drag is one step in a longer predictable sequence.
| Name | Required | Description | Default |
|---|---|---|---|
| to_x | Yes | Native end X | |
| to_y | Yes | Native end Y | |
| from_x | Yes | Native start X | |
| from_y | Yes | Native start Y | |
| session_id | Yes | Active session id | |
| duration_ms | No | Approx drag duration in ms; more steps when larger (default ~200) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effect of mouse_down → moves → mouse_up, and annotations include destructiveHint=true; no contradiction, and adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero fluff; purpose, use cases, side effect, and alternative are all front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, side effect, and alternative; output schema exists so return values need not be described. Could mention coordinate units but not necessary given schema bounds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3; description adds no extra meaning beyond schema descriptions, which already adequately define each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Press-move-release mouse drag' as specific verb+resource, lists use cases (drawing, sliders, etc.), and distinguishes from input.send_actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (drawing, sliders, selection boxes, drag-and-drop) and when to prefer alternative (input.send_actions for longer sequences).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input.scrollADestructiveInspect
Move the cursor to native (x,y) then apply a vertical mouse-wheel delta. Side effect: scroll on whatever is under that point. Negative delta scrolls toward the bottom of the page. Prefer input.send_actions when scroll is part of a multi-step sequence. Re-observe after scrolling lists/pages before clicking targets.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Native X to hover before scrolling | |
| y | Yes | Native Y to hover before scrolling | |
| delta | Yes | Vertical wheel delta (negative = toward bottom of page) | |
| session_id | Yes | Active session id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effect (scroll on element under point) and delta direction, adding context beyond annotations that already indicate destructive nature; could mention coordinate bounds but not critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-loading core action, then side effect, then guidance—no filler, every sentence informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a scroll tool with clear parameters and output schema; covers side effect, alternative tool, and post-action advice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already fully cover all 4 parameters; the description only restates delta sign meaning, adding minimal incremental value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action: move cursor then apply vertical mouse-wheel delta, with side effect on element under point. Distinguishes from sibling tools like input.click_xy, input.drag by specifying scroll and delta direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises preferring input.send_actions for multi-step sequences and recommends re-observing after scrolling before clicking, providing clear when-to-use and when-not-to guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input.send_actionsADestructiveInspect
PREFERRED multi-step tool: run 1–10 predictable UI actions in one call (input.click_target, input.click_xy, input.type_text, input.send_keys, input.drag, input.scroll). Side effects: all actions execute on the remote desktop; fails fast before sending if any action is invalid. observe_after defaults true (verification observe: text+targets; set observe_image=true for JPEG). Do not batch across unpredictable waits (page loads, installers, modals) — single-step those. Prefer this over chaining solo click/type/keys tools.
| Name | Required | Description | Default |
|---|---|---|---|
| actions | Yes | Ordered actions (max 10); input.click_target needs target_id from latest screen.observe | |
| session_id | Yes | Active session id | |
| observe_after | No | Default true. When true, return a verification observe in the same result | |
| observe_image | No | Default false. When true with observe_after, include verification JPEG unless changed=false |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| changed | No | Whether the frame changed since last observe; null if unknown |
| message | Yes | Human-readable observe summary / targets |
| has_image | No | True when a JPEG was included in the MCP content |
| native_width | No | Native capture width |
| native_height | No | Native capture height |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint, but the description adds details: all actions execute remotely, fails fast on invalid actions, observe_after defaults true, and observe_image behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise at ~60 words, front-loaded with key info, every sentence adds value, and structured logically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the multi-step complexity, schema coverage, annotations, and presence of output schema, the description fully addresses purpose, usage, parameters, and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds context beyond the schema, like click_target needing target_id from screen.observe and defaults for observe_after.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is a multi-step tool for running up to 10 predictable UI actions in one call, clearly distinguishing it from sibling tools like individual click/type/keys tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance: use for predictable actions, avoid batching across unpredictable waits, and prefer this over chaining solo tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input.send_keysADestructiveInspect
Send a key or chord to the focused window (e.g. enter, tab, ctrl+s, alt+f4, win). Side effect: real key events on the remote desktop. Prefer bundling into input.send_actions when the shortcut follows a click/type in the same planned sequence. Use input.type_text for literal strings, not this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | Key or combo, e.g. enter, tab, ctrl+s, alt+f4, win | |
| session_id | Yes | Active session id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true and openWorldHint=true. The description adds a key behavioral trait: 'Side effect: real key events on the remote desktop.' While this is good context, it doesn't elaborate on the nature of the destruction (e.g., irreversible, system-level impact). Still, the side effect note provides meaningful transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences that front-load the essential action and examples. Every sentence serves a distinct purpose (definition, side effect, usage guidance), with no wasted words. Ideal for quick agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no enums, output schema exists, sibling context clear), the description covers all needed aspects: purpose, side effect, and when to use alternatives. It leaves no gaps for an agent to misinterpret how or when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (keys and session_id). The description adds value by listing concrete examples for the keys parameter ('enter, tab, ctrl+s, alt+f4, win'), which helps the agent understand valid inputs. It does not add further detail to session_id, but the schema already suffices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Send' and the resource 'a key or chord to the focused window', with illustrative examples like 'enter, tab, ctrl+s'. It effectively distinguishes from siblings by naming alternatives (input.send_actions, input.type_text), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Prefer bundling into input.send_actions when the shortcut follows a click/type in the same planned sequence. Use input.type_text for literal strings, not this tool.' This tells the agent when to use this tool versus alternatives, directly supporting correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input.type_textADestructiveInspect
Type a Unicode string into the currently focused control via native input. Does not click first — focus the field (input.click_target / input.send_actions) before calling. Side effect: keystrokes on the remote desktop. For form fills (click → type → tab/enter), prefer input.send_actions in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Literal text to type (not a key combo) | |
| session_id | Yes | Active session id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate openWorldHint and destructiveHint. The description adds context by mentioning 'Side effect: keystrokes on the remote desktop.' It does not contradict annotations and provides useful behavioral info beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main purpose, and every sentence adds value: purpose, prerequisite, and alternative recommendation. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's relative simplicity, the description covers the main function, prerequisites, side effects, and when to use alternatives. It does not mention error handling, but the output schema may cover return information. Overall, it provides sufficient context for agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no new meaning beyond what the schema already provides for the two parameters. The description repeats that text is 'Literal text to type (not a key combo)' which matches the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Type a Unicode string'), the target ('currently focused control'), and method ('via native input'). It distinguishes from siblings by noting it does not click first and recommending input.send_actions for form fills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool: after focusing the field, and when not to use it: for form fills, prefer input.send_actions. It also names specific alternatives (input.click_target, input.send_actions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rigs.listARead-onlyInspect
List Windows machines (rigs) paired to this API key: id, name, online, api_access_enabled, and USABLE flag. Read-only — does not start a session. Call first before start_session. A rig is USABLE only when online AND the owner enabled API access. If none are USABLE, tell the user to install the host agent, pair in Console → Rigs, and enable API access — never ask for OS passwords.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, openWorldHint), the description adds 'Read-only — does not start a session', explains the USABLE flag condition, and describes the case when no rigs are usable. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is one focused paragraph with seven sentences, each adding value. It front-loads key fields and is efficient, though could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no parameters, the description fully covers what the tool returns, how to interpret results, and actions to take when no usable rigs. The presence of an output schema reduces need to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the schema; schema coverage is 100%. The description does not need to add parameter info, but it implicitly uses the API key context. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists Windows machines (rigs) paired to the API key, specifies returned fields (id, name, online, api_access_enabled, USABLE flag), and distinguishes from siblings by noting it is read-only and must be called before start_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call first before start_session', provides step-by-step instructions for handling no usable rigs (install agent, pair in Console, enable API access), and warns against asking for OS passwords.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen.observeARead-onlyInspect
Read the current screen: UIA targets (numbered ids + native coords) and a text summary. Does not move mouse/keyboard. Default image=false (no JPEG) for speed; set image=true only when you must judge pixels visually (then max_width≈960, quality≈60). If changed=false, JPEG is omitted even when requested — do not re-analyze; wait or act differently. If dirty is null, assume changed. Prefer input.send_actions for multi-step UI; observe after meaningful steps, not after every click. Target ids are valid only until the next UI change.
| Name | Required | Description | Default |
|---|---|---|---|
| mark | No | Overlay numbered targets on JPEG when image=true (default true; ignored if image=false) | |
| image | No | Include JPEG (default false). True only to visually read/judge the screen. | |
| quality | No | JPEG quality 40–100 when image=true (default 60) | |
| max_width | No | JPEG max width when image=true (default 960). Clicks always use native coords, not JPEG pixels. | |
| session_id | Yes | Active session id from session.start |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| changed | No | Whether the frame changed since last observe; null if unknown |
| message | Yes | Human-readable observe summary / targets |
| has_image | No | True when a JPEG was included in the MCP content |
| native_width | No | Native capture width |
| native_height | No | Native capture height |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint and openWorldHint annotations, the description adds key behaviors: no mouse/keyboard movement, target id validity, image suppression on changed=false. All disclosed clearly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then concise bullet-style guidance. Every sentence serves a purpose; no wasted words despite richness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, 1 required, and existence of output schema, the description completely covers usage, parameter decisions, and behavioral constraints. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description still adds value: default values, when to enable image, approximate max_width/quality, and mark behavior. No redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read the current screen' with a specific verb and resource, listing outputs (UIA targets, text summary) and distinguishing sibling tools like input.send_actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: prefer input.send_actions for multi-step UI, observe after meaningful steps, when to set image=true, and how to handle the changed flag (do not re-analyze). No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session.endADestructiveInspect
End an active session. Side effects: stops billing, runs host safety_restore, closes apps launched via app.launch. Always call when finished or abandoning — do not leave sessions open. Safe to call once; further observe/input on that session_id will fail.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session id returned by session.start |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint and openWorldHint. Description adds specific side effects (stops billing, safety_restore, closes apps) and notes that subsequent operations on the session_id will fail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then side effects, then usage guidance. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, annotations, and an output schema, the description is complete: it covers purpose, side effects, usage, and idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description need not add parameter semantics. Description does not elaborate on session_id beyond the schema, but this is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'End an active session' with clear verb and resource. It distinguishes from siblings like session.start and session.status by noting that it closes apps and stops billing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Always call when finished or abandoning — do not leave sessions open' and mentions idempotency and consequences of further use. Implicitly distinguishes from non-destructive siblings like session.status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session.live_viewARead-onlyInspect
Return the console Live View URL (≈60fps) for the rig owner to watch and intervene. Read-only for the agent — does not grant the API key console access. Offer on long or sensitive tasks. Owner must be signed into Glasswarp; API keys alone cannot open the player.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Active session id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds beyond annotations by stating the tool is read-only for the agent and does not grant API key console access, plus the 60fps performance. No contradiction with annotations (readOnlyHint, openWorldHint). Could include error handling details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loaded with main action and key details. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return value is likely documented. Description covers what it returns (URL). Lacks mention of potential errors but sufficient for a simple tool with one required parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter session_id is described in schema (100% coverage). Description does not add additional meaning or constraints beyond 'active session id'. Baseline maintained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns a console Live View URL at ~60fps for owner intervention. Distinct from sibling tools like session.status or screen.observe by providing a real-time interactive view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Advises to offer on long or sensitive tasks and notes the owner must be signed into Glasswarp, which helps in deciding when to use. Does not explicitly compare to sibling tools but provides practical context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session.startADestructiveInspect
Start a metered desktop session on a USABLE rig from rigs.list. Side effects: begins wall-clock billing, shows an on-screen “API session active” indicator, enables observe/input until session.end. Idle sessions auto-end after ~15 minutes. Always call session.end when done or abandoning. Do not call if no USABLE rig exists. Returns session_id and Live View URL (owner console login required).
| Name | Required | Description | Default |
|---|---|---|---|
| rig_id | Yes | Rig id from rigs.list (must be online with api_access_enabled) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects beyond annotations: 'begins wall-clock billing, shows an on-screen API session active indicator, enables observe/input until session.end' and idle auto-end after ~15 minutes. Adds value over destructiveHint and openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with main action. Each sentence adds critical information (side effects, cleanup, idle timeout, destination details). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given billing, idle timeout, and side effects, the description covers prerequisites (USABLE rig), outputs (session_id and Live View URL), and required follow-up (session.end). Well-suited for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage; the description reinforces 'from rigs.list' and 'USABLE rig' but adds no new parameter-specific details beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Start a metered desktop session on a USABLE rig from rigs.list,' specifying the verb (start), resource (desktop session), and scope (from rigs.list). It distinguishes from sibling tools like session.end and session.live_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Always call session.end when done or abandoning' and 'Do not call if no USABLE rig exists.' Lacks explicit alternatives for read-only cases, but sibling tools cover that context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session.statusARead-onlyInspect
Fetch session metadata: status, host, mode, created_at, action_count, billed_minutes. Read-only — no input side effects. Use to tell the user about metered time or confirm the session is still active before more actions.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session id from session.start |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | False when the tool failed |
| message | Yes | Human-readable result for the agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description reinforces with 'Read-only — no input side effects' and lists specific metadata fields, adding value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with key purpose and read-only nature, then specific use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it has an output schema, low parameter count, and annotations cover safety, the description fully covers usage context. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter session_id, with adequate schema description. The tool description does not add new information about the parameter beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and resource 'session metadata', listing specific fields. It distinguishes from siblings like session.start and session.end by emphasizing read-only status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use: 'to tell the user about metered time or confirm the session is still active before more actions.' It does not mention when not to use, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityAmaintenanceRealtime PC eyes and hands for any AI agent — provides desktop, browser, file, registry, and OS control via batched execution and lease-based safety gates.MIT
- AlicenseAqualityAmaintenanceAllows AI clients to see and control Windows 10/11 desktops via MCP, with screenshots, UI Automation, Chrome CDP, keyboard/mouse, and terminal using semantic element targeting.30617MIT
- Alicense-qualityCmaintenanceGives AI agents full keyboard, mouse, and screen access to a physical PC via a KVM server and OCR.1MIT
- AlicenseBqualityCmaintenanceEnables MCP agents to automate real GUI applications on headless desktops, providing background mouse/keyboard control, window/process management, screenshots, and safe human handoff without disturbing the user's desktop.57MIT
Your Connectors
Sign in to create a connector for this server.