Skip to main content
Glama
nvda-mcp server

nvda-mcp server

by InfiArtt

Activate a control

nvda_activate_object
Destructive

Activate a control by its nvda_find_objects ID—press buttons, follow links, or toggle checkboxes—then report NVDA’s speech output, no prior focus needed.

Instructions

Perform a control's default action (press a button, follow a link, toggle a check box), like NVDA's activate command, then report what NVDA said.

The control is found with nvda_find_objects and does not need focus first.

Input Schema

NameRequiredDescriptionDefault
idYesAn id from nvda_find_objects.
recordNoAlso record what this action changed: how the accessibility tree around it changed (controls added, removed, renamed or moved, values and states) and the events NVDA handled. NVDA is silent for up to a few seconds while the tree is read. For something the user does, use nvda_trace_events with tree.
settle_msNoStop listening once NVDA has been quiet this long.
timeout_msNoStop listening, or waiting for until_speech, after this long in total.
until_speechNoKeep listening until NVDA says something containing this text (ignoring case), such as 'sent' or a dialog title, instead of stopping at the first pause. The result says whether it was heard.
record_withinNoRecord only inside this control, an id from nvda_find_objects, such as a chat's message list. Implies record. By default the web document or window around the action is recorded.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, openWorldHint=true, non-idempotent and not read-only, so the safety profile is covered. The description adds that it reports what NVDA said afterward and that the control need not be focused, but it does not warn that the action may be irreversible, which is the main risk for a destructive hint.

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?

Two short sentences, front-loaded with the action and examples, then the prerequisite. Nothing is padded or repetitive, and the key constraint (no focus needed) lands before the reader stops paying attention.

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

Completeness4/5

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

With annotations, a fully documented six-parameter schema and an output schema present, the description only needs to convey purpose, prerequisite and result behavior, which it does. The only shortfall is the absence of any note on the real-world side effects of activation, which matters for a destructive-hinted tool.

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 description coverage is 100%, with rich per-parameter text covering record, settle_ms, timeout_ms, until_speech and record_within, so the schema does the heavy lifting. The description adds no further parameter meaning, which matches the baseline of 3 when the schema is complete.

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

Purpose4/5

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

Uses a specific verb ('Perform a control's default action') plus concrete examples (press a button, follow a link, toggle a check box) and names the source of the target (nvda_find_objects). It implicitly separates itself from nvda_focus_object by saying focus is not required, but it never names the sibling it is not.

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?

Gives a clear prerequisite (the id comes from nvda_find_objects) and a useful condition (no need to focus first), which is implied usage guidance. It does not say when to prefer this over nvda_press_keys, nvda_set_value, or a focus-then-activate sequence, leaving real alternatives unaddressed.

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