Nova
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ax_clickA | Press a UI control directly through the OS accessibility tree (macOS Accessibility; Windows UI Automation is not yet implemented and returns a clear error) — no coordinates, no cursor movement, works in the background (the app need not be frontmost). |
| ax_focusA | Move keyboard focus to a control through the OS accessibility tree (macOS Accessibility; not yet implemented on Windows, where it returns a clear error). Background, no cursor. |
| ax_set_valueA | Set a control's value directly through the OS accessibility tree (macOS Accessibility; not yet implemented on Windows, where it returns a clear error) — e.g. fill a text field without focusing or typing. Background, no cursor. |
| batch_actionsA | Execute a sequence of input actions (mouse_move, left_click, right_click, double_click, scroll, key_combo, type_text, wait) in one call to reduce round-trips. Coordinates are in screenshot space. Take a screenshot separately afterwards to observe the result. |
| click_markA | Activate an actionable element by the mark NUMBER shown in the most recent screenshot(marks=true) — the reliable way to click without guessing coordinates. Always background, no cursor movement: web-page content in a scriptable browser (Safari, Chrome, Arc, Edge, Brave, …) is clicked through the page's OWN JavaScript engine (an Accessibility press is a silent no-op on web content), native controls through the Accessibility tree; if neither applies it falls back to a click at the element's center. Numbers go stale when the UI changes, so take a fresh screenshot(marks=true) right before calling this. If the number is unknown, re-shoot with marks=true. |
| cursor_positionA | Get the current mouse cursor position. Returns (x, y) in logical coordinates. |
| double_clickB | Double-click at the given (x, y) coordinates (in screenshot space). |
| dump_axA | DEBUG: dump the target app's Accessibility tree (roles, subroles, labels, actions, frames) as indented text — to diagnose why some elements are not marked. Targets the last window-captured app (or frontmost). |
| key_comboB | Simulate a key combination (e.g., "cmd+c", "shift+tab"). |
| left_clickC | Left-click at the given (x, y) coordinates (in screenshot space). |
| list_applicationsA | List all installed applications on the system. |
| list_windowsA | List all visible windows across all applications. |
| mouse_moveB | Move the mouse cursor to the given (x, y) coordinates (in screenshot space). |
| ocrA | Read on-screen TEXT via the platform OCR engine (Apple Vision on macOS, Windows.Media.Ocr on Windows). Captures the display (or window="") and returns the recognized text lines, each with a clickable center in the same pixel space as a screenshot — so you can both READ the text and click a line with left_click(x, y). Returns text only (no image), so it is a cheap, fast way to pull text off the screen. Best when you need to read or click TEXT on a surface where marks come back empty — canvas, games, image-rendered or custom-drawn views — or to grab a lot of text at once without parsing a screenshot. For native/web UI with an Accessibility tree, screenshot(marks=true) + click_mark is still more precise. Languages default to Simplified Chinese + English; pass languages=[...] (BCP-47) to override. |
| open_applicationA | Launch or focus an application by name (e.g., "Safari", "Slack"). |
| read_clipboardA | Read the current system clipboard contents as text. |
| right_clickB | Right-click at the given (x, y) coordinates (in screenshot space). |
| screenshotA | Capture the screen — the whole main display, or a single window with window="" — and return a base64 JPEG plus a text note with its pixel dimensions. ALL coordinate-taking tools (mouse_move, *_click, scroll) expect coordinates in THIS image's pixel space — origin (0,0) top-left, x right, y down — so read target positions directly off the returned image; subsequent clicks are mapped through it automatically. PREFER window="" (substring of its title or app name) over the whole display whenever you are working inside one app: a full-display shot is downscaled to ~1280px wide, so small UI (list rows, sidebar items, buttons) becomes only a few pixels — too small to read or click accurately. A window capture is larger and sharper, returns a smaller image (fewer pixels → less context, faster turn), and clicks map into the window automatically. marks is ON by default: it boxes+numbers actionable elements (needs Accessibility) and lists each as [N] — activate one with click_mark(number=N), the most reliable way to click with no coordinate guessing. A magenta coordinate grid (for reading x/y) is shown automatically when marks is off and hidden when it is on; pass grid=true to force both, or marks=false for pure coordinate mode. If a target is still too small to click, use zoom_region to magnify part of this image. |
| scrollC | Scroll at the given (x, y) position. Positive lines = up, negative = down. |
| type_textB | Type a string of text into the currently focused element. |
| waitB | Wait for a specified number of seconds before returning. |
| write_clipboardC | Write text to the system clipboard. |
| zoom_regionA | Zoom into a rectangle of the CURRENT image (the last screenshot's pixel space) and re-capture it at native resolution — a sharp, legible magnified view. Only that rectangle is captured (not the whole display), so it is also smaller and quicker to take than a full-display shot. Use it to read exact positions on surfaces that expose no marks (canvas/games, custom-rendered views) before clicking, or to stay scoped while working inside one area. Pass x, y, width, height in the current image's pixels (width,height > 0). The returned image becomes the new coordinate space, and clicks afterward map into the zoomed region automatically. marks defaults OFF (read coordinates off the overlaid grid); grid defaults ON. Take a screenshot first so there is an image to zoom into. |
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/bigduu/Nova'
If you have feedback or need assistance with the MCP directory API, please join our Discord server