Hands
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mouse_moveA | Move the mouse cursor. Coordinates are logical points, origin top-left of the main display. Compute them from the screenshot tool's bounds_pt and px_per_pt metadata. |
| mouse_clickA | Click at (x, y), or at the current cursor if omitted. Coordinates are logical points, origin top-left of the main display. Compute them from the screenshot tool's bounds_pt and px_per_pt metadata. After clicking, take a screenshot to verify the result. |
| mouse_dragA | Press, drag along path, release. Coordinates are logical points, origin top-left of the main display. Compute them from the screenshot tool's bounds_pt and px_per_pt metadata. |
| mouse_scrollA | Scroll at (x, y) (moves there first) or at the current cursor. Positive dy scrolls up, negative down, in wheel ticks unless pixels=true. |
| keyboard_typeA | Type text into the focused element using layout-independent unicode injection. Click the target field first. |
| key_pressA | Press a key or shortcut chord, e.g. 'Return', 'cmd+s', 'cmd+shift+p', 'F5'. Use keyboard_type for regular text. |
| screenshotA | Capture the screen (or a region, in points). The response includes bounds_pt and px_per_pt: point = bounds_pt.origin + pixel / px_per_pt. Take a screenshot before any coordinate action. |
| get_stateB | Re-orientation: cursor position, displays, last screenshot metadata, kill-switch status, and recent action history. |
| waitA | Wait for a condition: {type: 'duration', ms} | {type: 'text_present', text, region?} | {type: 'screen_stable', quiet_ms}. Timeout returns met=false (an answer, not an error). |
| find_textA | OCR the screen (or a region, in points) and return boxes matching |
| verifyA | Check an expected outcome after acting. expect = {type: 'text_present'|'text_absent'|'region_changed'|'region_unchanged'|'cursor_at'|'window_present'|'window_gone'|'clipboard_contains'|'all_of'|'any_of', ...params, children?}. region_changed/unchanged need baseline_screenshot_id from an earlier screenshot response. |
| clipboard_getA | Read the clipboard (sensitive: may require user confirmation). Refused while a password field has focus. |
| clipboard_setA | Set the clipboard to text or a base64 PNG. |
| clipboard_pasteA | Paste text into the focused app via clipboard + Cmd+V, then restore the previous clipboard. Preferred over keyboard_type for long text. |
| window_listA | List windows (optionally filtered by app bundle id or name). Returns window_ref handles for window_focus/window_manage. |
| window_focusA | Focus (raise) a window by window_ref, or by app and/or title_match. Stale refs are re-resolved by pid + fuzzy title. |
| window_manageA | move/resize/minimize/unminimize/maximize/close a window. close may trigger 'Don't Save' dialogs and needs confirmation under the default policy. |
| app_openA | Launch an app by bundle id (preferred) or name; activates it if already running. wait_for_window waits for its first window. |
| app_closeA | Quit an app gracefully; force=true force-terminates (sensitive, needs confirmation under the default policy). |
| app_listA | List running apps and the frontmost one. |
| get_ui_treeA | Accessibility tree for an app (frontmost if omitted): roles, titles, values, clickable regions in points. Ground truth where apps expose it; use find_text where they don't. |
| execute_sequenceA | Run up to 20 PRE-DECIDED acting steps in one call (click, type, press...), each optionally gated by a guard condition (same schema as |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/yuvitbatra/hands-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server