Glasswarp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GLASSWARP_API_KEY | Yes | Your Glasswarp API key (e.g., gw_live_sk_...). Required for authentication. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_demosA | 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 get_demo for one full card. For ad-hoc UI work use list_rigs → start_session → observe instead. |
| get_demoA | Return one showcase run contract (install, command, needs, framing). Does NOT execute the demo or control a PC. Call after list_demos 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. |
| list_rigsA | 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. |
| start_sessionA | Start a metered desktop session on a USABLE rig from list_rigs. Side effects: begins wall-clock billing, shows an on-screen “API session active” indicator, enables observe/input until end_session. Idle sessions auto-end after ~15 minutes. Always call end_session when done or abandoning. Do not call if no USABLE rig exists. Returns session_id and Live View URL (owner console login required). |
| end_sessionA | End an active session. Side effects: stops billing, runs host safety_restore, closes apps launched via launch_app. Always call when finished or abandoning — do not leave sessions open. Safe to call once; further observe/input on that session_id will fail. |
| observeA | 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 send_actions for multi-step UI; observe after meaningful steps, not after every click. Target ids are valid only until the next UI change. |
| click_targetA | Left/right/middle-click a UIA target by id from the latest observe (uses native center coords). Prefer over 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 send_actions (one turn) instead of chaining this tool. |
| click_xyA | Click at native screen coordinates (0…native_width-1, 0…native_height-1 from observe). Last resort when no suitable UIA target exists — prefer click_target. Never use JPEG/downscaled pixel coords. Side effect: real mouse click on the remote desktop. |
| type_textA | Type a Unicode string into the currently focused control via native input. Does not click first — focus the field (click_target / send_actions) before calling. Side effect: keystrokes on the remote desktop. For form fills (click → type → tab/enter), prefer send_actions in one call. |
| send_keysA | 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 send_actions when the shortcut follows a click/type in the same planned sequence. Use type_text for literal strings, not this tool. |
| dragA | 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 send_actions if the drag is one step in a longer predictable sequence. |
| scrollA | 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 send_actions when scroll is part of a multi-step sequence. Re-observe after scrolling lists/pages before clicking targets. |
| send_actionsA | PREFERRED multi-step tool: run 1–10 predictable UI actions in one call (click_target, click_xy, type_text, send_keys, drag, 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. |
| launch_appA | 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 end_session. 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. |
| get_live_view_urlA | 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. |
| get_session_statusA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| best_practices | Short → MCP; longer → offer scaffold when code-capable (never impose). Chat-only stays on MCP. Read before Minesweeper/Mona Lisa. |
| demo_mona_lisa | Showcase lane: get_demo mona-lisa, then run glasswarp-demo. MCP Assist for preflight only. |
| demo_minesweeper | Showcase lane: get_demo minesweeper, then run glasswarp-demo. Deterministic loop as brain. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ways-to-run-agents | How to run agents on a rig: short tasks direct via MCP; longer tasks — offer a scaffolded SDK agent when the client can run code, never impose it. |
| assist-showcase-build | Alias of glasswarp://guide/ways-to-run-agents. |
| mcp-vs-sdk | Alias of glasswarp://guide/ways-to-run-agents. |
| demos | Catalog of showcase run contracts (install + command). Use get_demo for a full card. |
| demo-minesweeper | Run contract: Minesweeper — glasswarp-demo minesweeper |
| demo-mona-lisa | Run contract: Mona Lisa (Paint) — glasswarp-demo mona-lisa |
| demo-paint | Run contract: Paint mark — glasswarp-demo paint |
| demo-notepad | Run contract: Notepad (UIA) — glasswarp-demo notepad |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/glasswarp/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server