Skip to main content
Glama

Server Details

Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.

Ownership verified
Status
Healthy
Uptime
83.7% over 43 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.4/5.0

Scored across 174 tools

Disambiguation2/5

There are many overlapping tool families: computer_* vs ui_* for native accessibility actions, pointer_* vs ui_click/computer_click, browser_* vs native UI tools, and multiple scroll/type/set-value variants. The descriptions often explain when to prefer one over another, but with 174 tools the boundaries are still hard for an agent to keep straight.

Naming Consistency3/5

Most tools use readable snake_case verb_noun names, but the set mixes many prefix conventions (browser_, computer_, ui_, pointer_, window_, pdf_, network_, service_, document_) and includes noun-only tools like environment, notification, keyboard, and scroll. It is still understandable, but not a single predictable pattern.

Tool Count1/5

174 tools is an extreme mismatch for practical tool selection. Even for a broad remote-computer-control platform, this surface is far beyond what an agent can reliably navigate without heavy routing or grouping.

Completeness5/5

The surface is remarkably comprehensive across file operations, processes, UI automation, browser automation, screenshots, networking, services, power, devices, account configuration, documents, PDFs, archives, and clipboard. It covers the lifecycle of most stated domains with little obvious missing functionality.

Available Tools

174 tools
apply_patchApply patchA
Destructive
Inspect

Use this when you already have a unified diff with one or more hunks and want to apply it to one or several files. Do not use write_file for the same patch-shaped change, and prefer edit_block when the change is one exact text block rather than a diff.

NameRequiredDescriptionDefault
pathNoApply every hunk to this file, ignoring the patch headers.
patchYesUnified diff, including ---/+++ headers and @@ hunks.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
dry_runNoReport the diff without writing. Default false.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the write/destructive nature is covered. The description adds no extra behavioral context beyond saying it applies a patch, which is essentially the same as the annotation. It doesn't mention dry_run or failure modes, but those are in the schema. Thus it meets the minimum but adds little 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states the primary use case, the second gives exclusions and alternatives. Every word earns its place, and the most important information is front-loaded.

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 a full schema (100% coverage) and an output schema present, the description does not need to repeat parameter details. It provides sufficient context for when to use the tool and its alternatives. The only slight gap is that it doesn't mention the destructive nature explicitly, but that's covered by annotations. Overall, an agent has everything needed to call it correctly.

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%, so all parameters are already documented. The description doesn't add any additional meaning about parameters (e.g., the relationship between path and patch, or device requirement). It only reinforces the tool's purpose, so baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific action: applying a unified diff with one or more hunks to one or more files. It clearly distinguishes itself from write_file and edit_block, making it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells when to use this tool (when you have a unified diff) and when not to (not for patch-shaped changes via write_file, prefer edit_block for exact text blocks). This is exemplary guidance.

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

audio_muteAudio MuteAInspect

Use this to mute the paired computer system output. It does not pause playback or record audio; check the existing mute state when avoiding unnecessary changes.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoAudio control structured result for audio. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare it is a non-read-only, non-destructive, non-idempotent, closed-world call. The description adds real value beyond that: it clarifies what the operation does not affect (playback, recording) and warns that state should be inspected first to avoid redundant changes, which fits the non-idempotent 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 followed by the exclusions. Nothing is redundant or padded.

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?

An output schema exists, so return values need no explanation, and the device parameter is fully documented. The description covers scope and the pre-check caveat; only explicit sibling routing is missing.

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?

The single parameter has full schema coverage with a description pointing to list_devices. The description adds no parameter-level detail, so baseline 3 applies.

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?

States a specific verb and resource: mute the paired computer system output. The scope qualifier ('system output') distinguishes it from audio_set_volume and audio_unmute, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Draws two explicit boundaries — it does not pause playback or record audio — and tells the agent to check the existing mute state first, which implies calling audio_status before muting. It stops short of naming the alternative tools outright.

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

audio_set_volumeAudio Set VolumeAInspect

Use this to set the paired computer system output volume to a requested supported level. This affects audible output immediately; it does not record or transmit audio.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
volumeYes0..100 for set_volume.

Output Schema

NameRequiredDescription
dataNoAudio control structured result for audio. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false, so the safety profile is covered; the description adds genuinely new context: the change is immediate and audible, and it neither records nor transmits audio. It does not say what happens on an out-of-range or unsupported level (clamp vs error), which leaves one behavioral gap.

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 sentences, both earning their place: the action and its trigger first, then the immediate-effect and privacy scope. Nothing is padded or restated from the title.

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 an output schema, full annotation coverage and 100% schema descriptions, the definition carries what an agent needs to invoke it. The only shortfall is not stating the failure mode for unsupported levels or what status is returned on the device side.

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 coverage is 100%, with 'device' tied to list_devices ids and 'volume' documented as 0..100, so the baseline is 3. The phrase 'supported level' hints the device may reject or clamp values but adds no syntax or format detail beyond the schema.

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?

The description names a specific verb and resource ('set the paired computer system output volume') plus the level semantics ('requested supported level'), so an agent can tell it apart from audio_mute/audio_unmute/audio_status by verb alone. It never names those siblings explicitly, so differentiation is implicit rather than stated.

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?

The opening 'Use this to...' frames the intent but gives no when-not conditions, no prerequisite (e.g. device must be paired/listed via list_devices), and no pointer to audio_mute when the goal is silencing rather than level-setting. Usage is implied by verb choice only.

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

audio_statusAudio StatusA
Read-onlyIdempotent
Inspect

Use this to inspect supported system output volume and mute state on a paired computer. It reads local audio settings without playing audio or changing the volume.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoAudio control structured result for audio. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the description's 'without changing the volume' largely restates them. The one genuinely additive point is 'without playing audio' (no audible side effect), but nothing is said about failure modes such as an unreachable or unpaired device.

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 tight sentences: the action and target come first, followed by a single negative constraint. No filler, no redundancy.

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 an output schema present and the sole parameter fully documented, the description need only convey scope and safety, which it does. It could add what happens when the paired device is offline, but that gap is minor for a read-only inspection 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 coverage is 100% and the single 'device' parameter already documents that it comes from list_devices. The description adds no further meaning to the parameter, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb ('inspect') and precise resource ('supported system output volume and mute state on a paired computer'), which an agent can immediately distinguish from the mutating siblings audio_set_volume, audio_mute and audio_unmute.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'reads local audio settings without playing audio or changing the volume' implicitly routes the agent here for inspection rather than mutation. It stops short of naming the setter siblings explicitly as alternatives, which a 5 would require.

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

audio_unmuteAudio UnmuteAInspect

Use this to unmute the paired computer system output on user request. It may make previously playing audio audible immediately; verify volume if necessary.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoAudio control structured result for audio. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-destructive mutation, and the description adds genuinely new behavioral context: audio may become audible immediately, which warns of a sudden-sound side effect. It also suggests a verification step. It stops short of stating any auth/pairing prerequisites beyond the schema's device reference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the action and its immediate consequence front-loaded, no filler. "paired computer system output" is slightly redundant phrasing, but nothing is wasted.

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?

A simple one-parameter toggle with an output schema, so return values needn't be explained. The description covers purpose, trigger, and the key side effect; the only minor gap is any prerequisite about the device being paired/enabled.

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?

Only one parameter, and the schema already documents it at 100% coverage including the pointer to list_devices. The description adds nothing about the device argument, which is acceptable since the schema carries the burden.

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?

States a specific verb (unmute) and resource (paired computer system output), so the operation is unambiguous and clearly the inverse of audio_mute. It doesn't explicitly name audio_mute or audio_status as siblings, but the intended action is unmistakable from the name/description pair.

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?

"on user request" gives a minimal trigger condition, and "verify volume if necessary" implies a follow-up check (presumably audio_set_volume or audio_status). No explicit when-not or named alternatives, so routing to the right sibling is left inferred.

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

browser_backBrowser BackAInspect

Use this to go back one page in the history of a selected Chromium tab. It may leave unsaved form data; choose the tab first and inspect the new page state afterward.

NameRequiredDescriptionDefault
waitNoWait for the page load event; default true.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser navigate structured result for browser_navigate. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior5/5

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

The description adds critical behavioral context beyond the annotations. It warns that the action 'may leave unsaved form data,' which alerts the AI to a potential data loss consequence not captured by the abstract `destructiveHint: false` annotation.

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?

The definition is highly concise. It provides the action, the target, and the necessary risk disclosure in two focused sentences, placing the warning about data loss effectively.

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

Completeness5/5

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

The description is highly complete. For a state-mutating tool, it covers the action, the scope (Chromium tab history), and the operational caveat (checking the state afterward), leaving the agent with all necessary context to use it safely.

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?

The schema description coverage is 100%, meaning the schema defines all technical parameters. The description mentions 'selected Chromium tab,' which semantically informs the agent about the entity being acted upon but does not add new meaning to the parameters themselves.

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

Purpose5/5

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

The description uses the specific verb 'go back one page' and clearly identifies the resource ('history of a selected Chromium tab'). This is entirely distinct from siblings like browser_forward or browser_navigate_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear operational guidance by stating the user must 'choose the tab first' and 'inspect the new page state afterward.' While it doesn't list explicit alternatives, the safety warning guides appropriate usage.

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

browser_clickBrowser ClickA
Destructive
Inspect

Use this to click a verified element on the current Chromium page by CSS selector or visible text. Inspect the tab and target first; clicking may submit forms, purchase items or delete data.

NameRequiredDescriptionDefault
textNoFor action=type, Unicode text to insert. For non-type element actions without selector/browser_text, visible text may identify the target.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector for the target element; prefer the reusable selector returned by browser_find.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
browser_textNoVisible text used only to locate a DOM element; use this instead of overloading text for action=type.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety bar is lower, but the description still earns credit by naming concrete consequences — submitting forms, purchasing items, deleting data — which tells the agent exactly what irreversible side effects to guard against. It stops short of saying whether the click waits for navigation or accepts confirm dialogs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first front-loads what the tool does and its two targeting modes, the second carries the risk warning. No filler, though it could have folded in the browser_find prerequisite it hints at.

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 covering the safety profile and an output schema present, the description only needs to convey purpose and risk, which it does. Missing only the explicit relationship to browser_find/browser_tabs for locating targets, which the schema descriptions partially supply.

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 coverage is 100% and each parameter (selector, browser_text, device, target_id, timeout_ms) is documented in the schema itself. The description only echoes the selector/visible-text distinction already present in the schema, adding no format or precedence guidance beyond it, so the baseline 3 applies.

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?

States a specific verb (click) plus resource (an element on the current Chromium page) and both targeting mechanisms (CSS selector or visible text). It distinguishes itself from generic click tools like ui_click/computer_click by scoping to the Chromium page and CSS selectors, though it never names those siblings explicitly.

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 precondition ("Inspect the tab and target first") and implies the element must already be verified, likely via browser_find, but never names browser_find, browser_snapshot or any alternative tool or the condition that would select them. Usage is implied rather than spelled out.

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

browser_evaluateEvaluate browser JavaScriptA
Destructive
Inspect

Use this when browser_snapshot, browser_find, browser_action and browser_wait cannot express the required page operation or inspection and JavaScript is necessary. It is a powerful page-context escape hatch, and page content is untrusted.

NameRequiredDescriptionDefault
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
expressionYesJavaScript expression.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.
await_promiseNoAwait a returned Promise; default true.

Output Schema

NameRequiredDescription
dataNoEvaluate browser JavaScript structured result for browser_evaluate. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the tool destructive and open-world; the description adds useful context by calling it a 'powerful page-context escape hatch' and warning that 'page content is untrusted.' This reinforces safety without contradicting the annotations.

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 sentences deliver the usage rule, the alternatives, and a security warning with no filler. The most important scoping information is front-loaded.

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?

Given the rich input schema, output schema, and annotations, the description covers what is needed for selection and safe invocation. It could add an explicit caution about arbitrary code execution potential, but the 'untrusted page content' warning largely covers this.

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%, so the input schema fully documents all eight parameters. The description adds no parameter-level meaning, but the baseline of 3 applies because the schema carries the semantic burden.

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

Purpose5/5

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

The description states a specific role: executing JavaScript in the page when the named browser_* tools cannot express the operation. It distinguishes itself from siblings (browser_snapshot, browser_find, browser_action, browser_wait) by naming exactly what it is not for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit decision rule: use this only when the four listed browser tools cannot express the required operation or inspection and JavaScript is necessary. This clearly routes the agent between alternatives without ambiguity.

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

browser_fill_formBrowser Fill FormA
Destructive
Inspect

Use this to fill several verified form fields on one inspected Chromium page in a bounded operation. Validate the origin, selectors and supplied values; filling does not implicitly authorize form submission.

NameRequiredDescriptionDefault
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
fieldsYesfill_form: 1–20 CSS form fields in one CDP call. Does not submit.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructive=true, non-idempotent and open-world, so the safety profile is partly covered. The description still adds meaningful context beyond them: origin/selector/value validation and the fact that filling does not imply form submission, which is the key behavioral boundary an agent could otherwise get wrong.

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 use case and followed by the safety boundary. Nothing is redundant with the schema and no sentence could be removed without losing information.

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?

Output schema exists, so return values need no explanation, and annotations carry the mutation safety profile. What remains is minor: behavior on partial failure or whether existing field values are overwritten is not stated, though 'bounded operation' and the staleness notes imply fail-without-write semantics.

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% and the schema itself explains selectors, expected_tag/expected_type staleness checks, the 1-20 field limit and device/endpoint/target_id resolution. The description adds only the 'verified fields' framing, so schema is doing the heavy lifting.

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?

States a specific verb and resource ('fill several verified form fields') plus scope ('one inspected Chromium page in a bounded operation'). It implicitly separates batch filling from single-field siblings like browser_type or browser_set_value via 'several', but never names them.

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?

'Use this to fill several verified form fields' gives the situation, and 'in one bounded operation' hints at batching rather than repeated single edits. However, no alternative tool is named and there are no explicit when-not conditions, so the routing decision remains inferred.

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

browser_findFind browser elementA
Read-onlyIdempotent
Inspect

Use this when the user needs to locate visible web elements by CSS selector, text or ARIA role and obtain reusable selectors/bounds. It requires an element criterion; use browser_snapshot, not an empty browser_find, to enumerate page structure. Prefer this before browser_action rather than guessing selectors or coordinates.

NameRequiredDescriptionDefault
roleNoARIA role.
textNoVisible text substring.
limitNoMaximum number of results to return.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoFind browser element structured result for browser_find. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context: a criterion is mandatory and an empty call is a misuse pattern. It stops short of describing result shape, but an output schema exists so that is acceptable.

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?

Three tight sentences: purpose and criteria first, the mandatory-criterion constraint second, and the routing preference third. No filler and the most decision-relevant information is front-loaded.

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

Completeness5/5

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

With full schema coverage, rich annotations, and an output schema that carries return values, the description covers everything an agent needs to select and invoke this tool correctly. The key pitfalls (empty call, guessing selectors) are called out.

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%, so the schema already documents all 10 parameters. The description only echoes the criterion parameters (selector/text/role) without adding format or usage detail beyond what the schema states, which is the baseline 3 case.

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

Purpose5/5

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

States a specific verb (locate) plus resource (visible web elements) and the three criteria it accepts (CSS selector, text, ARIA role), and notes the output value (reusable selectors/bounds). It also distinguishes itself from siblings by naming browser_snapshot for enumeration and browser_action for subsequent actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('when the user needs to locate visible web elements') plus a when-not ('use browser_snapshot, not an empty browser_find, to enumerate page structure') and an ordering preference ('Prefer this before browser_action rather than guessing selectors or coordinates'). Alternatives and the selecting condition are both spelled out.

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

browser_focusBrowser FocusAInspect

Use this to focus a specific existing Chromium page element by CSS selector or text before typing. It does not enter content; prefer browser_find for an unknown target.

NameRequiredDescriptionDefault
textNoFor action=type, Unicode text to insert. For non-type element actions without selector/browser_text, visible text may identify the target.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector for the target element; prefer the reusable selector returned by browser_find.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
browser_textNoVisible text used only to locate a DOM element; use this instead of overloading text for action=type.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the agent knows this changes state but is not destructive. The description adds real value by clarifying that focus does not insert content, but it does not say what focusing actually does (keyboard focus vs scroll-into-view) or what happens if the element is absent or ambiguous. Adequate, not rich.

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 tight sentences, front-loaded with the intended action and followed immediately by the exclusion and the redirect to the alternative. Zero filler.

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

Completeness5/5

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

The tool has an output schema and full parameter documentation, so return values and argument meanings are covered elsewhere. What remains the description's job — what the tool does, when to use it, what it does not do, and which sibling to use instead — is all present.

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%, so all nine parameters are already documented in the schema, and the description only restates the selector/text targeting choice. Baseline 3 applies since the schema carries the parameter burden; the description adds no syntax, precedence, or targeting-edge-case guidance.

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

Purpose5/5

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

Specific verb (focus) plus a precise resource (a specific existing Chromium page element), with both targeting mechanisms named (CSS selector or text). It also separates itself from the nearest sibling by stating 'prefer browser_find for an unknown target', so an agent can route between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use context ('before typing'), an explicit exclusion ('It does not enter content'), and names the alternative for the unknown-target case. It does not address overlap with other element-targeting siblings such as browser_scroll_into_view or browser_click, but the primary ambiguity is resolved.

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

browser_forwardBrowser ForwardAInspect

Use this to move forward one step in the history of a selected Chromium tab. It requires a previous backward navigation and does not submit page forms.

NameRequiredDescriptionDefault
waitNoWait for the page load event; default true.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser navigate structured result for browser_navigate. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare openWorldHint and destructiveHint=false, but the description adds genuinely new traits: navigation history semantics and that it 'does not submit page forms,' which is meaningful for an agent deciding between forward navigation and a form-triggering action.

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 sentences, no filler, with the primary action front-loaded and the precondition second. Nothing to cut.

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 an output schema and annotations present, the description covers the essentials. A minor gap is what happens at the end of history or on a page with no forward entry, but that is not required for correct invocation.

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?

Seven parameters with 100% schema description coverage, including how device, target_id, title, and url_contains select the tab. The description adds nothing about parameters, so the schema carries the load — baseline 3.

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?

States a specific verb+resource+scope: 'move forward one step in the history of a selected Chromium tab.' The mention of 'a previous backward navigation' implicitly distinguishes it from browser_back, though it never names the sibling outright.

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 an implied precondition ('requires a previous backward navigation'), which tells the agent when the tool is valid, but never states when to avoid it or names browser_back/browser_navigate_url as alternatives.

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

browser_navigate_urlBrowser Navigate UrlAInspect

Use this to navigate an identified Chromium tab to a user-requested URL via the paired computer local CDP session. Inspect or choose the target tab first; navigation may discard unsaved page state.

NameRequiredDescriptionDefault
urlYesDestination URL for action=url or action=new_tab.
waitNoWait for the page load event; default true.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser navigate structured result for browser_navigate. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior5/5

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

The description reveals a critical behavioral trait—that navigation may discard unsaved page state. This is vital context that goes beyond the simple state changes hinted at in the annotations.

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?

The description is highly efficient, front-loading the functional definition and immediately following it with a critical operational warning.

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

Completeness5/5

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

It provides the necessary operational context (paired computer CDP session) and warnings about state loss, making it highly complete for a complex navigational 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?

With 100% schema coverage, the schema already defines the parameters well. The description is clear but adds minimal semantic value beyond what the input structure provides.

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

Purpose5/5

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

The description clearly identifies the specific action (navigate) and the resource it acts upon (Chromium tab to a user-requested URL), distinguishing it from other sibling browser actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides strong usage guidance by specifying that a target tab must be inspected or chosen beforehand, implying this tool is not for blindly opening URLs.

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

browser_new_tabBrowser New TabAInspect

Use this to open a specified URL in a new Chromium browser tab on the paired computer. This does not navigate an existing tab; the URL is subject to browser security restrictions.

NameRequiredDescriptionDefault
urlYesDestination URL for action=url or action=new_tab.
waitNoWait for the page load event; default true.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser navigate structured result for browser_navigate. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.7/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the non-safe, non-repeatable, external-reaching nature is covered. The description adds one genuinely new caveat ('URL is subject to browser security restrictions'), but says nothing about focus behavior, whether the new tab becomes active, or what happens on load failure.

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 with zero filler, and the primary purpose is front-loaded ahead of the clarifying exclusion. Nothing could be removed without losing information.

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

Completeness3/5

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

An output schema exists and annotations cover the safety profile, so the description needn't explain return values. But for an 8-parameter tool it leaves the presence of target_id, title, and url_contains — page-selection parameters that look irrelevant to opening a new tab — completely unaddressed, which is a real ambiguity an agent must resolve alone.

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%, so every parameter is already documented in the schema and the baseline is 3. The description only gestures at the url parameter's constraint and adds no meaning beyond what the schema provides for device, wait, timeout_ms, or endpoint.

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?

States a specific verb and resource: 'open a specified URL in a new Chromium browser tab on the paired computer.' It also rules out the adjacent behavior with 'This does not navigate an existing tab,' which behaviorally separates it from browser_navigate_url, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to open...' gives a clear triggering condition, and the exclusion of existing-tab navigation signals when not to reach for it. However, it stops short of naming the alternative tool (browser_navigate_url or browser_tabs) that the agent should pick instead.

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

browser_pressBrowser PressA
Destructive
Inspect

Use this to send an explicit keyboard key or shortcut to the current inspected Chromium tab, such as Enter or Escape. Enter can submit forms; validate focus and user intent first.

NameRequiredDescriptionDefault
keyYesSingle key name such as Enter, Escape, Tab or A.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=false, but the description earns credit by explaining why: Enter can submit forms, so a key press can have irreversible effects. The instruction to validate focus and intent is genuine behavioral context beyond the annotation flags. It stops short of explaining how the target tab is resolved when target_id/title are omitted.

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 with zero filler, and the risk warning is front-loaded right after the core action. Nothing to trim.

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 100% schema coverage, an output schema, and destructive/open-world annotations already in place, the description covers what an agent needs to call it responsibly. The one residual gap is how a key is routed when neither target_id nor title is supplied and multiple tabs exist.

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 coverage is 100%, so every parameter including key, device, target_id and title is already documented in the schema. The description reinforces 'current inspected Chromium tab' as the default target, but adds no syntax, format, or selection-precedence details beyond the schema. Baseline 3 applies when the schema carries the load.

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?

The description names a specific verb and resource ('send an explicit keyboard key or shortcut to the current inspected Chromium tab') and gives concrete examples (Enter, Escape). It is clear what the tool does, but it never names browser_type or keyboard as the adjacent siblings, so the agent must infer the boundary itself.

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?

It gives a warning about validation ('Enter can submit forms; validate focus and user intent first') which implies cautious usage, but there is no explicit guidance on when to use this versus browser_type (text entry) or the generic keyboard tool. The usage context is implied rather than stated.

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

browser_reloadBrowser ReloadAInspect

Use this to reload an identified Chromium tab, optionally bypassing cache. Reloading may lose unsaved form state; use a browser snapshot to verify the resulting page.

NameRequiredDescriptionDefault
waitNoWait for the page load event; default true.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
ignore_cacheNoReload without cache when action=reload.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser navigate structured result for browser_navigate. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is known. The description adds real value beyond them by warning that unsaved form state may be lost and directing verification via snapshot — an important caveat not encoded in any annotation or schema field.

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 sentences with zero filler; the caveat about unsaved form state and the verification hint follow immediately after the action, and the cache option is front-loaded.

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?

An output schema exists and annotations cover safety, so the description needn't explain returns. It covers the action, the main risk, and a verification step; only minor gaps remain (no explicit sequencing constraints for wait vs. snapshot) for an 8-parameter 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%, so every parameter (device, target_id, title, url_contains, ignore_cache, wait, timeout_ms) is already documented. The description only echoes the target-identification idea ('identified tab') and the cache bypass ('optionally bypassing cache'), adding no format or selection-precedence detail beyond the schema.

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

Purpose5/5

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

States a specific verb and resource (reload an identified Chromium tab) plus the optional cache-bypass variant, so an agent can distinguish this from browser_navigate_url or browser_snapshot without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use ('reload an identified... tab') and points to a concrete follow-up (browser_snapshot to verify the resulting page). It does not name an explicit when-not or an alternative tool for the case where reload is the wrong choice, so it stops short of a 5.

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

browser_scrollBrowser ScrollAInspect

Use this to scroll an identified Chromium tab by a bounded amount or direction. This changes the viewport only; use scroll_into_view when a known target element should become visible.

NameRequiredDescriptionDefault
deltaNoAlias for delta_y.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
delta_xNoHorizontal scroll delta; positive means right.
delta_yNoVertical scroll delta; positive means down.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
directionNoHuman-readable scroll direction used with wheel_times instead of explicit deltas.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
wheel_timesNoNumber of 120-unit wheel steps for direction; 1..50.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.7/5.0
Behavior4/5

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

The description adds a key behavioral trait by stating that the action 'changes the viewport only.' This manages the agent's expectation regarding page content mutation or state change, adding value beyond what annotations provide.

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?

The definition uses two highly efficient sentences. The first defines the action and scope, while the second provides the critical selection logic for the agent without any wasted words.

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

Completeness5/5

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

Given the complexity of the input schema (11 parameters and multiple ways to identify targets), the description provides the essential meta-logic needed to correctly select this tool over its similar scrolling siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While the schema coverage is 100%, the description adds conceptual value by categorizing the operations—either moving by a 'bounded amount' (deltas) or by 'direction' (wheel/enum)—helping the agent structure the input intent.

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

Purpose5/5

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

The description clearly states the tool scrolls an identified tab by a bounded amount or direction. Crucially, it differentiates itself from the sibling tool, browser_scroll_into_view, by specifying the scope of its operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides an explicit comparison and guideline: use this tool for bounded movement or direction change, and use scroll_into_view only when a specific target element must become visible.

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

browser_scroll_into_viewBrowser Scroll Into ViewAInspect

Use this to scroll a specified Chromium page element into view using its verified selector or visible text. It does not click the element or change its value.

NameRequiredDescriptionDefault
textNoFor action=type, Unicode text to insert. For non-type element actions without selector/browser_text, visible text may identify the target.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector for the target element; prefer the reusable selector returned by browser_find.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
browser_textNoVisible text used only to locate a DOM element; use this instead of overloading text for action=type.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false and openWorldHint=true; the description reinforces non-destructiveness by stating it does not click or change values, which is genuinely additive. It does not disclose failure behavior (element not found, timeout), whether it waits for visibility, or why readOnlyHint is false for a scroll operation.

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 immediately followed by the scope boundary. No filler or redundancy.

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 an output schema and full annotation coverage, the description only needs to carry intent and scope, which it does. The one residual gap is behavior on failure or non-visible targets, minor given the structured data available.

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 coverage is 100%, so all nine parameters (device, endpoint, target_id, timeout_ms, title, url_contains, etc.) are already documented. The description only echoes selector/text targeting, adding no syntax or selection guidance beyond the schema; baseline 3 is appropriate.

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?

States a specific verb (scroll into view) and resource (a Chromium page element), plus the two targeting mechanisms (selector or visible text). It is distinguishable from browser_scroll in principle, but the description never names browser_scroll or ui_scroll_into_view, so the sibling boundary must be inferred.

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?

The second sentence provides a useful negative scope ('does not click the element or change its value'), which implicitly rules out browser_click and browser_set_value. However, there is no explicit guidance on when to choose this over browser_scroll, ui_scroll_into_view, or browser_find.

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

browser_selectBrowser SelectA
Destructive
Inspect

Use this to select an option from a native HTML select control on an inspected Chromium page. Verify the selector and valid option first; selection can trigger dependent form updates.

NameRequiredDescriptionDefault
textNoFor action=type, Unicode text to insert. For non-type element actions without selector/browser_text, visible text may identify the target.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
optionNoOption value to select in a browser select element.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector for the target element; prefer the reusable selector returned by browser_find.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
browser_textNoVisible text used only to locate a DOM element; use this instead of overloading text for action=type.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already disclose that this is destructive, non-idempotent, and open-world, so the description only needs to add useful context. It does that by warning that selection can trigger dependent form updates, which is a meaningful behavioral trait beyond the annotations.

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?

The description is two tightly written sentences with no wasted language. The core action is front-loaded, followed immediately by the key safety precondition and side-effect warning.

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 full schema coverage, rich annotations, and an output schema, the description supplies the most important missing behavioral caveat about dependent form updates. It is nearly complete, though it could further clarify native-select-only boundaries versus custom controls and alternatives.

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%, so the schema already documents all ten parameters thoroughly. The description mentions selector and option verification, but adds no syntax or format details beyond what the schema provides, making the baseline score of 3 appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: selecting an option from a native HTML select control on an inspected Chromium page. The phrase 'native HTML select control' clearly distinguishes this from sibling tools like browser_click, browser_type, or browser_set_value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context and a precondition: verify the selector and valid option first. However, it does not explicitly name alternatives or say when not to use this tool, such as for custom dropdowns that are not native HTML selects.

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

browser_set_valueBrowser Set ValueA
Destructive
Inspect

Use this to set a specific Chromium form field value through guarded DOM interaction rather than individual keystrokes. Inspect the page and selector first; changing the field can trigger page events.

NameRequiredDescriptionDefault
textNoFor action=type, Unicode text to insert. For non-type element actions without selector/browser_text, visible text may identify the target.
titleNoChoose a page whose title contains this text.
valueNoValue for action=set_value; also accepted as a legacy type payload when text is used as the locator.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector for the target element; prefer the reusable selector returned by browser_find.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
browser_textNoVisible text used only to locate a DOM element; use this instead of overloading text for action=type.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructive, non-idempotent, open-world writes. The description adds genuinely new context: interaction is 'guarded DOM' rather than synthetic keystrokes, and changing the field 'can trigger page events' (change/blur handlers) - a side effect an agent must anticipate. It does not discuss failure modes or permissions, hence not a 5.

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 sentences, front-loaded with purpose and immediately followed by the operational caveat; there is no filler or restatement of the title.

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 an output schema and fully documented parameters, the description only needs to convey purpose, prerequisite, and side effects - which it does. Some gap remains around target/page selection across the 10 params, but the schema covers those.

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%, so the schema already documents selector, value, device, target_id, timeout_ms and the text/browser_text overload. The description only hints at 'selector' and 'value' without adding format or precedence guidance, so the baseline 3 applies.

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?

States a specific verb and resource ('set a specific Chromium form field value') and contrasts the mechanism with keystroke typing, which implicitly separates it from browser_type. It stops short of naming that sibling or browser_fill_form, but the action is unambiguous.

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?

'Use this to ... rather than individual keystrokes' implies when this tool is preferable to browser_type/browser_fill_form, and 'Inspect the page and selector first' gives a prerequisite. However, no sibling is named and no explicit when-not condition is stated.

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

browser_set_viewportBrowser Set ViewportAInspect

Use this to change an inspected Chromium tab viewport width, height and optional mobile scale for responsive testing. It changes browser emulation, not the host monitor resolution.

NameRequiredDescriptionDefault
titleNoChoose a page whose title contains this text.
widthYesCSS viewport width for set_viewport.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
heightYesCSS viewport height for set_viewport.
mobileNoEnable mobile emulation for set_viewport.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.
device_scale_factorNoDevice scale factor for set_viewport; default 1.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true. The description adds real value beyond them by bounding the blast radius — it mutates browser emulation state only, not the host display. It does not say whether the viewport persists across navigations or resets, which would be the next useful fact.

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 tight sentences with no filler, and the primary action is front-loaded before the clarifying scope note. Every clause earns its place.

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 an output schema present and full parameter documentation, the description only needs to convey purpose and scope, which it does. The one gap is device/target selection semantics — whether the viewport applies to the whole device session or a single tab — which the agent must infer from parameters.

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%, so every parameter (device, width, height, mobile, device_scale_factor, target_id, endpoint, timeout_ms) is already documented in the schema. The description only echoes the width/height/mobile fields, adding no format or constraint detail beyond the structured data. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('change an inspected Chromium tab viewport width, height and optional mobile scale') and scopes it by purpose ('for responsive testing'). The clause 'changes browser emulation, not the host monitor resolution' crisply separates it from display/window tools such as window_resize.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is clear: responsive-testing viewport emulation on an inspected tab. It does not name an explicit alternative or when-not condition (e.g., use window_resize for the real window), so it stops short of a 5.

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

browser_snapshotBrowser snapshotA
Read-onlyIdempotent
Inspect

Use this when the user needs to inspect a web page structurally through CDP accessibility. Reuse the last snapshot_id as diff_from to return changed/removed semantic nodes rather than retransmitting the whole page after each step; refresh with a full snapshot when unavailable. Prefer it over desktop ui_snapshot for page content; add include_screenshot=true only when final pixel/layout verification is needed. A selector may be temporarily centered for capture, but the original page scroll position is restored before the tool returns.

NameRequiredDescriptionDefault
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoWhen include_screenshot=true, center this CSS-selected element before capture and report its viewport bounds.
diff_fromNoOptional previous opaque snapshot_id for this exact target/page and node limit. Return changed/removed AX nodes only; if stale or mismatched, safely return a full snapshot.
max_nodesNoMaximum AX nodes; default 1500.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.
include_screenshotNoAttach a real CDP-rendered viewport PNG screenshot; default false.

Output Schema

NameRequiredDescription
dataNoBrowser snapshot structured result for browser_snapshot. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/open-world, so the safety profile is covered. The description still adds non-obvious behavior: a selector may be temporarily centered for capture and the original scroll position is restored before return, plus the stale/mismatched diff_from fallback to a full snapshot. It stops short of describing pagination or output size limits, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the use case, then workflow, then sibling comparison and the scroll caveat. Dense but every sentence carries distinct information; slightly long for a tool whose params are already fully documented.

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

Completeness5/5

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

With an output schema present, rich annotations, and 100% schema coverage, the description only needs to supply selection/workflow guidance, which it does thoroughly, including the one side effect (temporary scroll adjustment) an agent would otherwise not anticipate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds operational meaning beyond the schema for diff_from (reuse the prior snapshot_id to get changed/removed nodes, stale input degrades safely) and the selector/include_screenshot pairing (center-and-report viewport bounds). Other params (device, endpoint, max_nodes) rely on the schema.

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

Purpose5/5

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

States a specific verb and resource ('inspect a web page structurally through CDP accessibility'), and names the sibling it is not ('Prefer it over desktop ui_snapshot for page content'), so an agent can distinguish it from ui_snapshot and computer_snapshot without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use rules for the key optional params: reuse the last snapshot_id as diff_from after each step, fall back to a full snapshot when unavailable, and add include_screenshot=true only when final pixel/layout verification is needed. The alternative (desktop ui_snapshot) and the condition selecting it are spelled out.

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

browser_tabsBrowser tabsA
Read-onlyIdempotent
Inspect

Use this when starting CDP browser automation and the target page or tab is not already unambiguous. It lists debuggable Chromium pages from a loopback-only endpoint; use the returned target_id/title/url to scope later browser tools.

NameRequiredDescriptionDefault
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds real context beyond that: the endpoint is loopback-only, it enumerates debuggable Chromium pages, and the returned target_id/title/url feed subsequent browser calls. It omits failure modes (no browser running, connection refused), which keeps it at 4.

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 sentences, zero waste, front-loaded with the usage condition followed by the mechanics and the downstream payoff. Nothing redundant with the schema or annotations.

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?

An output schema exists, so return values need not be spelled out, and the description correctly points at what to do with them. For a 6-param discovery tool it is nearly complete; only error/timeout behavior is unaddressed.

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%, so the schema already documents title/device/endpoint/target_id/timeout_ms/url_contains. The description only alludes to target_id/title/url as return values, adding no filtering syntax or default behavior beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb (lists) and resource (debuggable Chromium pages) plus the scope of the source (loopback-only CDP endpoint). An agent can distinguish this from siblings like browser_snapshot or browser_new_tab purely from the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the triggering condition: 'when starting CDP browser automation and the target page or tab is not already unambiguous,' and explains that the returned ids scope later browser tools. It doesn't name competing tools (e.g. browser_find, browser_new_tab) or exclusions, so it stops short of a 5.

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

browser_typeBrowser TypeA
Destructive
Inspect

Use this to enter user-provided text into a verified Chromium page field, optionally clearing existing text. Confirm the origin and field first; do not put sensitive data into an untrusted page.

NameRequiredDescriptionDefault
textYesFor action=type, Unicode text to insert. For non-type element actions without selector/browser_text, visible text may identify the target.
clearNoFor action=type, clear the current value before inserting text.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector for the target element; prefer the reusable selector returned by browser_find.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
browser_textNoVisible text used only to locate a DOM element; use this instead of overloading text for action=type.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, but the description adds real context the annotations don't carry: text entry may overwrite existing content unless cleared is considered, and there is explicit guidance against entering sensitive data into an untrusted page. It does not explain focus/selector prerequisites or failure behavior, keeping it short of a 5.

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 followed by the safety caveat. No filler and nothing that repeats the schema.

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 an output schema, full parameter descriptions, and annotations covering safety, the description supplies the remaining human-level context: verified page, origin confirmation, sensitive-data avoidance. The one missing piece for a 10-parameter, heavily-siblinged tool is any signal about how it differs from browser_set_value or browser_fill_form.

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%, so every one of the 10 parameters is already documented at the property level. The description only echoes the 'clear existing text' concept and the idea of a target field; it adds no syntax or selection guidance beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource: entering user-provided text into a verified Chromium page field, with optional clearing. Clear and actionable, but it never distinguishes itself from nearby siblings such as browser_set_value, browser_fill_form, type_text, or computer_type, so an agent can't tell from the description alone which typing tool to pick.

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 use condition ('enter user-provided text into a verified Chromium page field') and a safety precondition ('Confirm the origin and field first'), but names no alternatives and no when-not-to-use case relative to the many sibling input tools. Usage is implied rather than routed.

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

browser_uploadBrowser UploadA
Destructive
Inspect

Use this to attach a user-authorized local file to an inspected Chromium file-input element. Check the exact file path, site origin and target input first; the page may receive the file contents.

NameRequiredDescriptionDefault
pathNoPermitted local filesystem path.
pathsNoList of permitted local filesystem paths.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorYesCSS selector for the target element; prefer the reusable selector returned by browser_find.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the definition's added value is the disclosure that "the page may receive the file contents" — an exfiltration/data-flow warning an agent would not infer from the flags alone — plus the instruction to verify path and origin beforehand. It stops short of stating reversibility or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the action front-loaded before the safety caveat, and no filler. The second sentence is dense but each clause (path, origin, target input, page receives contents) carries distinct information.

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 9 parameters but full schema coverage and an output schema present, the description need not explain fields or returns. It covers the two things structured data cannot: the risky side effect on the remote page and the need to verify target/origin first. Minor gap on how failures or timeout behavior surface.

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%, so device, selector, path, paths, target_id and timeouts are already documented in the schema. The description refers to the file path and target input generically and adds no format, mutual-exclusivity (path vs paths), or selector-selection detail beyond structured data.

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?

States a specific verb and resource: attaching a user-authorized local file to a Chromium file-input element. That distinguishes it from browser_type/browser_fill_form, which set values rather than transfer local file contents, though it does not name those siblings explicitly.

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?

"Check the exact file path, site origin and target input first" and "an inspected ... element" imply the precondition of inspecting the page via browser_find/browser_tabs before calling, which the schema reinforces. However, there is no explicit when-not guidance or direct routing to an alternative tool for non-file-input cases.

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

browser_waitWait for browserA
Read-onlyIdempotent
Inspect

Use this when browser navigation or an action must be followed by proof of selector/text/URL/load/navigation/network-idle instead of fixed sleeps or screenshot polling. Use browser_evaluate separately for JavaScript predicates.

NameRequiredDescriptionDefault
textNoText required by the selected action.
titleNoChoose a page whose title contains this text.
valueNoValue required by the selected action.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
idle_msNoRequired zero-in-flight network quiet window for network_idle; default 500 ms.
poll_msNoPolling interval in milliseconds.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector identifying a web element.
conditionNoSemantic condition to wait for; choose the condition that directly proves the requested state transition.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoWait for browser structured result for browser_wait. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive safety, so the burden is low. The description adds genuine mechanism context: it is event-driven (proof of a state transition) rather than heuristic polling or fixed sleeps, and it distinguishes itself from browser_evaluate for JS predicates. It still doesn't disclose failure/timeout behavior (what happens when the condition never holds), which is the main residual gap for a blocking tool.

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 tight sentences, front-loaded with the triggering situation, then the explicit exclusion/alternative. No filler and no repetition of schema content.

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?

An output schema exists and schema coverage is 100%, so return-value explanation is unnecessary, and the annotations cover the safety profile. The description covers when-to-use and the sibling alternative well; the only meaningful omission is the timeout/failure semantics of a blocking wait, which matters for correct agent orchestration.

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%, so the schema already carries the parameter documentation burden. The description names the condition values that map to the schema's enum but adds no format, default, or interaction detail (e.g. how condition gates selector/text/value requirements) beyond what the schema encodes. Baseline 3 applies.

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?

The description frames the tool as proof-of-condition waiting for navigation/actions and enumerates the six condition types (selector/text/URL/load/navigation/network-idle), which distinguishes it from sibling action tools. However, it never states the core verb+resource directly ('wait until a condition holds'), phrasing everything as usage guidance, so the agent has to infer the purpose from the condition list plus the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it (after navigation or an action that must be followed by proof of selector/text/URL/load/network-idle), what NOT to use instead (fixed sleeps or screenshot polling), and routes JavaScript predicates to browser_evaluate. Both the positive trigger and the alternative path are named.

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

browser_workflowBrowser WorkflowA
Destructive
Inspect

Use this for an explicitly requested sequence of 1–12 guarded DOM actions and bounded waits on one inspected Chromium page. Validate CSS selectors first. The workflow cannot run arbitrary JavaScript, upload files, switch origins or implicitly submit a form; an explicit click may submit data or cause irreversible remote changes. Stop at the first failed step and never echo field values.

NameRequiredDescriptionDefault
stepsYesWorkflow on one page: explicit CSS actions and bounded waits, max 12 seconds. Never silently submits; click must be explicit.
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescription
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: failure semantics ('stop at the first failed step'), the 12-second execution bound, the irreversible-remote-change risk from an explicit click, and the privacy rule 'never echo field values'. These are behavioral facts an agent cannot get from readOnlyHint/destructiveHint alone, and they are consistent with destructiveHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the usage trigger, then constraints, then failure behavior; four dense sentences with no filler. Sentences are long and pack multiple rules each, which costs a bit of scanability.

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

Completeness5/5

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

An output schema exists and annotations carry the safety profile, so the description only needs to cover scope, limits and failure handling — which it does completely: size bound, time bound, banned operations, stop-on-first-failure, and data-handling rule.

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 coverage is 100%, so the steps array, action enum, fields guards and timeout_ms are already fully documented. The description adds only framing value — 'guarded' hints at expected_tag/expected_type and '1–12' restates maxItems — without explaining value/text/condition semantics beyond the schema.

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?

States a concrete verb and resource: a batched 'sequence of 1–12 guarded DOM actions and bounded waits on one inspected Chromium page'. The batching bound implicitly separates it from the atomic browser_click/browser_fill_form/browser_wait siblings, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this for an explicitly requested sequence' sets the triggering condition, and the exclusions (no arbitrary JavaScript, no file upload, no origin switch, no implicit submit) effectively route the agent to browser_evaluate, browser_upload and browser_navigate_url. Alternatives are described by capability rather than by name, so it stops short of a 5.

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

clipboard_clearClipboard ClearA
Destructive
Inspect

Use this to clear the paired computer clipboard on user request, for example after handling sensitive copied text. This irreversibly removes its current contents from the clipboard.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoClipboard structured result for clipboard. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds the key consequence beyond that: the removal is irreversible and destroys the current contents. It still doesn't mention confirmation requirements or error behavior when the target device is offline.

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 sentences, no filler, and the primary usage trigger is front-loaded before the irreversibility warning.

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

Completeness5/5

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

An output schema exists and the single parameter is fully documented, so the description only needs to convey purpose, trigger, and destructiveness — all of which it does. Nothing an agent needs to call this correctly is missing.

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?

Single 'device' parameter is fully documented in the schema, including its dependency on list_devices, and the description adds nothing further. Baseline 3 applies when schema coverage is 100%.

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

Purpose5/5

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

States a specific verb ('clear') plus resource ('paired computer clipboard'), which cleanly separates it from sibling tools clipboard_read and clipboard_write. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'On user request, for example after handling sensitive copied text' gives a concrete triggering scenario. It does not explicitly name alternatives (e.g., use clipboard_write to overwrite instead) or state when not to use it, so it falls short of a 5.

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

clipboard_readClipboard ReadA
Read-onlyIdempotent
Inspect

Use this when the user asks to inspect the current clipboard text on a paired computer. Clipboard contents may be sensitive; read them only when needed and do not send them to unrelated sites.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoClipboard structured result for clipboard. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.7/5.0
Behavior5/5

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

While annotations cover technical safety (readOnlyHint: true), the description adds critical behavioral context about the data itself ('Clipboard contents may be sensitive') and ethical guidelines ('do not send them to unrelated sites').

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?

The definition is concise and perfectly structured: first, it states the functional purpose, and second, it immediately follows up with crucial safety and behavioral constraints. Both sentences are necessary.

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

Completeness5/5

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

The tool is simple (one parameter) and highly annotated. The description provides all necessary context regarding the tool's purpose, safety profile, and appropriate usage, leaving no ambiguity for the agent.

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%. The parameter `device` is fully detailed in the input schema itself. Therefore, the description adds no meaningful semantic value beyond the required baseline when structured data is complete.

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

Purpose5/5

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

The description clearly defines the function ('inspect the current clipboard text') and the domain ('on a paired computer'). Given the extensive sibling list, this is highly specific and distinguishes it from write or clear operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a perfect trigger condition ('when the user asks to inspect the current clipboard text'). Crucially, it also provides strong usage restrictions regarding data sensitivity and when to use it ('read them only when needed').

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

clipboard_writeClipboard WriteA
Destructive
Inspect

Use this to place user-authorized text on the paired computer clipboard for pasting into an application. This overwrites the previous clipboard contents but does not itself paste or submit data.

NameRequiredDescriptionDefault
textYesText to write.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoClipboard structured result for clipboard. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true; the description earns credit by specifying exactly what gets destroyed ("overwrites the previous clipboard contents") and by clarifying scope ("does not itself paste or submit data"). It stops short of stating device availability/auth requirements or error behavior on an offline device.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and followed by the key behavioral caveat. No padding, though the second sentence bundles two ideas (overwrite, no paste) that could be slightly sharper.

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

Completeness5/5

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

Output schema exists so return values need not be explained, the parameters are fully documented, and the description covers the essential safety caveat (overwrite) plus the non-paste semantics for an operation on a remote device. Enough for correct invocation.

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 coverage is 100%, with both device and text fully documented in the schema, so baseline 3 applies. "user-authorized text" adds a mild constraint nuance but no format, size, or device-targeting detail beyond the schema.

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?

States a specific verb and target (place text on the paired computer clipboard) plus the downstream goal (pasting into an application), which distinguishes it from pure input tools like type_text or keyboard. It doesn't name its nearest siblings clipboard_read/clipboard_clear, so sibling differentiation is only partial.

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?

"Use this to place user-authorized text..." gives an implied usage context and "does not itself paste or submit data" implicitly rules out pasting workflows. However, no alternative tool is named and there is no explicit when-not guidance, so selection versus clipboard_clear or type_text is left to inference.

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

computer_add_to_selectionComputer Add To SelectionA
Destructive
Inspect

Use this to add an identified native list or tree item to an existing multi-selection without replacing the other selected items. Confirm the target and current selection first.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
valueNoNew value for set_value, set_range_value, or select.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: the operation is additive rather than replacing, and it should be preceded by confirming the target and current selection. It omits what happens on duplicate/already-selected items or failure modes.

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 tight sentences with zero waste: the additive semantics come first, then the precondition. Nothing is repeated from the title or schema.

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?

For an 18-parameter tool, the schema and output schema cover targeting and return values, and annotations cover safety, so the description's job is the selection semantics — which it does well. It could have clarified that it applies to native accessibility targets rather than browser/OCR paths, given the many targeting options.

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 coverage is 100% across 18 parameters, so the schema carries the parameter burden and baseline is 3. The description only loosely gestures at identification ("identified ... item") and target confirmation, adding nothing about the id/label/target fields or the coordinate/OCR fallbacks.

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?

States a specific verb and resource ("add an identified native list or tree item") plus the key effect ("to an existing multi-selection without replacing the other selected items"). That additive semantics implicitly separates it from computer_select and computer_multi_select, though neither sibling is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this to add ... without replacing the other selected items" gives clear selection context and a prerequisite ("Confirm the target and current selection first"). It stops short of naming the alternative tools or stating 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.

computer_clickComputer ClickA
Destructive
Inspect

Use this to click an identified native desktop control or screen coordinate on a paired computer after inspecting the current UI. Clicking can submit forms, activate buttons or change data; use a semantic target when available.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and non-idempotency; the description earns credit by concretizing what that means — clicks can submit forms, activate buttons, or change data. It does not address permissions, focus/activation side effects, or failure behavior, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence, front-loaded with purpose followed by the consequence warning and the targeting preference. No filler, though the sentence is long and could have been split for scannability.

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

Completeness3/5

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

With 18 optional parameters, an output schema, and rich annotations, the description is adequate but thin: it doesn't explain the precedence among its many targeting modes (id vs label vs selector vs ocr_text) or when this tool is correct versus the overlapping ui_click/pointer_click siblings.

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 coverage is 100% with rich per-parameter descriptions (including the auto target resolution order), so the baseline is 3. The description only echoes the coordinate-vs-semantic distinction already spelled out in the x/y/id/target fields, adding no new parameter meaning.

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?

States a specific verb and resource: click a native desktop control or screen coordinate on a paired computer. Scope is clear, but with near-duplicate siblings like ui_click, pointer_click, and browser_click in the set, it never explicitly says how it differs from them.

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?

"After inspecting the current UI" gives a usable precondition, and "use a semantic target when available" implies preferring element targeting over coordinates. However, that preference is expressed as parameter selection within this tool, not as routing guidance against ui_click/pointer_click, which an agent must still guess between.

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

computer_collapseComputer CollapseB
Destructive
Inspect

Use this to collapse an identified expanded tree item, menu or disclosure control. Inspect the target first and avoid hiding information needed for the next action.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is known. The description adds the genuinely useful note that collapsing can hide information required for the next step, which explains the destructive hint in practical terms, but says nothing about what happens when the target is already collapsed, and nothing about permissions or side effects on selection/focus.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the action up front and the caution immediately after; nothing is wasted. Minor deduction because the caution's phrasing ('information needed for the next action') is slightly abstract for an operational instruction.

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

Completeness3/5

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

An output schema exists and annotations are rich, so return values and safety need not be re-explained. But for a 17-parameter tool with an enum target and multiple fallback strategies, the description gives no indication of which target types are valid for collapse or how it behaves when the element is not expanded, leaving a real gap.

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% across all 17 parameters, each with its own documentation, so the schema carries full param meaning. The description contributes no guidance on which targeting mode (id, label, coordinates, ocr_text, selector) is preferred for collapse, so baseline 3 applies.

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?

States a concrete verb (collapse) and concrete resources (expanded tree item, menu, disclosure control), which is more specific than the sibling name computer_expand alone. It does not distinguish itself from the near-duplicate ui_collapse or from computer_toggle, which could also collapse a control, so an agent still has to guess which of the three to call.

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?

'Inspect the target first' gives a precondition, and 'avoid hiding information needed for the next action' gives a caution about when not to collapse. However, it never names an alternative or says when computer_expand, ui_collapse, or computer_toggle should be chosen instead, leaving the selection decision implicit.

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

computer_dragComputer DragA
Destructive
Inspect

Use this for a real drag-and-drop or selection gesture between verified native desktop elements or screen coordinates. Confirm the source and destination first; dropping can move files or change application state.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
to_xNoDrag destination X coordinate.
to_yNoDrag destination Y coordinate.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
to_idNoDestination semantic UI element id for action=drag.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
from_xNoDrag source X coordinate.
from_yNoDrag source Y coordinate.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
from_idNoSource semantic UI element id for action=drag.
hold_msNoDelay after pointer down before moving during action=drag.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
duration_msNoDrag movement duration.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true. The description reinforces this with concrete consequence language ('dropping can move files or change application state') and adds a verify-endpoints-first prerequisite that annotations cannot express — genuine added context, though it says nothing about failure modes, permissions, or what happens on an aborted drag.

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 tight sentences, zero filler, with the action framing front-loaded before the risk note. Every sentence earns its place.

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

Completeness3/5

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

An output schema exists and annotations cover the safety profile, lowering the bar. However, for a 26-parameter destructive gesture tool with two distinct targeting modes, the description omits how to specify source and destination consistently, leaving an agent to infer valid parameter combinations that the schema does not enforce via required fields beyond 'device'.

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 coverage is 100% across 26 parameters, so the schema carries the burden and a baseline 3 applies. The description adds the useful framing that endpoints may be semantic elements or raw screen coordinates, but never names the corresponding parameter pairs (from_id/to_id vs from_x/to_x/from_y/to_y), hold_ms/duration_ms gesture timing, or the target mode selector.

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?

The description states a specific verb (drag-and-drop / selection gesture) and scope (between native desktop elements or screen coordinates), which is much clearer than the bare tool name. It does not distinguish itself from close siblings such as drag_drop, pointer_down/pointer_move/pointer_up, or computer_select, so an agent cannot rule those out from the text alone.

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?

"Confirm the source and destination first" implies a precondition, and the warning about consequences hints at when caution is needed. But there is no explicit guidance on when to pick this over drag_drop or a manual pointer_down/move/up sequence, and no statement of what 'verified' means or how to verify.

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

computer_expandComputer ExpandA
Destructive
Inspect

Use this to expand an identified native tree item, menu or disclosure control. This reveals child controls and may trigger application-side effects depending on the target.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already disclose destructiveHint=true and openWorldHint=true, so the description does not need to repeat safety warnings. It meaningfully adds that expansion 'reveals child controls' and 'may trigger application-side effects depending on the target,' which is useful behavioral context beyond annotations, though it stops short of detailing what those effects might be.

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 sentences with no waste, front-loading the core action before adding the behavioral caveat. Every sentence earns its place.

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?

Given the rich schema (100% coverage), output schema, and annotations, the description provides enough purpose and side-effect context for an agent to call the tool correctly. It could better acknowledge the multi-target capabilities shown in the schema (browser, OCR, coordinates) rather than focusing only on native controls, but it is largely complete.

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%, so the schema already documents all 17 parameters. The description adds no parameter-specific meaning, leaving baseline 3 appropriate for a definition whose schema does the heavy lifting.

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?

The description states a specific verb ('expand') and names concrete resources ('native tree item, menu or disclosure control'), so the core action is clear. It does not differentiate from sibling tools like ui_expand or computer_collapse, leaving the agent to infer which expand variant to use.

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?

The phrase 'Use this to expand' provides implied guidance but offers no explicit when-to-use/when-not-to-use conditions and no alternatives. The agent must infer that this is the right tool from context alone.

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

computer_focusComputer FocusAInspect

Use this to bring an identified native desktop control into focus before typing or interacting with it. Prefer a current semantic target; focusing alone does not type text or activate a button.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false; the description adds meaningful behavioral context by clarifying that focusing is non-activating (no typing/button activation), which resolves ambiguity about side effects. It doesn't cover return values, but the output schema exists.

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 tightly worded sentences with zero waste, and the primary action is front-loaded ahead of the limitation caveat.

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?

For a complex 17-parameter tool with an output schema and full schema coverage, the description supplies the essential behavioral framing. It doesn't explain target-type tradeoffs in depth, but structured fields fill that gap.

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 coverage is 100%, so all 17 parameters are already documented in the schema. The description adds no parameter-level detail beyond 'semantic target', leaving the schema to carry the burden. Baseline 3 is correct.

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?

States a specific verb and resource ('bring an identified native desktop control into focus'), which implicitly distinguishes it from browser_focus and window_focus by specifying 'native desktop control'. It doesn't explicitly name those siblings, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context: 'before typing or interacting with it' establishes the when, and 'Prefer a current semantic target' gives selection guidance. The caveat 'focusing alone does not type text or activate a button' rules out misuse, though no siblings are named as alternatives.

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

computer_invokeComputer InvokeA
Destructive
Inspect

Use this when the user asks to activate an identified native desktop accessibility control on a paired computer, such as invoking a menu item or button. Resolve the intended control from a recent computer_snapshot or ui_find first. Invoking it can submit forms, change application state, or trigger irreversible actions; it does not run arbitrary shell commands or page JavaScript.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, but the description adds genuine context beyond them: that invoking can submit forms, change application state, or trigger irreversible actions, and explicitly that it does not run shell commands or page JavaScript. This scoping of side effects is useful and non-redundant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: usage trigger, prerequisite resolution step, then behavioral risks and non-goals. Front-loaded and free of filler, though the caveat clause is slightly dense.

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?

An output schema exists so return values need no explanation, and annotations cover the safety profile. The description supplies the trigger, the resolution prerequisite, and side-effect scope, leaving only parameter-selection heuristics unaddressed despite 17 parameters.

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% across all 17 parameters, so the schema already documents id, name, role, target, label, etc. in detail. The description adds no parameter-level guidance (e.g., which of id/name/label/coordinates to prefer), so the baseline 3 is appropriate.

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?

States a specific verb (activate/invoke) and resource (native desktop accessibility control on a paired computer), with concrete examples (menu item, button). The 'paired computer' framing distinguishes it from the local ui_invoke sibling, but no sibling is named explicitly, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use ('when the user asks to activate an identified native desktop accessibility control') and a prerequisite workflow ('Resolve the intended control from a recent computer_snapshot or ui_find first'). It does not name alternatives such as computer_click, computer_toggle, or computer_select, so an agent must infer the boundary from the verb alone.

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

computer_multi_editComputer Multi EditA
Destructive
Inspect

Use this for a bounded batch of native accessibility edits on already identified desktop controls. Verify each requested change and target before applying; individual edits can change application data.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
editsYesNative semantic target + text entries for action=multi_edit.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description usefully reinforces that 'individual edits can change application data' and urges verification before applying, but it omits batch-critical behavior: edit ordering, partial-failure semantics, and whether the batch is atomic.

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 sentences, front-loaded with the use case followed by the safety instruction. Every clause earns its place with no filler.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the destructive/non-idempotent profile. For an 18-parameter destructive batch tool, though, the description should address what happens when one edit's target is missing or fails mid-batch, since that determines whether the agent should split edits or retry.

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%, including full documentation of the nested edits object fields (method, clear, label, etc.), so the baseline is 3. The description adds only the notion of a bounded batch and pre-identified targets; it does not clarify selection precedence among id/app/pid/name/role or the meaning of the top-level parameters for a multi-edit action.

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?

The description states a specific verb and resource: a bounded batch of native accessibility edits on already identified desktop controls. 'Batch' and 'native accessibility' make the purpose clear, though it never names the single-edit siblings (computer_set_value, computer_type, ui_set_value) it is distinct from.

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?

'Use this for a bounded batch' establishes when the tool applies, and 'Verify each requested change and target before applying' adds a safety precondition. However, it gives no explicit when-not guidance or alternatives for single edits, browser form fills, or UI elements that still need identification via ui_snapshot/ui_find.

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

computer_multi_selectComputer Multi SelectA
Destructive
Inspect

Use this to select multiple verified native desktop items as one semantic accessibility operation. Supply identified targets from a fresh snapshot; selection alone does not open or delete files.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
targetsYesNative semantic targets for action=multi_select.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare readOnly=false, destructive=true, idempotent=false, openWorld=true, which tells an agent almost nothing about real consequences. The description supplies the useful mitigating fact that selection alone does not open or delete files, plus the staleness constraint implied by "fresh snapshot" and the "verified" qualifier suggesting target resolution can fail. It could go further on what happens to targets that no longer resolve.

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 tight sentences, purpose first then constraint, with no restatement of the title or schema. Nothing could be removed without losing information.

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

Completeness3/5

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

The tool is complex (18 params, 7 target modes, open-world, destructive-flagged) yet the description is two sentences; an output schema exists so return values need not be explained, and the schema is fully documented, which lowers the burden. Still, target-resolution behavior and failure modes for stale or non-matching targets are left entirely to inference.

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% and every one of the 18 parameters is already documented in-schema, so the baseline applies. The description only gestures at the `targets` array ("identified targets") and adds no extra semantics about how id/label/name/role are combined for matching or how the top-level target enum interacts with per-target fields.

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?

"Select multiple verified native desktop items as one semantic accessibility operation" gives a specific verb (select), an explicit cardinality (multiple), and the mechanism (native accessibility), which distinguishes it from single-item computer_select/ui_select. It stops short of naming those siblings directly, so differentiation is inferred rather than stated.

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?

"Supply identified targets from a fresh snapshot" is a real precondition (element ids/labels must come from ui_snapshot/ui_find). However, there is no guidance on when to use this versus computer_add_to_selection, computer_select, or the ui_* equivalents, which is the main routing ambiguity among the ~15 selection-related siblings.

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

computer_remove_from_selectionComputer Remove From SelectionA
Destructive
Inspect

Use this to remove an identified native list or tree item from the current multi-selection while preserving remaining selections. It does not delete the underlying item.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
valueNoNew value for set_value, set_range_value, or select.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds information not present in annotations: that remaining selections are preserved and that the underlying item is not deleted. That second sentence is especially valuable because destructiveHint=true could otherwise be misread as deleting the item, so the clarification prevents a costly misinvocation.

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 tight sentences with zero waste. The primary action and preservation behavior are front-loaded, and the non-destructive qualifier follows immediately.

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?

Output schema exists, so return values need not be described, and annotations carry the safety profile. The description is nearly complete, though it could briefly mention identification expectations or result-permission behavior for an 18-parameter 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%, so all 18 parameters are already documented in the schema. The description adds no parameter-level meaning such as which identifier (id, label, name, role) is preferred for identifying the target item, so baseline 3 applies.

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

Purpose5/5

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

Specific verb+resource combination ('remove an identified native list or tree item from the current multi-selection') that is clearly distinct from computer_select and computer_multi_select. The scope qualifier 'native list or tree item' pins down what kind of element it acts on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the operative condition clearly ('current multi-selection while preserving remaining selections'), which tells the agent this is for selection membership changes, not whole-item operations. However, it does not name alternatives such as computer_select, computer_multi_select, or computer_add_to_selection for the inverse operation.

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

computer_scrollComputer ScrollAInspect

Use this to scroll the native desktop viewport or an identified UI region by a bounded direction or delta. It moves the visible viewport and does not edit document contents.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
deltaNoAlias for delta_y.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
delta_xNoHorizontal scroll delta; positive means right.
delta_yNoVertical scroll delta; positive means down.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
directionNoHuman-readable scroll direction used with wheel_times instead of explicit deltas.
window_idNoTop-level window id returned by list_windows when target=window.
wheel_timesNoNumber of 120-unit wheel steps for direction; 1..50.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.7/5.0
Behavior5/5

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

It adds crucial behavioral constraints beyond the schema and annotations by explicitly stating that it 'moves the visible viewport' and, critically, 'does not edit document contents.' This prevents misuse and defines the mutation type.

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?

The description is brief and highly efficient. It front-loads the primary function and immediately follows up with the necessary behavioral constraint, maximizing information density without filler.

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

Completeness5/5

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

Given the extreme parameter complexity (22 parameters), this description provides the perfect, concise high-level summary of the tool's functional scope. It informs the agent that the action is visual navigation, making the use of the specific targeting parameters meaningful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides high coverage (100%), but the description adds semantic value by defining the *nature* of the parameter action: scrolling the 'native desktop viewport' or an 'identified UI region,' providing the conceptual framework for how the numerous targeting parameters should be used.

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

Purpose5/5

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

The purpose is stated with high precision: scrolling the 'native desktop viewport or an identified UI region'. This is an active, specific verb (scroll) applied to defined resources (desktop/UI region), clearly distinguishing it from content editing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description doesn't explicitly contrast itself with every sibling (e.g., `browser_scroll`), it clearly defines its operational scope (viewport movement vs. content editing), guiding the agent on *when* this tool is the correct choice for a visual shift operation.

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

computer_scroll_into_viewComputer Scroll Into ViewBInspect

Use this to bring an identified native accessibility element into the visible viewport before reading or interacting with it. This scrolls the interface without editing its data.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false and openWorldHint=true, so the description's added assurance that it 'scrolls the interface without editing its data' genuinely clarifies that viewport state changes but data does not — useful context that softens the readOnlyHint=false signal. It says nothing about failure behavior when the element can't be found, whether scrolling is animated/awaited, or how far it scrolls; with 17 parameters and an output schema, that is the level of behavior an agent would still want.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the purpose front-loaded and no filler; the second sentence is a genuine behavioral clarification rather than restatement. It is arguably under-informative for a 17-parameter tool, but nothing in it is wasted.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and annotations cover the safety profile. However, for a tool with 17 parameters, one enum, and three near-identical scroll-into-view siblings, the description gives no selection guidance among targeting modes or siblings, which is the main completeness gap.

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%, so every parameter, including the id/x/y/target targeting modes, is already documented in the schema. The description adds no guidance on which targeting parameter to prefer (id vs label vs x/y vs target=window) for this tool specifically, so baseline 3 applies.

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?

States a specific verb ('bring ... into the visible viewport') and a specific resource ('identified native accessibility element'), so the action is unambiguous. It does not name or distinguish itself from the close siblings ui_scroll_into_view and browser_scroll_into_view, leaving the agent to infer the boundary.

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?

It gives one useful usage cue: call this 'before reading or interacting with' an off-screen element, i.e. as a precondition step. It offers no exclusions or alternatives, so an agent facing ui_scroll_into_view, browser_scroll_into_view, or plain computer_scroll has no stated rule for choosing this one.

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

computer_selectComputer SelectB
Destructive
Inspect

Use this to select an identified option or item in a native desktop accessibility control. Inspect the control and its available values first; selection may update application state.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
valueNoNew value for set_value, set_range_value, or select.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the mutation risk is known. The description reinforces this ('selection may update application state') and adds an inspect-first prerequisite, but discloses nothing beyond what annotations imply, e.g. whether selection is reversible or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the purpose and followed by the prerequisite. No filler, though it is very terse for an 18-parameter tool.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the schema documents all parameters. Still, for a complex, destructive, multi-modal selection tool with several near-duplicate siblings, the description does not do enough to disambiguate usage or scope.

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% across all 18 parameters, so the schema already carries the semantics. The description adds no parameter-level detail (e.g. how 'value' interacts with select, or when to use coordinates vs id), so the baseline 3 applies.

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?

States a specific verb ('select') and resource ('identified option or item in a native desktop accessibility control'), which is clear. However, it does not distinguish itself from look-alike siblings such as computer_add_to_selection, computer_multi_select, ui_select, or browser_select, so an agent cannot tell them apart from this text alone.

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?

Provides one prerequisite ('Inspect the control and its available values first'), which is useful workflow guidance. But it gives no when-to-use vs when-not guidance relative to the many selection/toggle/invoke siblings, so alternative routing is left to inference.

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

computer_set_range_valueComputer Set Range ValueB
Destructive
Inspect

Use this to set a numeric or range control, such as a slider, to a specific supported value on the paired desktop. Inspect the control limits first; changing it can affect application settings.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
valueNoNew value for set_value, set_range_value, or select.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and non-idempotence, so the safety profile is covered. The description adds real context: the target is a bounded range control and out-of-range values can affect application settings, motivating the pre-inspection advice. It does not say whether a revert is possible or what the prior value was.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both earning their place: the action first, then the caution. No filler or redundancy. It could be tightened by naming the distinguishing sibling, but the size is well matched to a focused action tool.

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

Completeness3/5

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

With an output schema present and rich annotations, the description needn't explain returns or safety. However, for an 18-parameter tool in a family containing ui_set_range_value, computer_set_value and browser_set_value, the omission of sibling routing leaves a real gap for correct tool selection.

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 coverage is 100% across 18 parameters, so every parameter including value, device and target is already documented inline. The description only reinforces that value must be a supported range value, adding little syntax or format detail beyond the schema. Baseline 3 applies.

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?

States a specific verb and resource: set a numeric/range control such as a slider to a supported value on the paired desktop. That is much more informative than the title restatement. It stops short of distinguishing itself from close siblings like computer_set_value or ui_set_range_value, which an agent must choose between.

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 one concrete prerequisite — inspect the control limits first — which is genuinely actionable. It offers no guidance on when to pick this over computer_set_value (text fields) or ui_set_range_value, so the selection logic remains implied rather than stated.

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

computer_set_valueComputer Set ValueA
Destructive
Inspect

Use this to assign a specified value to an identified native accessibility control, such as an editable text field. Validate the target before writing; this changes the control rather than sending a keyboard shortcut.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
valueNoNew value for set_value, set_range_value, or select.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered externally. The description adds one genuinely useful behavioral fact — the write goes directly to the control rather than through synthetic keystrokes, so keyboard-shortcut side effects won't fire. It says nothing about failure modes, focus requirements, or what happens when the control rejects a value.

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 tight sentences with the primary action front-loaded and the disambiguation clause second. No filler, nothing buried.

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

Completeness3/5

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

Output schema exists, so return values need no explanation, and annotations carry the safety profile. But for a destructive, non-idempotent tool with 18 params and multiple targeting backends (DOM/CDP, OCR, coordinates), the description omits the fallback logic and any verification guidance beyond 'validate the target' — meaningful gaps for a tool this broad.

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 coverage is 100%, so every one of the 18 parameters is already documented in the schema; baseline 3 applies. The description adds only indirect color ('identified native accessibility control'), giving no guidance on choosing among id/label/name/role targeting or the target enum values.

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?

States a specific verb+resource (assign a value to a native accessibility control) and names the canonical case (editable text field). The clause 'this changes the control rather than sending a keyboard shortcut' effectively separates it from computer_type/keyboard, though it never names the closest siblings (ui_set_value, computer_select, computer_set_range_value) directly.

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?

'Validate the target before writing' gives a precondition, and the shortcut contrast implies 'use this instead of typing' for accessibility controls. But it never says when to prefer browser_set_value or computer_select/computer_set_range_value, leaving the 18-param targeting decision (auto/ui/ocr/coordinates) unexplained.

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

computer_snapshotComputer snapshotA
Read-onlyIdempotent
Inspect

Use this when you need the first compact view of an unfamiliar desktop state, including windows, semantic UI, displays, clipboard metadata and optional pixels/browser/OCR. Prefer it over repeated screenshots; narrow later with ui_find, browser_find or screenshot_region.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
ocr_psmNoTesseract page segmentation mode, 3..13; default 11.
ui_scopeNoAccessibility scope for computer_snapshot. Default active keeps the compact snapshot fast; desktop requests all accessible applications/windows.
grid_rowsNoOptional reference-grid row count returned as visual metadata; 0..20.
include_uiNoInclude native accessibility tree; default true. False is the fast screenshot-only path.
include_ocrNoRun optional local OCR. Default auto: only when native accessibility and browser DOM are unavailable. Requires tesseract on PATH.
grid_columnsNoOptional reference-grid column count returned as visual metadata; 0..20.
max_ui_depthNoMaximum native accessibility depth; default 12.
max_ui_nodesNoMaximum native accessibility nodes; default 800.
ocr_languageNoTesseract language code, default eng; multiple languages may use eng+deu.
ocr_max_wordsNoMaximum OCR word boxes returned; default 2000, maximum 10000.
semantic_treeNoInclude compact semantic hierarchy text alongside nodes; default true.
ocr_timeout_msNoOCR timeout, default 30000 ms, maximum 120000 ms.
ui_browser_domNoPrefer the native browser accessibility document subtree when the OS exposes one; on Windows this also enables the Firefox MSAA/IAccessible fallback.
include_browserNoInclude CDP browser accessibility when available. Default auto: only when the active app looks Chromium-based.
browser_max_nodesNoMaximum browser accessibility nodes; default 500, maximum 2000.
browser_readinessNoOpt-in bounded CDP readiness status: disabled, blocked endpoint, unavailable, invalid response, no tabs, or ready. No tab URLs or titles; never launches Chrome. Default false.
screenshot_regionNoVirtual-desktop [left,top,right,bottom] region; takes precedence over full desktop.
include_screenshotNoInclude real rendered desktop pixels; default true.
screenshot_monitorNoMonitor name substring or "primary".
screenshot_paddingNoPixels of context around a targeted screenshot; 0..200.
screenshot_window_idNoCapture the window returned by list_windows instead of the whole desktop.
screenshot_monitor_indexNoZero-based monitor index.

Output Schema

NameRequiredDescription
dataNoComputer snapshot structured result for computer_snapshot. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds only the notion that this is a compact/fast first pass with optional heavy payloads (pixels/browser/OCR); it does not disclose cost, latency, size limits, or that OCR requires tesseract on PATH – that detail lives in the schema, not the description.

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 sentences, both front-loaded: the first states purpose and contents, the second states the preference rule and the narrowing alternatives. No filler, no restatement of the title, and the highest-value routing information comes last in the natural reading order.

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 an output schema present, return values need not be explained, and the description covers purpose, contents, and alternative routing for a 23-parameter tool. It is slightly thin on which optional payloads to enable for which situation, but the 100%-covered schema compensates for that gap.

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% across 23 parameters, so the schema does the heavy lifting and baseline 3 applies. The description's category list (pixels, browser, OCR, semantic UI, clipboard) loosely maps to parameter groups but adds no syntax, precedence, or cost guidance beyond what the individual parameter descriptions already give.

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

Purpose5/5

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

States a specific verb and resource (a first compact snapshot of desktop state) and enumerates exactly what it captures: windows, semantic UI, displays, clipboard metadata and optional pixels/browser/OCR. It also distinguishes itself from the crowded computer_*/ui_*/browser_* sibling set by naming the tools used to narrow afterwards (ui_find, browser_find, screenshot_region).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ("first compact view of an unfamiliar desktop state") plus an explicit preference rule ("Prefer it over repeated screenshots") that routes the agent away from take_screenshot loops. It then names three concrete alternatives for follow-up narrowing, so the fallback path is unambiguous.

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

computer_toggleComputer ToggleA
Destructive
Inspect

Use this to change the state of a native checkbox, switch or toggle identified through the current desktop snapshot. Check its current state to avoid unintended changes; toggles can alter application settings.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, so the safety profile is known. The description adds real value on top: toggles "can alter application settings" and the state should be verified first, which tells the agent this is a state-flipping mutation with side effects. It stops short of noting that repeated invocations flip the value back or what failure looks like when the target is not a toggle.

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 compact sentences, zero filler, with the core action stated first and the caution second. Nothing is repeated from the title or the schema.

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?

An output schema exists, so return values need not be explained, and the 17 parameters are fully documented in schema. The description covers the snapshot dependency and the mutation risk; what it leaves out is behavior when the element is not actually a toggle.

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?

All 17 parameters carry schema descriptions (100% coverage), so the schema does the heavy lifting and baseline 3 applies. The description only hints at the snapshot/identification path and adds no syntax, defaults, or precedence rules for target selection among the many locator parameters.

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?

States specific verb and resource: "change the state of a native checkbox, switch or toggle", plus the identifying mechanism (current desktop snapshot). It is clear what the tool does, but it never distinguishes itself from the near-identical sibling ui_toggle, leaving the agent to guess which one applies.

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?

"Check its current state to avoid unintended changes" gives a usable precondition, and the reference to the current desktop snapshot implies a prior snapshot call. However, no alternative tool is named (ui_toggle, computer_click, computer_set_value) and there is no when-not guidance.

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

computer_typeComputer TypeA
Destructive
Inspect

Use this to enter user-provided text into a focused or identified native desktop control, optionally clearing its previous value. First confirm the target from the current UI; never type passwords or private data into an unverified field.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate used by click/scroll coordinate targeting.
yNoVirtual-desktop Y coordinate used by click/scroll coordinate targeting.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
textYesUnicode text to enter for action=type, or text used by multi_edit.
clearNoFor action=type, clear the current semantic/browser value before inserting text when supported.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional browser page title substring or top-level window title when target=window.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
targetNoOptional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.
ocr_textNoVisible text to find in rendered pixels for the OCR click fallback.
selectorNoCSS selector when the fallback target is a browser element.
window_idNoTop-level window id returned by list_windows when target=window.
browser_textNoVisible browser text used only to locate a DOM target; for action=type, text remains the value to enter.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoComputer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and non-idempotency; the description adds meaningful context by noting the optional clearing of previous values and the safety rule about unverified fields. It stops short of explaining what happens when no control is focused or how targeting fallbacks resolve.

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 sentences, front-loaded with the action and followed by the safety constraint. No redundancy and nothing padded.

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 19 params fully described in schema and an output schema present, the description only needs to cover intent and hazards, which it does. The one gap is not addressing targeting fallback behavior (auto vs coordinates vs OCR) when no field is focused.

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 coverage is 100%, so the schema already documents all 19 parameters in detail. The description only alludes to targeting ('focused or identified') and the clear option, adding little beyond what the schema spells out.

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?

States a specific verb (enter text) and resource (native desktop control), and the word 'native desktop' implicitly distinguishes it from browser_type. It does not explicitly name its closest siblings (type_text, computer_set_value, keyboard), so differentiation is implied rather than stated.

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?

Provides a precondition ('first confirm the target from the current UI') and a safety boundary (no passwords/private data in unverified fields), which is useful. However, it never says when to pick this over browser_type, type_text, computer_set_value, or computer_multi_edit, so alternative routing is left to inference.

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

copy_fileCopy fileA
Destructive
Inspect

Use this when the user asks to copy exactly one regular file to a new path on the same computer. For directories or two or more copies use copy_paths.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
sourceYesAbsolute path of the file to copy.
overwriteNoReplace the destination when it already exists. Default true.
destinationYesAbsolute destination path.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the description doesn't need to repeat that. It adds valuable constraints: 'exactly one regular file' and 'same computer', which inform the agent about scope and potential failure modes. This goes beyond the schema and annotations.

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 sentences with zero waste. The primary use case is front-loaded, and the alternative routing to copy_paths is stated succinctly. Every word earns its place.

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

Completeness5/5

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

The description fully covers the tool's purpose and usage boundaries. The input schema documents all parameters, and an output schema exists to define return values. Nothing an agent needs to call it correctly is missing.

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 coverage is 100% with all four parameters described in the schema itself. The description does not add any parameter-specific meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'copy' and the exact resource: 'exactly one regular file to a new path on the same computer'. It also differentiates from the sibling copy_paths by specifying what it does not handle (directories or multiple copies), making its scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('when the user asks to copy exactly one regular file...') and provides an explicit alternative with the condition ('For directories or two or more copies use copy_paths'). This leaves no ambiguity about selection.

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

copy_pathsCopy pathsA
Destructive
Inspect

Use this when the user asks to copy a directory recursively or two or more paths in one request. For exactly one regular file use copy_file.

NameRequiredDescriptionDefault
pathsYesPairs to copy, at most 200 per call.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
overwriteNoReplace an existing destination. Default true.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations declare destructiveHint=true, so the description doesn't need to restate that. It adds behavioral context by noting recursive directory copying and multi-path support, which the schema doesn't explicitly cover. However, it doesn't warn about the default overwrite=true behavior, though the schema does document the 'overwrite' parameter. No contradiction with annotations.

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 sentences, no fluff, with the core usage condition front-loaded. Every word earns its place.

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?

Given the tool's moderate complexity (multi-path, overwrite, device requirement), the description covers the core use case and differentiation. Device and overwrite details are fully in the schema, and output schema exists. It doesn't mention potential side effects of overwriting, but that's covered by the destructive annotation and parameter description. Sufficient for correct selection and invocation.

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%, so all parameters are already documented. The description adds context that 'paths' is meant for multiple entries and directories, but doesn't add detail on 'device' or 'overwrite' beyond what's in the schema. It provides marginal added value.

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

Purpose5/5

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

The description clearly states the tool copies directories recursively or multiple paths in one request, and explicitly contrasts it with copy_file for a single regular file. This distinguishes it from siblings and gives a specific verb and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool (directory recursive copy or two+ paths) and when not to (exactly one regular file) by naming the alternative copy_file. This provides direct routing guidance.

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

create_archiveCreate archiveA
Destructive
Inspect

Use this when the user wants files or a directory packed into a tar, tar.gz, or zip archive, for example before a transfer or a backup.

NameRequiredDescriptionDefault
pathsYesAbsolute paths of the files and directories to include.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
formatNoArchive format. Default tar.gz, or zip when the destination ends in .zip.
destinationYesAbsolute path of the archive to create.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A3.7/5.0
Behavior2/5

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

Annotations declare destructiveHint=true, but the description adds no behavioral detail beyond that. It doesn't disclose that creating an archive may overwrite an existing destination or any other side effects. Since annotations are present, the bar is lower, but the description still fails to provide context that would help an agent understand potential consequences. It is neither misleading nor informative.

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?

The description is a single, front-loaded sentence with zero filler. It immediately states the trigger condition and purpose, making it efficiently scannable for an agent. No wasted words.

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

Completeness3/5

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

The tool has a simple 4-parameter schema, an output schema, and annotations that cover destructive intent. The description tells an agent when to use it, but doesn't mention prerequisites (like device) or potential side effects. Given annotations and schema already cover these, the description is minimally complete. However, for a destructive tool, a note about overwriting behavior would enhance completeness.

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%, so all parameters (paths, destination, device, format) are already documented in the schema. The description merely lists archive formats that match the enum, adding no new semantic weight. Baseline 3 applies because the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific action (pack files/directory into an archive) with explicit formats (tar, tar.gz, zip) and examples (transfer, backup). It clearly distinguishes from siblings like extract_archive and other file operations. The verb-resource pair is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description begins with 'Use this when the user wants...' providing explicit context and examples of appropriate scenarios. It does not mention alternatives explicitly, but the scope is clear enough for an agent to select it over destructive or other file tools. No exclusions are given, but the guidance is adequate.

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

create_directoryCreate directoriesA
Idempotent
Inspect

Use this when the user asks to create a directory, including any missing parent directories.

NameRequiredDescriptionDefault
pathNoAbsolute path of the directory to create.
pathsNoSeveral directories to create at once, at most 200.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

The description adds one meaningful behavioral detail beyond the annotations—that missing parent directories are created—while annotations already cover idempotency and non-destructiveness. It does not describe error behavior, output properties, or side effects, but the annotation coverage lowers the burden, making this adequate but not rich.

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?

The description is a single sentence that is directly actionable and front-loaded with the usage trigger. Every word adds value and there is no redundant phrasing.

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?

For a simple directory-creation tool with full schema coverage, an output schema, and meaningful annotations, the description is nearly sufficient. It could be more complete by noting what happens when the directory already exists or mentioning the paths parameter for batch creation, but those are covered by annotations and schema.

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%, so the parameters are already fully documented. The description only implies that path creation includes parent directories; it adds no additional meaning to the individual parameters beyond what the schema provides, so the baseline of 3 is appropriate.

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?

The description clearly states the tool creates directories and includes missing parent directories, which is specific and distinguishes it from file-writing siblings. However, it is phrased as a usage instruction rather than a declarative definition, and it does not explicitly differentiate it from other creation-style tools beyond that.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit condition for when to use the tool ('when the user asks to create a directory') and adds a useful detail about missing parent directories. It does not state when not to use it or mention alternatives, so it lacks the full when/when-not structure of a 5.

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

create_pairing_commandConnect a new computerA
Idempotent
Inspect

Use this when the person wants to connect another computer to their ReMCP account, or asks how to add a device: returns platform-specific Windows/macOS/Linux commands, the pairing code, and when it expires. Windows uses the no-prerequisite PowerShell bootstrap; macOS/Linux use the npm launcher. The same commands are returned while the code is still valid.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, readOnlyHint=false. The description adds real value beyond them: it discloses the return payload (platform-specific commands, pairing code, expiry), the platform split (Windows PowerShell bootstrap vs macOS/Linux npm launcher), and the idempotency condition ('same commands returned while the code is still valid'). It does not explain why readOnlyHint=false, which is a minor gap.

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?

Front-loads the when-to-use trigger, then the return payload and platform details in a tight three-sentence block. Every sentence adds distinct information with no filler.

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

Completeness5/5

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

With no parameters, an output schema present, and annotations covering the safety profile, the description covers the remaining gaps: trigger, return contents, platform behavior, and code validity. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. There are no inputs whose semantics need explaining, and the description correctly focuses on return behavior instead.

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

Purpose5/5

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

States a specific action (generating pairing commands to connect another computer) and the resource (ReMCP account / new device). The description makes clear this returns commands, not that it connects directly, and no sibling tool overlaps with pairing. An agent can identify the correct tool without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it: 'when the person wants to connect another computer to their ReMCP account, or asks how to add a device.' This is clear trigger guidance, though it names no alternative or exclusion (e.g. how it differs from enable_device), leaving a small gap.

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

delete_pathDelete pathA
Destructive
Inspect

Use this when the user explicitly asks to remove exactly one file or directory and does not need it recoverable. Use delete_paths for two or more targets, or move_to_trash when reversibility matters.

NameRequiredDescriptionDefault
pathYesAbsolute path to delete.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
recursiveNoDelete a non-empty directory with its contents. Default true.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, and the description adds the irrecoverability aspect ('does not need it recoverable'), which is a behavioral trait beyond the annotation's simple destructive flag. It doesn't contradict the annotations, and it provides useful context about the permanence of the operation. However, it doesn't disclose details like recursive behavior or side effects, which are covered by the schema's recursive parameter description.

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?

The description is two sentences with zero waste. It front-loads the primary usage condition and immediately provides alternatives. Every word earns its place, and the structure is ideal for quick scanning by an agent.

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

Completeness5/5

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

The tool is a simple deletion operation with a complete schema and annotations. The description covers when to use it, what it does, and how it differs from siblings. The output schema exists, so the description needn't explain return values. Nothing an agent needs to correctly invoke this tool is missing.

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%, so the baseline is 3. The description adds no parameter-specific details beyond what the schema already documents; it doesn't explain the recursive parameter or the device parameter. The mention of 'exactly one' relates to the path parameter's scope but is more usage guidance than semantic clarification. Since the schema fully describes each parameter, no additional compensation is needed.

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

Purpose5/5

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

The description clearly states the tool deletes exactly one file or directory irrecoverably, using the verb 'remove' and specifying the scope. It distinguishes itself from siblings by explicitly naming delete_paths for multiple targets and move_to_trash for recoverable deletions, leaving no ambiguity about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'when the user explicitly asks to remove exactly one file or directory and does not need it recoverable.' It also provides explicit exclusions and alternatives: 'Use delete_paths for two or more targets, or move_to_trash when reversibility matters.' This fully routes the agent to the correct tool.

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

delete_pathsDelete pathsA
Destructive
Inspect

Use this when the user explicitly asks to remove two or more named files or directories in one batch. For one target use delete_path; use move_to_trash when reversibility matters.

NameRequiredDescriptionDefault
pathsYesAbsolute paths to delete, at most 500 per call.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
recursiveNoDelete non-empty directories with their contents. Default true.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, so the agent knows this is a destructive operation. The description adds the batch-scope constraint but does not disclose additional behavioral details like permanent irreversibility or default recursion behavior. It does not contradict the annotations, and the schema covers recursive behavior, so this is a neutral score—not adding significant behavioral 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with zero waste. It front-loads the primary usage condition and then provides the routing to alternatives. Every word earns its place, and the structure is clean and scannable.

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?

Given that an output schema exists (context signals indicate 'Has output schema: true'), the description does not need to explain return values. The description fully covers when to use this tool and how it differs from siblings. It could optionally mention that deletion is permanent and irreversible, but this is already implied by the destructiveHint annotation, so the description is sufficiently complete for correct tool selection.

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%, meaning all three parameters (paths, device, recursive) have descriptions in the schema. The tool description does not add any parameter-specific semantics beyond what the schema already provides, so the baseline 3 applies for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: to remove two or more named files or directories in one batch. It uses specific verb 'remove' and identifies the resource (paths), and explicitly differentiates from delete_path (single target) and move_to_trash (reversibility), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: when the user asks to remove two or more named files/directories in one batch. It also names the exact alternatives and their selection criteria: delete_path for one target, and move_to_trash when reversibility matters. This provides clear routing guidance with no ambiguity.

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

diff_filesDiff filesA
Read-onlyIdempotent
Inspect

Use this when the user wants to see how two text files differ, before or after a change.

NameRequiredDescriptionDefault
leftYesAbsolute path of the original file.
rightYesAbsolute path of the file to compare against it.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
context_linesNoLines of context around each change. Default 3, maximum 20.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description adds modest context beyond this — that the tool operates on text files and is suited for pre/post-change review — but it does not disclose behaviors like error conditions for missing files, output format expectations, or device-side requirements beyond what the schema already covers.

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?

The description is a single front-loaded sentence that gets straight to the core purpose (see how two files differ) and the timing context. Every word earns its place with no filler, repetition, or irrelevant detail.

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?

This is a low-complexity tool with strong supporting context: a 100%-covered input schema, an output schema, and rich annotations. The description sufficiently covers when and why to use the tool; the only minor gap is that it doesn't mention that the files live on a remote device or hint at the diff presentation style, though these are largely covered by schema and output schema.

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 every parameter (left, right, device, context_lines) already documented with clear semantic descriptions, so the baseline is 3 per the rubric. The description adds zero parameter-level meaning beyond the schema — it does not, for example, clarify the left-vs-right ordering convention or the role of context_lines.

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?

The description states a specific activity — comparing two text files to see how they differ — which is clear and actionable. It does not explicitly distinguish itself from siblings, but none of the many sibling tools (apply_patch, replace_lines, read_file) are diff tools, so the purpose is inherently differentiated.

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?

The phrase 'before or after a change' gives useful temporal context for when to invoke the tool, and 'text files' implies a scope limitation (not binary files). However, there is no explicit when-not-to-use guidance, no mention of alternatives, and no statement about when a different tool (e.g., read_file) would be more appropriate.

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

disable_deviceDisable paired computerA
Destructive
Inspect

Use this when the user needs to disable an existing paired computer only when the user explicitly requests it. Disconnects the pairing until re-enabled; requires its device id.

NameRequiredDescriptionDefault
deviceYesPaired computer id returned by list_devices.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds meaningful behavior: it disconnects the pairing and is reversible 'until re-enabled', which helps an agent understand the scope of the mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the usage condition and followed by the effect and requirement. The opening clause is slightly awkward ('Use this when... only when...'), but there is little waste.

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

Completeness5/5

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

For a simple one-parameter mutation with annotations and an output schema, the description covers when to use it, the reversal condition, and the required input. No essential gap remains.

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 coverage is 100%: the only parameter, device, already includes a description pointing to list_devices. The description's 'requires its device id' merely restates the required parameter and adds no new syntax or semantics, so baseline 3 applies.

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?

Names a specific verb (disable) and resource (paired computer) and clarifies the effect (disconnects the pairing until re-enabled), which implicitly separates it from enable_device/remove_device. However, it does not explicitly name a sibling or state the permanent-removal alternative, so it falls short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when the user needs to disable an existing paired computer') and an exclusion ('only when the user explicitly requests it'), so an agent knows not to call it proactively. It does not name alternatives such as remove_device for permanent unpairing, preventing a 5.

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

display_inventoryDisplay inventoryA
Read-onlyIdempotent
Inspect

Use this when monitor-specific screenshots, cross-monitor geometry or coordinate work require monitor bounds, scale and primary-display information.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish that this tool is read-only, idempotent, and non-destructive. The description adds value by disclosing what kind of information the tool exposes (monitor bounds, scale, primary display), which helps the agent predict the result. It does not contradict the annotations.

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?

A single, front-loaded sentence conveys the tool's purpose and usage context with no filler. Every clause earns its place, and the scoping condition is stated before any technical details.

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

Completeness5/5

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

For a simple read-only query tool with one documented parameter, an output schema, and clear annotations, the description is complete. An agent has enough information to know when to call it and what to expect from it.

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?

The input schema provides 100% coverage for the single device parameter, including its meaning and source (ReMCP device id from list_devices). The description adds no parameter-specific detail beyond the schema, so the baseline of 3 is appropriate.

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?

The description clearly identifies what the tool provides: monitor bounds, scale, and primary-display information, and ties it to monitor-specific screenshots and cross-monitor coordinate work. It is distinct from sibling screenshot tools because it supplies display geometry rather than capturing images, though it stops short of an explicit 'returns a list of displays' statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit conditions for use: monitor-specific screenshots, cross-monitor geometry, or coordinate work requiring monitor bounds, scale, and primary-display info. It does not name alternative tools or state when not to use it, but the guidance is specific enough to route an agent effectively.

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

document_append_paragraphDocument Append ParagraphB
Destructive
Inspect

Use this to append a user-provided paragraph to a specified local word-processing document. Verify the path and creation option; this writes document content.

NameRequiredDescriptionDefault
pathYesExisting .docx path, or the new document destination when create=true.
textYesParagraph text to append/prepend/insert.
createNoCreate a new DOCX at path. Fails if path already exists; do not combine with output.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional output .docx path when editing an existing document.

Output Schema

NameRequiredDescription
dataNoEdit DOCX document structured result for edit_document. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false; the description's 'this writes document content' merely restates that. It adds the useful caution to verify path and create flag, but it never explains why the tool is flagged destructive (e.g., the create path semantics), leaving the agent with the annotation's warning but no cause.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the mutation warning front-loaded in the second clause. 'Use this to' is mild filler but nothing bloats the definition.

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

Completeness3/5

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

An output schema exists and annotations carry safety flags, so return values need no explanation. What is missing is routing information in a dense sibling cluster of paragraph-editing tools and any note on how the destructiveHint relates to the create flag, which is required to call it safely.

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%, so all five parameters are already documented, including the create/output conflict rule. The description contributes only the reminder to verify 'the path and creation option', which is a workflow hint rather than new semantics, so the schema-based baseline of 3 applies.

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?

Names a specific verb and resource ('append a paragraph to a local word-processing document'), so the operation is unambiguous. However, it never distinguishes itself from close siblings such as document_prepend_paragraph, document_insert_paragraph_before/after, or document_replace; the agent must infer the distinction from the name alone.

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?

The phrase 'Verify the path and creation option' implies a precondition check, and 'user-provided paragraph' hints that the text is not generated. But there is no explicit when-to-use versus the four sibling paragraph-editing tools, nor any statement about when not to call it.

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

document_delete_paragraphDocument Delete ParagraphA
Destructive
Inspect

Use this to delete one or more paragraphs matching requested text in a specified local word-processing document. This removes document content; confirm the exact match and backup needs.

NameRequiredDescriptionDefault
allNoApply to all matching paragraphs; default true.
pathYesExisting .docx path, or the new document destination when create=true.
createNoCreate a new DOCX at path. Fails if path already exists; do not combine with output.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional output .docx path when editing an existing document.
searchYesParagraph text substring for replace/insert/delete operations.

Output Schema

NameRequiredDescription
dataNoEdit DOCX document structured result for edit_document. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered structurally. The description still adds real value by flagging irreversible content removal and advising a backup/match confirmation. It omits specifics such as what happens when multiple paragraphs match and the 'all' default resolves to true -- a meaningful gap for a destructive call.

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 sentences, zero filler, with the action and scope front-loaded and the caution trailing. Every clause earns its place.

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 an output schema present and full annotation coverage, the description does not need to explain return values, and it correctly focuses on the destructive-caution angle. It leaves the create/output parameters unexplained at the description level, which is slightly confusing for a delete tool, but the schema resolves that.

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 six documented parameters, so the schema carries the semantics. The description only echoes 'matching requested text' and 'specified document', adding no syntax, matching-rule, or interaction detail (e.g. how 'all' vs 'search' interact) beyond what the schema already states. Baseline 3 applies.

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?

The description states a specific verb ('delete') on a specific resource ('one or more paragraphs matching requested text') within a bounded scope ('a specified local word-processing document'). That is far more precise than the title alone, though it never names the adjacent paragraph tools (document_replace, document_append_paragraph, document_insert_paragraph_before/after) to draw the boundary explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to delete...' plus 'confirm the exact match and backup needs' gives clear operating context and a pre-flight caution before a destructive call. It stops short of explicit exclusions or alternatives -- it does not say, for example, to use document_replace when the intent is substitution rather than removal.

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

document_insert_paragraph_afterDocument Insert Paragraph AfterA
Destructive
Inspect

Use this to insert a new paragraph after an identified matching paragraph in a specified local document. Confirm the search target and intended location before writing.

NameRequiredDescriptionDefault
pathYesExisting .docx path, or the new document destination when create=true.
textYesParagraph text to append/prepend/insert.
createNoCreate a new DOCX at path. Fails if path already exists; do not combine with output.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional output .docx path when editing an existing document.
searchYesParagraph text substring for replace/insert/delete operations.

Output Schema

NameRequiredDescription
dataNoEdit DOCX document structured result for edit_document. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds a useful pre-write confirmation instruction but says nothing about how the 'search' target is resolved (first match, all matches, substring), what happens when no paragraph matches, or what 'output' vs in-place editing does to the original file.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, with the action stated first and the safety caveat second. No filler, but there is room for one more sentence clarifying match behavior without becoming bloated.

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

Completeness3/5

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

An output schema and rich annotations cover returns and safety, and the schema documents all six parameters. What remains missing is the one thing an agent cannot infer from structured fields: how the 'search' string is matched and what happens on zero or multiple matches for a destructive, non-idempotent edit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter already documents its own meaning, including the create/output interaction and the search substring semantics. The description adds no parameter detail beyond that, so it sits at the baseline-plus level for a fully documented schema.

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?

The description states a specific verb and resource: insert a new paragraph after an identified matching paragraph in a local document. The word 'after' implicitly distinguishes it from document_insert_paragraph_before and document_append_paragraph, but no sibling is ever named, so the agent must read the name to confirm the ordering semantics.

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?

The line 'Confirm the search target and intended location before writing' gives a caution for the moment of invocation but never says when to choose this over document_append_paragraph, document_prepend_paragraph, or document_insert_paragraph_before. The choice is left implicit in the tool name alone.

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

document_insert_paragraph_beforeDocument Insert Paragraph BeforeA
Destructive
Inspect

Use this to insert a new paragraph before an identified matching paragraph in a specified local document. Check the match and the text before writing.

NameRequiredDescriptionDefault
pathYesExisting .docx path, or the new document destination when create=true.
textYesParagraph text to append/prepend/insert.
createNoCreate a new DOCX at path. Fails if path already exists; do not combine with output.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional output .docx path when editing an existing document.
searchYesParagraph text substring for replace/insert/delete operations.

Output Schema

NameRequiredDescription
dataNoEdit DOCX document structured result for edit_document. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

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, idempotentHint=false, and readOnlyHint=false, so the safety profile is available structurally. The description adds a useful caution to verify the match and text before writing, but it does not explain what happens to existing content, failure behavior on no match, or whether edits are reversible.

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 target. The caution sentence earns its place by warning about match verification before a destructive write.

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 covering destructive behavior and an output schema present, the description gives enough to understand the insert-before operation and the need to verify the match. It leaves minor gaps around no-match behavior and how create/output interact with insertion, but those are partly covered by the schema.

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 coverage is 100%, so parameters such as path, search, and create are already documented in the schema. The description reinforces the matching concept with "identified matching paragraph," but adds little syntax or format detail beyond the schema.

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?

States a specific verb and resource: insert a new paragraph before an identified matching paragraph in a specified local document. It is clear and distinguishable from the after/append/prepend siblings by the word "before," though it does not explicitly name those alternatives.

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?

The opening "Use this to insert..." gives implied usage, and "Check the match and the text before writing" adds a caution. It does not say when to prefer this over document_insert_paragraph_after, document_append_paragraph, or document_prepend_paragraph, nor does it state exclusions.

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

document_prepend_paragraphDocument Prepend ParagraphB
Destructive
Inspect

Use this to insert a user-provided paragraph at the beginning of a specified local word-processing document. Confirm the document path and preserve existing content.

NameRequiredDescriptionDefault
pathYesExisting .docx path, or the new document destination when create=true.
textYesParagraph text to append/prepend/insert.
createNoCreate a new DOCX at path. Fails if path already exists; do not combine with output.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional output .docx path when editing an existing document.

Output Schema

NameRequiredDescription
dataNoEdit DOCX document structured result for edit_document. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description only adds 'preserve existing content', which is a caution but does not warn that repeated calls duplicate content (non-idempotent) or that the operation mutates the file in place — gaps that matter for a destructive write tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, action stated first, pre-condition second. No padding; only a minor loss for not front-loading the destructive/in-place nature.

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

Completeness3/5

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

An output schema exists and the input schema is fully described, so return values and parameters need no explanation. What is missing is behavior on a non-idempotent destructive edit (duplicate paragraphs on retry, overwrite risk) and any note on device scoping for local documents.

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%, so the schema fully documents path, text, create, output, and device. The description adds nothing about the create/output interplay beyond what the schema already states, which is the baseline expectation.

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?

States a specific verb and resource: insert a paragraph at the beginning of a local word-processing document. Implicitly distinguishes from document_append_paragraph by naming the position, though it never names the sibling explicitly.

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?

The opening 'Use this to...' gives an implied usage context and adds a sane pre-condition ('Confirm the document path'), but there is no guidance on when to prefer document_append_paragraph or the insert_paragraph_before/after variants, and no mention of the create=true path.

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

document_replaceDocument ReplaceA
Destructive
Inspect

Use this to replace specified matching text in a user-selected local word-processing document. Check the search string, replacement and destination; edits change document content.

NameRequiredDescriptionDefault
allNoApply to all matching paragraphs; default true.
pathYesExisting .docx path, or the new document destination when create=true.
createNoCreate a new DOCX at path. Fails if path already exists; do not combine with output.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional output .docx path when editing an existing document.
searchYesParagraph text substring for replace/insert/delete operations.
replacementYesReplacement text for matching document content.

Output Schema

NameRequiredDescription
dataNoEdit DOCX document structured result for edit_document. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior4/5

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

The description reinforces the behavioral trait of mutation with the phrase 'edits change document content.' This adds value beyond the `destructiveHint: true` annotation by making the consequence of the operation explicit to the agent.

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?

The tool definition is extremely concise, using two sentences to define the function and issue a necessary check. The language is direct and avoids unnecessary padding.

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?

Given the excellent input schema and clear behavioral annotations (destructive/non-read-only), the description provides sufficient high-level context for the agent to decide if this is the right tool to use for a replacement task.

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%, meaning the structure provides all necessary semantic meaning. The description adds no value in explaining what the parameters (`search`, `path`, `replacement`) represent beyond the high-level concept of 'specified matching text' or 'replacement.'

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?

The description clearly identifies the specific action (replace text) and the target resource (local word-processing document). While functional, it does not explicitly differentiate this from other document modification siblings like paragraph insertion, making the scope slightly less precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description serves as a warning rather than a guideline. It advises the agent to check the parameters but offers no instructional context on when to use this tool versus related replacement tools (e.g., `replace_lines`) or other modification tools.

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

drag_dropDrag and dropA
Destructive
Inspect

Use this when the task calls for a real drag gesture between two UI element ids or coordinates. Prefer element ids from ui_find/ui_snapshot because their current bounds are resolved at execution time; use coordinates only when no semantic endpoints exist. On GNOME Wayland, real drag input requires the consent-backed Remote Desktop portal because XTEST/xdotool drag delivery is not reliable.

NameRequiredDescriptionDefault
to_xNoDestination X coordinate for a drag gesture.
to_yNoDestination Y coordinate for a drag gesture.
to_idNoDestination UI element id; use instead of to_x/to_y.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
from_xNoSource X coordinate for a drag gesture.
from_yNoSource Y coordinate for a drag gesture.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.
from_idNoSource UI element id; use instead of from_x/from_y.
hold_msNoHow long to hold the pointer button before movement during a drag.
duration_msNoDuration of the drag/movement gesture in milliseconds.

Output Schema

NameRequiredDescription
dataNoDrag and drop structured result for drag_drop. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already signal destructive behavior, read-only=false, and non-idempotency. The description adds meaningful behavioral context beyond annotations: element ids are resolved at execution time, and on GNOME Wayland real drag requires the consent-backed Remote Desktop portal because XTEST/xdotool delivery is unreliable. This gives agents important operational expectations without contradicting any annotation.

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?

The description is three sentences with no filler. It front-loads the primary use case, then tucks the two important operational caveats (id preference and Wayland portal requirement) into compact, actionable prose. Every sentence earns its place.

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?

Given the tool's complexity — 11 parameters, two mutually exclusive source/destination groups, one required device parameter, backend enums, and an output schema — the description covers the key decision points an agent needs: when to use ids versus coordinates and which backend is required on Wayland. The per-parameter schema and output schema cover the remaining details. A small gap is that the description does not mention the destructive or irreversible nature indicated by annotations, but that is already surfaced structurally.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already individually documents all 11 parameters. The description adds value by clarifying the semantic trade-off between from_id/to_id versus from_x/from_y/to_x/to_y and explaining why ids are preferred (current bounds resolved at execution time). This is meaningful context beyond the schema's per-parameter phrasing.

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

Purpose5/5

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

The description states a specific verb and resource: performing a 'real drag gesture between two UI element ids or coordinates.' It clearly distinguishes itself from generic input tools by specifying the gesture type and the source/destination semantics, and its scope is unambiguous even without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool ('when the task calls for a real drag gesture') and provides concrete guidance on preferring element ids from ui_find/ui_snapshot over coordinates, including the rationale that bounds are resolved at execution time. It also gives platform-specific backend guidance for GNOME Wayland. It does not explicitly name sibling alternatives or state when not to use this tool, so it stops short of a full when/when-not contrast.

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

edit_blockEdit fileA
Destructive
Inspect

Use this when one known text block in one file should be replaced, with a whitespace-tolerant fallback and optional dry-run diff. Use write_file only when replacing the whole file, and replace_lines when the intended target is a known line range rather than matching text.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
dry_runNoReturn the diff without changing the file. Default false.
file_pathYesAbsolute path of the file to edit.
new_stringYesReplacement text.
old_stringYesExact existing text to replace.
allow_fuzzyNoAllow a whitespace-tolerant fallback when the exact text is not found. Default true.
expected_replacementsNoNumber of matches required for the edit to apply. Default 1.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior3/5

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

Annotations declare destructiveHint=true, which the description aligns with by implying mutation. The description adds no extra behavioral details such as whether partial matches are applied, effects on file permissions, or error handling. It does not contradict annotations but adds limited value beyond the annotation.

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?

The description is two sentences with no filler and is front-loaded with the core use case before routing alternatives. Every word earns its place.

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?

The description covers the core use case, alternatives, and safety via annotations. While it doesn't explain the return diff format or error behavior, the output schema likely provides that. For a moderate-complexity mutation tool with full schema coverage, it is adequate; a 4 because it could add edge cases like multiple matches.

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 coverage is 100%, so parameters are already documented. The description mentions whitespace-tolerant fallback, which hints at allow_fuzzy, and dry-run, but doesn't add new meaning beyond what the schema provides; baseline 3 is appropriate.

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?

The description states a specific verb ('replace') and resource ('known text block in one file') and mentions a whitespace-tolerant fallback and optional dry-run. It is clear but does not explicitly distinguish from some similar tools like replace_in_files or edit_document, though it names write_file and replace_lines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly provides when to use (replacing a known text block) and when not to use alternatives, naming write_file for whole-file replacement and replace_lines for line ranges. This provides strong routing guidance.

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

edit_spreadsheetEdit spreadsheetA
Destructive
Inspect

Use this when the user needs to create a new XLSX workbook or directly edit XLSX cells/ranges/formulas without launching Excel. Set create=true only for a new path; it fails rather than overwriting an existing workbook. Prefer explicit cells/ranges and write to output when preserving an existing original matters.

NameRequiredDescriptionDefault
pathYesExisting .xlsx path, or the new workbook destination when create=true.
editsYesBounded list of spreadsheet edits; each item names a cell/range and the value(s) or formula to write.
sheetNoWorksheet name. For create=true, defaults to Sheet1 and becomes the new workbook sheet name.
createNoCreate a new XLSX at path. Fails if path already exists; do not combine with output.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional output .xlsx when editing an existing workbook; defaults to replacing input.

Output Schema

NameRequiredDescription
dataNoEdit spreadsheet structured result for edit_spreadsheet. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior5/5

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

The description goes beyond the annotations by clarifying that create=true fails rather than overwriting an existing workbook, and that using output preserves the original file. This meaningfully complements destructiveHint=true and explains what could be destroyed or preserved.

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?

Three sentences, each adding distinct value: the core use case, the create=true guardrail, and the output-preservation guidance. No filler or redundancy.

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

Completeness5/5

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

The tool has a full input schema and an output schema, and the description covers the critical caveats: create-only semantics, rejection of overwrites, and output preservation. Nothing essential for correct invocation is missing.

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%, so the input schema already documents all parameters. The description adds useful context about create=true and output, but it does not need to restate parameter details, keeping it at the baseline.

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

Purpose5/5

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

The description opens with a specific verb and resource: creating an XLSX workbook or editing XLSX cells/ranges/formulas. It also distinguishes itself from launching Excel, making its purpose unambiguous relative to siblings like edit_document or launch_app.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('Use this when the user needs to create a new XLSX workbook or directly edit XLSX cells/ranges/formulas without launching Excel'). It adds practical guardrails about create=true and when to use output, though it does not name alternative tools for non-XLSX editing.

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

enable_deviceEnable paired computerAInspect

Use this when the user needs to enable an existing paired computer only when the user explicitly requests it. Changes that pairing to enabled; requires its device id.

NameRequiredDescriptionDefault
deviceYesPaired computer id returned by list_devices.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the safety profile is covered. The description adds the concrete effect ('Changes that pairing to enabled') but says nothing about reversibility, prerequisites, or permissions beyond the id requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and leads with the usage condition, which is good. However, the first sentence is a run-on ('when the user needs... only when the user explicitly requests it') and 'Changes that pairing to enabled' is grammatically garbled, slightly obscuring the effect statement.

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?

For a single-parameter toggle with a full output schema, an agent has enough to call it correctly: the id source, the effect, and the explicit-request gate are all present. Return-value details are correctly left to the output schema.

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 coverage is 100% and the single parameter is documented in the schema as 'Paired computer id returned by list_devices.' The description's 'requires its device id' merely restates that, adding no format or source detail beyond the schema.

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?

States a specific verb (enable) and resource (existing paired computer), and the title reinforces it. It does not explicitly contrast with the inverse sibling disable_device or with remove_device, so sibling differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit gating condition: use it 'only when the user explicitly requests it.' That is strong when-to-use guidance, though it never names an alternative tool or a when-not scenario beyond the user-intent gate.

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

environmentRuntime environmentA
Read-onlyIdempotent
Inspect

Use this when the task calls for PATH, shell, Node/runtime environment paths, architecture and optionally sanitized environment variables. Use get_system_info for host health such as CPU/memory/disk/uptime, and get_runtime_info for ReMCP policy, roots and limits. Secret-looking values remain masked.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
include_envNoInclude sanitized environment variables; default false.

Output Schema

NameRequiredDescription
dataNoRuntime environment structured result for environment. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds a genuinely useful behavioral trait the annotations cannot convey: secret-looking values in the returned environment are masked. It does not discuss response size, truncation, or failure modes, so it is a real but partial add-on.

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?

Three tight sentences: capability first, sibling routing second, output-safety caveat last. No filler, no restatement of the title, and the most decision-relevant content is front-loaded.

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?

An output schema exists so return values need no explanation, and annotations cover the safety profile. The one thing the description never mentions is that every call requires a device id and operates on a remote device, relying entirely on the schema for that context; with 100% schema coverage this is a minor gap rather than a blocking one.

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%, so both parameters (device and include_env) are already documented in the schema, including device's dependency on list_devices. The description only echoes that env vars are optional and sanitized, adding little beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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?

The description enumerates exactly what the tool surfaces: PATH, shell, Node/runtime paths, architecture, and optionally sanitized environment variables. It also names the two nearest siblings and what they cover instead, so an agent can separate this from get_system_info and get_runtime_info. It stops short of a clean verb+resource statement (it leads with a 'use this when' condition rather than 'Returns the runtime environment'), which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit selection criteria and names both alternatives with their distinct domains: get_system_info for host health (CPU/memory/disk/uptime) and get_runtime_info for ReMCP policy, roots and limits. Nothing about choosing between these three tools is left to inference.

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

event_logEvent logsA
Read-onlyIdempotent
Inspect

Use this when the user needs to read bounded recent OS logs (Windows Event Log, macOS unified log or systemd journal) when diagnosing a service/app/system problem. Prefer it over an unbounded shell log dump.

NameRequiredDescriptionDefault
logNoWindows log name.
limitNoMaximum number of results to return.
queryNoOptional platform-specific query used to reduce returned log results.
sinceNoTime window such as 30s, 10m, 2h, or 1d.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
filterNoOptional bounded filter expression or text used to reduce returned results.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by noting logs are bounded and recent, and by naming the exact platforms covered, extending what the annotations alone convey.

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 efficient sentences with zero filler. The trigger condition is front-loaded, followed directly by the alternative to prefer. Every word earns its place.

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?

Given full schema coverage, a rich output schema, and complete annotations, the description covers the use case and alternative selection well. It does not explain platform-specific query semantics, but the schema and output schema compensate for that, making the tool adequately specified.

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%, so the schema already documents all six parameters. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action (read), the resource (bounded recent OS logs), and the specific platforms (Windows Event Log, macOS unified log, systemd journal). It also distinguishes the tool from an unbounded shell log dump, so an agent can tell it apart from generic logging commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use the tool: when diagnosing a service/app/system problem and needing recent OS logs. It also provides an exclusion by recommending this over an unbounded shell log dump, giving the agent clear routing guidance.

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

extract_archiveExtract archiveA
Destructive
Inspect

Use this when the user wants an existing tar or zip archive unpacked on a paired computer.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
archiveYesAbsolute path of the archive to extract.
destinationNoAbsolute directory to extract into. Defaults to the archive directory.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds the context that it operates on a paired computer and that it handles tar or zip formats, but it does not disclose what happens on overwrite, whether the archive is deleted after extraction, or whether extraction is recursive. With annotations covering the safety profile, a 3 is appropriate.

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?

A single sentence that front-loads the trigger condition and the resource type. Zero wasted words. It earns its place by stating the exact use case and the supported formats.

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?

The tool has an output schema, so return values are already documented. The description plus annotations cover the safety profile (destructive, non-idempotent) and the trigger condition. The only missing context is what happens on conflicts (e.g., overwriting existing files) and whether the archive is removed after extraction, but these are minor for a straightforward extraction 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%, so the schema already documents all three parameters (archive, device, destination). The description adds the format constraint ('tar or zip') and the default behavior for destination ('Defaults to the archive directory' is in the schema, not the description). The description does not add meaning beyond the schema, so the baseline 3 is correct.

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

Purpose5/5

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

The description states a specific verb ('extract'), a specific resource ('tar or zip archive'), and a clear target ('unpacked on a paired computer'). It distinguishes itself from the sibling create_archive, which performs the inverse operation, and from file-manipulation tools like copy_file or move_file. The phrase 'on a paired computer' also clarifies the remote-device context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when the user wants an existing tar or zip archive unpacked on a paired computer,' which gives a clear trigger condition. It does not explicitly name alternatives or exclusions (e.g., when to use create_archive or when not to use it), but the trigger is specific enough that an agent can select it correctly. A small gap: it doesn't mention that the archive must already exist or that the destination must be writable.

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

force_terminateStop sessionA
Destructive
Inspect

Use this when a process session created by start_process must stop, such as a runaway build or server left behind. For an arbitrary operating-system PID that is not a ReMCP terminal session, use kill_process instead.

NameRequiredDescriptionDefault
pidYesSession pid returned by start_process.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the bar is lower, and the description adds genuine scoping context: this only touches ReMCP terminal sessions, not arbitrary PIDs. It stops short of describing what force termination does to child processes or whether the session record survives, which would matter for a destructive operation.

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 sentences, zero filler, with the primary use case front-loaded and the disambiguation second. Each sentence earns its place by carrying distinct routing information.

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?

An output schema exists and annotations fully cover the safety profile, so the description's only real burden is routing, which it handles well. The remaining gap is the semantics of "force" (immediate kill vs. graceful stop, effect on spawned children) for a destructive two-parameter 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 pid documented as the session pid from start_process and device as the id from list_devices. The description echoes that provenance but adds no format, range, or error semantics beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description names a specific action on a specific resource: stopping a process session created by start_process. It immediately distinguishes itself from the similarly named kill_process sibling, so an agent can route correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Both sides of the decision are stated explicitly: use this for sessions created by start_process (runaway builds, orphaned servers), and use kill_process for an arbitrary OS PID that is not a ReMCP terminal session. No inference is required.

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

get_configurationReMCP configurationA
Read-onlyIdempotent
Inspect

Use this when the person asks how the hosted ReMCP deployment/account is configured: server version and endpoint, runtime release installed on devices, retention/telemetry policy, hosted limits, and paired-computer versions. Use get_runtime_info for one computer's local runtime roots, policy and limits; use get_system_info for that computer's OS/CPU/memory/disk state.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description aligns by describing a read-only information retrieval operation. It adds valuable context about the exact categories of configuration data returned and clarifies the 'hosted' scope, which goes beyond what annotations convey. No contradiction exists.

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 sentences with no fluff. The primary use case and content are front-loaded in the first sentence, and the second sentence efficiently distinguishes sibling tools. Every word earns its place.

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

Completeness5/5

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

Given the tool has no parameters and an output schema exists, the description fully covers when to use, what data it returns, and how it differs from related tools. Nothing an agent needs to correctly invoke this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema trivially covers all parameters (100%). The description adds no parameter-level detail, but with no parameters, the baseline is 4. The description does not need to compensate for any parameter ambiguity.

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

Purpose5/5

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

The description clearly states the tool retrieves hosted ReMCP deployment configuration including server version, endpoint, runtime release, retention/telemetry policy, hosted limits, and paired-computer versions. It explicitly contrasts with get_runtime_info and get_system_info, making the purpose distinct and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description begins with 'Use this when...' and specifies exactly when to choose this tool over the alternatives, naming get_runtime_info and get_system_info with their scopes. This provides explicit usage context and exclusions, leaving nothing to inference.

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

get_file_infoGet file infoA
Read-onlyIdempotent
Inspect

Use this when the user needs the size, type, permissions, or modification time of one file or directory before deciding what to do with it.

NameRequiredDescriptionDefault
pathYesAbsolute path to inspect.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no extra behavioral details beyond listing the returned fields, which are already in the output schema. No contradiction exists.

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?

The description is a single, well-structured sentence that front-loads the purpose and is free of redundancy. Every word contributes to the agent's understanding.

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

Completeness5/5

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

For a simple metadata retrieval tool with two fully documented parameters, a provided output schema, and safety annotations, the description is complete. It explains what the tool returns and when to use it, leaving no critical gaps for correct invocation.

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% for both parameters (path and device), so the schema fully documents them. The description does not add any parameter-specific context beyond what the schema provides, matching the baseline of 3.

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?

The description clearly states the tool retrieves file or directory metadata (size, type, permissions, modification time), using a specific verb and resource. It implies distinction from content-reading tools like read_file but does not explicitly name alternatives, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when...' and gives a concrete scenario (needing metadata before deciding what to do). It does not mention exclusions or alternative tools, but the guidance is specific enough for an agent to select it appropriately.

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

get_more_search_resultsGet more search resultsA
Read-onlyIdempotent
Inspect

Use this when a search started with start_search still has more matches to return.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
lengthNoMaximum number of results to return. Default 100.
offsetNoZero-based first result to return. Negative values read from the end.
sessionIdYesSearch id returned by start_search.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate those. It adds behavioral context by indicating that this tool is only useful when there are more matches, implying pagination without saying it. This extra context complements the annotations.

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?

The description is a single sentence that is concise and front-loaded with the key condition. It has zero filler and earns its place by specifying the trigger condition.

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?

The tool has an output schema (not shown but signaled), so return values are covered. Given the simple function and annotations, the description is complete for a pagination tool. It lacks explicit mention of pagination semantics like offset/length, but the schema handles those, so it is adequate.

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 coverage is 100%, so all parameters are documented in the schema. The description does not add any new parameter-level details beyond what the schema provides, but it does clarify the role of sessionId as coming from start_search. This is marginally helpful but not substantial, hence a baseline 3.

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

Purpose5/5

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

The description clearly states that this tool retrieves additional search results from a search initiated by start_search, distinguishing it from start_search, stop_search, list_searches, and list_sessions. It uses a specific verb-resource pair and explicitly references the starting tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells agents when to use this tool (when a search still has more matches), but does not explicitly mention when not to use it or alternative tools. However, the sibling list includes start_search and stop_search, and the description implicitly differentiates it via the 'started with start_search' condition.

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

get_recent_tool_callsRecent tool callsA
Read-onlyIdempotent
Inspect

Use this when you need to recover recent ReMCP activity or answer what was just done. It returns the most recent tool calls with the computer they ran on, success state and duration.

NameRequiredDescriptionDefault
toolNoOptional tool name to filter by.
limitNoHow many calls to return, 1-50 (default 10).
deviceNoOptional device id to filter by.

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive, so the description does not need to repeat that. It adds value by specifying exactly what is returned (most recent tool calls, the computer each ran on, success state, and duration) and the 'recent activity' framing. It does not mention ordering or default limits, but these are minor for a simple read operation.

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 sentences, zero filler. The first sentence front-loads the usage guidance, and the second specifies the return content. Every word serves a purpose, making it easy for an agent to parse quickly.

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?

Given the output schema exists, the tool is read-only with all-optional parameters, and the description covers purpose and return content, it is largely complete. The only minor gap is the lack of a precise definition of 'recent' (e.g., time window or event count), but this is not critical for invocation.

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 coverage is 100%: the `tool`, `limit`, and `device` parameters are each fully described in the schema, including the valid range and default for `limit`. The description adds no parameter-level meaning beyond confirming the general 'recent tool calls' theme, so the baseline 3 applies.

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

Purpose5/5

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

The description uses specific verbs ('recover', 'answer what was just done') tied to a concrete resource ('recent tool calls') and states the returned fields ('computer', 'success state', 'duration'). This clearly differentiates it from sibling tools like event_log, which concern system events rather than tool call history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening clause 'Use this when you need to recover recent ReMCP activity or answer what was just done' provides a clear, actionable context for when the tool is appropriate. It does not explicitly list exclusions or alternative tools, but the use case is specific enough that an agent can route correctly without ambiguity.

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

get_runtime_infoGet runtime infoA
Read-onlyIdempotent
Inspect

Use this when you need one computer's local ReMCP runtime version, guardrails, allowed roots, or configured limits. Use get_system_info for host OS/CPU/memory/disk facts; deployment/account-level ReMCP server configuration belongs to get_configuration.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety behavior is covered. The description adds useful scope context by specifying that this is the local, per-computer runtime view and by separating it from system facts and account-level configuration.

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 tight sentences: the first front-loads the use case and returned information, and the second routes the agent away from sibling tools. There is no padding.

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

Completeness5/5

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

The tool has a clear one-parameter schema, rich annotations, an output schema, and a description that covers purpose, scope, and alternatives. Nothing material is missing for correct selection and invocation.

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%, and the single device parameter is fully documented in the schema as the ReMCP device id returned by list_devices. The description implies a single-device scope but adds no additional syntax or selection detail beyond the schema.

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

Purpose5/5

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

The description states exactly what the tool returns: local ReMCP runtime version, guardrails, allowed roots, and configured limits for one computer. It also names and distinguishes the two most relevant sibling tools, get_system_info and get_configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance and clear alternatives: use get_system_info for host OS/CPU/memory/disk facts, and get_configuration for deployment/account-level ReMCP server configuration. This leaves little ambiguity about tool selection.

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

get_runtime_statsGet runtime statsA
Read-onlyIdempotent
Inspect

Use this when you need counters from the current local runtime session on one machine: tool calls, failures, blocks, and active sessions. Account-level historical usage aggregated by device/tool over days belongs to get_usage_statistics.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context: it limits results to the current runtime session on a single machine, distinguishing live counters from long-term aggregates. It doesn't cover caching, refresh cadence, or pagination, which keeps it below a 5.

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 tightly written sentences with zero filler; the primary use case is front-loaded and the disambiguation rule follows immediately. Every clause carries routing or scoping information.

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

Completeness5/5

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

With an output schema present there is no need to describe return values, and annotations cover the read-only safety profile. The description supplies the remaining essentials—scope, counter types, and the sibling boundary—leaving nothing an agent needs to call this correctly.

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% and the single 'device' parameter is already documented as a ReMCP device id returned by list_devices. The description adds no syntax, format, or scoping detail for the parameter beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb+resource—counters from the current local runtime session on one machine—and enumerates the counter categories (tool calls, failures, blocks, active sessions). It explicitly names the sibling it is not (get_usage_statistics), so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with an explicit 'use this when' condition scoped to the current local runtime session, then names the boundary case (account-level historical usage aggregated over days) and the alternative tool that handles it. Both the when and the when-not are stated.

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

get_system_infoGet system infoA
Read-onlyIdempotent
Inspect

Use this when the user asks about machine health and host facts such as operating system, CPU load, memory, free disk space, or uptime. Use environment for PATH/shell/runtime environment details, and get_runtime_info for ReMCP-specific version, policy, and limits.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds a concrete list of the metrics returned but does not disclose any additional behavioral traits such as latency, output format, or error conditions. With annotations carrying the safety burden, a 3 is appropriate.

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 concise sentences: the first states the trigger scope with concrete examples, the second routes to specific siblings for other kinds of info. No filler or redundancy. The most important routing information is front-loaded.

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

Completeness5/5

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 one parameter, a rich output schema, and strong annotations, this description fully equips an agent: it knows when to call it, what it returns (host facts), and which alternatives to use for other concerns. Nothing essential is missing.

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%, and the 'device' parameter is already documented as 'ReMCP device id returned by list_devices. Required for every device operation.' The tool description adds no extra parameter semantics beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'machine health and host facts such as operating system, CPU load, memory, free disk space, or uptime.' It differentiates from siblings by explicitly naming environment and get_runtime_info as alternatives for other domains, leaving no ambiguity about what this tool covers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the when-to-use condition ('when the user asks about machine health and host facts') and names alternative tools for adjacent concerns ('Use environment for PATH/shell/runtime environment details, and get_runtime_info for ReMCP-specific version, policy, and limits.'). This is model routing guidance.

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

get_usage_statisticsUsage statisticsA
Read-onlyIdempotent
Inspect

Use this when the person asks for account-level historical ReMCP usage over days: call counts, success rate, average duration, and per-tool/per-device breakdowns. Use get_runtime_stats instead for counters from the current local runtime session on one machine.

NameRequiredDescriptionDefault
daysNoWindow in days, 1-90 (default 7).
toolNoOptional tool name to filter by.
deviceNoOptional device id to filter by.

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to repeat safety semantics. The description adds useful behavioral context by specifying that the data is account-level, historical, and includes aggregate metrics and breakdowns. This goes beyond the annotations without contradicting them.

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?

The description is two sentences with zero filler. The primary use case and returned metrics are front-loaded, and the sibling alternative is given in a single clear closing sentence. Every sentence earns its place.

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

Completeness5/5

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

This is a simple read-only tool with no required parameters, a fully documented schema, and an output schema provided. The description covers the exact use case, the metrics returned, and the alternative tool. Nothing an agent needs to correctly select and invoke this tool is missing.

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?

All three parameters are fully documented in the schema (100% coverage), so the baseline is 3. The description lightly reinforces the tool/device filters by mentioning per-tool/per-device breakdowns and frames days as a historical window, but it does not add meaningful syntax or formatting detail beyond the schema. The schema carries the parameter documentation burden.

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

Purpose5/5

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

The description clearly identifies the tool as returning account-level historical ReMCP usage with specific metrics: call counts, success rate, average duration, and per-tool/per-device breakdowns. It also distinguishes itself from the sibling get_runtime_stats by naming the alternative. This fully disambiguates the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('when the person asks for account-level historical ReMCP usage over days') and when to use the alternative instead ('get_runtime_stats instead for counters from the current local runtime session on one machine'). This provides clear routing between the two related tools.

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

hash_fileHash fileA
Read-onlyIdempotent
Inspect

Use this when the user wants a checksum to verify a download, compare two files, or confirm a transfer.

NameRequiredDescriptionDefault
pathYesAbsolute path of the file to hash.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
algorithmNoHash algorithm. Default sha256.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds useful context about verification/comparison use cases but does not describe runtime behavior such as reading the file, handling missing files, or what the returned checksum looks like. The low annotation burden keeps this at a 3 rather than lower.

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?

A single sentence that front-loads the usage trigger and gives three concrete examples. There is no filler, repetition, or unnecessary detail.

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

Completeness5/5

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

The tool is simple: three documented parameters, an output schema present, and annotations covering the behavioral safety profile. The description provides the selection context needed for an agent to choose this tool over file read/copy/compare alternatives. Nothing essential is missing.

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?

The input schema has 100% coverage: path is documented as an absolute path, device is documented as a ReMCP device id from list_devices, and algorithm has an enum with a default value of sha256. The description adds no additional parameter semantics, so the baseline of 3 applies.

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?

The description conveys the tool's purpose through concrete use cases—checksum verification, file comparison, and transfer confirmation—rather than a direct verb like 'computes a hash.' This makes the tool distinguishable from all file-related siblings, though it is slightly indirect and relies on the title for the core action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly opens with 'Use this when the user wants a checksum' and lists three specific scenarios. Since no sibling tool offers hashing, excluding alternatives is unnecessary; the guidance is clear and actionable.

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

installed_appsInstalled applicationsA
Read-onlyIdempotent
Inspect

Use this when the user needs to answer what software/packages are installed and their versions. Prefer a filter when looking for one product instead of returning the full inventory.

NameRequiredDescriptionDefault
limitNoMaximum results; default 1000.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
filterNoName substring.

Output Schema

NameRequiredDescription
dataNoInstalled applications structured result for installed_apps. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the practical note that the unfiltered result is a full inventory, hinting at large output, but says nothing about pagination, limits, or response shape.

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 sentences, zero filler, purpose stated first and the filter preference second. Every clause earns its place.

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?

An output schema exists, so return values need not be explained. For a read-only inventory tool with full schema coverage, the description covers purpose and the key filtering decision; only output-volume/pagination expectations are left implicit.

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 coverage is 100%, so device, filter, and limit are all documented in the schema itself. The description reinforces when to prefer filter over a full listing, which adds minor intent beyond the schema's 'Name substring', but gives no guidance on limit or device usage. Baseline 3 is appropriate.

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?

States a specific resource and what it returns: software/packages installed and their versions. The scope is unambiguous and clearly distinct from siblings like list_processes or service_list, though it does not name a sibling explicitly to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear triggering condition ('when the user needs to answer what software/packages are installed') plus a routing preference: use a filter for a single product rather than returning the full inventory. No explicit exclusions against near-neighbour tools, but the when-to-use context is solid.

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

interact_with_processInteract with processB
Destructive
Inspect

Use this when a running process is waiting for input, such as a prompt or a confirmation.

NameRequiredDescriptionDefault
pidYesSession pid returned by start_process.
inputYesLine of input to send; a newline is appended.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
timeout_msNoHow long to wait for the response, in milliseconds. Default 1000.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds the triggering scenario but does not disclose the behavior that matters here: that the input is consumed irreversibly, what happens if the process isn't actually waiting, or how timeout_ms interacts with the wait.

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?

A single short sentence with no filler, and the triggering condition is front-loaded where the agent will read it. Nothing to cut.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and annotations cover safety. However, with four process-related siblings in the list (start_process, read_process_output, wait_for_process_output, kill_process), the description omits the prerequisite that the pid must come from start_process and gives no guidance on choosing between this and wait_for_process_output.

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%, so pid, input, device and timeout_ms are all documented in the schema itself. The description contributes no additional parameter meaning, so the baseline of 3 for fully-covered params is correct.

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

Purpose3/5

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

The description is framed entirely as a trigger condition ('when a running process is waiting for input') rather than stating what the tool does. Combined with the name and the schema (pid + input line), an agent can infer it sends a line of input to a process's stdin, but the description itself never supplies the verb+resource. It does at least distinguish the scenario from starting or killing a process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The when-to-use condition is explicit and concrete: a running process blocked on a prompt or confirmation. It stops short of 5 because it names no alternative and no exclusions — nothing routes the agent between this tool and the closely related siblings wait_for_process_output or read_process_output.

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

keyboardKeyboard shortcutA
Destructive
Inspect

Use this when the task calls for shortcuts and individual key presses such as Ctrl/Cmd+C, Tab, Enter or Escape. Do not use it to enter normal prose when type_text is available. On Wayland auto uses an already-authorized portal; backend=portal explicitly requests consent.

NameRequiredDescriptionDefault
appNoOptional target application/process name substring.
keyNoSingle key name such as Enter, Escape, Tab or A.
pidNoOptional target process id.
keysNoOrdered key names that together form the requested shortcut or key sequence.
titleNoOptional target window title substring.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.
shortcutNoKeyboard shortcut such as CTRL+L, CMD+K or ALT+F4.
window_idNoOptional target window id returned by list_windows. On Wayland the target is focused and verified before keyboard/text input is dispatched.

Output Schema

NameRequiredDescription
dataNoKeyboard shortcut structured result for keyboard. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.6/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond annotations by explaining that on Wayland 'auto uses an already-authorized portal' while 'backend=portal explicitly requests consent.' The annotations already convey mutability and destructive potential (readOnlyHint=false, destructiveHint=true), so the description doesn't need to restate those. It is consistent with the annotations.

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?

Three sentences, no fluff, with the most important guidance front-loaded. It communicates usage boundaries and a platform-specific caveat in a compact, skimmable way.

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?

Given the 9-parameter schema and output schema, the description covers the key decision an agent faces (keyboard shortcuts vs prose) and the main platform nuance (Wayland portal behavior). It doesn't explain how to select among shortcut, key, and keys or how targeting parameters interact, but the rich schema and output schema carry that load.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description still adds value by giving concrete examples of accepted key/shortcut values (Ctrl/Cmd+C, Tab, Enter, Escape) and by adding meaning to the backend parameter with the Wayland portal distinction.

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

Purpose5/5

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

The description clearly states the tool's purpose: sending shortcuts and individual key presses like Ctrl/Cmd+C, Tab, Enter, or Escape. It names the resource (keyboard input) and explicitly contrasts with type_text, making it easy for an agent to distinguish this tool from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use this tool ('when the task calls for shortcuts and individual key presses') and when not to use it ('Do not use it to enter normal prose when type_text is available'). It also gives backend selection guidance for Wayland, which helps the agent choose the right invocation.

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

kill_processKill processA
Destructive
Inspect

Use this when the user wants to stop an arbitrary operating-system process by PID. If the PID belongs to a ReMCP terminal session created by start_process, prefer force_terminate so the session state and process tree are handled consistently.

NameRequiredDescriptionDefault
pidYesProcess id to terminate.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds genuine beyond-schema context: that killing a ReMCP session's PID can leave session state and process trees inconsistent, which is exactly the kind of side-effect warning annotations cannot express. It stops short of stating failure behavior or irreversibility explicitly, so not a 5.

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 sentences, front-loaded with the primary use case and followed by the disambiguation. Every clause carries information; no filler or restatement of the tool name.

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

Completeness5/5

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

For a two-parameter destructive tool with full schema coverage, an output schema, and annotations covering the safety profile, the remaining burden on the description is disambiguation and side-effect warning, both of which are present. An agent has everything needed to select and call it correctly.

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 both pid and device documented inline, so the baseline is 3. The description only names the PID concept and adds no format, range, or meaning beyond the schema, nor does it explain the device requirement.

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

Purpose5/5

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

States a specific verb+resource: stopping an arbitrary operating-system process by PID. It also explicitly distinguishes itself from the sibling force_terminate by naming the condition (ReMCP terminal session created by start_process) that selects the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-to-use clause ('when the user wants to stop an arbitrary operating-system process by PID') and an explicit when-to-prefer-something-else clause pointing at force_terminate with the reason (session state and process tree handled consistently). Nothing is left to inference.

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

launch_appLaunch applicationA
Destructive
Inspect

Use this when the user explicitly asks to start a named desktop application or permitted executable on a paired computer. Launches the specified app with an argument array and no shell; start_process handles shell commands and scripts, while open_path opens existing permitted files or directories in their default application. Starting an app can execute code and change desktop state.

NameRequiredDescriptionDefault
appNoApplication name, friendly Start Menu name, or executable path.
cwdNoOptional permitted working directory for direct executable launch.
argsNoArgument array passed directly to the launched application; no shell parsing.
pathNoAlias for app.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
wait_for_windowNoOptional application/title substring that must appear after launch.
wait_timeout_msNoMaximum wait for wait_for_window; default 10000, maximum 120000.

Output Schema

NameRequiredDescription
dataNoArray/scalar payload wrapper used when the natural result is not an object.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and idempotentHint=false, so the safety profile is structured. The description adds genuinely useful context beyond them: execution is shell-free ('no shell parsing'), and launching can execute code and change desktop state. It does not discuss permissions/auth or failure modes, but the annotation layer carries much of that burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no waste, and the usage trigger is front-loaded before the sibling disambiguation. Slightly dense with three tools and a behavior clause packed in, but every sentence carries information.

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 an output schema present, return values need not be described, and the description covers the trigger, the alternatives, and the mutation risk of a destructive, non-idempotent launch. The only thin spot is that required device pairing is only implied by 'paired computer' rather than stated as a precondition.

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%, so all seven parameters including app/path aliasing, args array, cwd, and the wait_for_window/wait_timeout_ms pair are already documented in the schema. The description echoes the no-shell argument semantics but adds no new parameter-level detail. Baseline 3 is correct.

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

Purpose5/5

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

States a specific verb and resource ('start a named desktop application or permitted executable on a paired computer') and explicitly delineates itself from two siblings, start_process and open_path. An agent can distinguish this tool's scope without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger condition ('when the user explicitly asks to start a named desktop application'), and names both alternatives with their differing scope: start_process for shell commands/scripts, open_path for existing files/directories. Routing is unambiguous.

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

list_devicesList ReMCP devicesA
Read-onlyIdempotent
Inspect

Use this when the target computer is not already unambiguous. Call it first to list computers paired to the signed-in ReMCP account and see which ones are online.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds important context beyond that by specifying the scope ('paired to the signed-in ReMCP account') and the information returned (online status). This implies authentication requirements and that the result is account-scoped, which is useful behavioral knowledge.

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?

The description is two sentences with no redundancy. It front-loads the usage condition ('when the target computer is not already unambiguous') before stating the action. Every word earns its place.

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

Completeness5/5

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

For a simple, parameterless device-listing tool, the description is complete. It explains what it does, when to use it, and notes that it reports online status. An output schema is present, so return format details are not the description's responsibility. No critical gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (trivially). The description adds no parameter information because none is needed; the baseline for zero parameters is 4, and no compensation is required.

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

Purpose5/5

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

The description clearly states a specific action: 'list computers paired to the signed-in ReMCP account and see which ones are online.' It uses a specific verb (list) and resource (paired computers) and distinguishes itself from siblings by positioning as the first step to resolve ambiguity about the target computer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance is provided: 'Use this when the target computer is not already unambiguous.' It also instructs to 'Call it first,' establishing a clear precondition and order of operations. While it doesn't name alternatives, the condition is sufficient to route an agent correctly.

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

list_directoryList directoryA
Read-onlyIdempotent
Inspect

Use this when the user wants to see what a directory on a paired computer contains, optionally filtered by a glob.

NameRequiredDescriptionDefault
pathYesAbsolute path of the directory to list.
depthNoDirectory levels to list, from 1 to 5. Default 1.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
patternNoOptional glob that filters file names, such as "*.log". Directories are always listed.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds useful context about the paired computer scope and optional glob filtering, but does not go further to describe hidden-file behavior, sorting, or error conditions.

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?

The description is one focused sentence with no filler. It front-loads the usage trigger and includes the key optional behavior, making it immediately actionable for an agent.

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

Completeness5/5

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

For a low-complexity list operation, the description is complete when combined with the 100%-covered schema, the safety annotations, and the existing output schema. The agent has enough information to select and invoke the tool correctly without missing critical context.

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%, so all four parameters are already documented adequately in the schema. The main description adds only the high-level notion of an optional glob filter, which does not meaningfully extend what the schema already provides.

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

Purpose5/5

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

The description states a specific verb and resource: it tells the agent to use this tool when the user wants to see what a directory on a paired computer contains. This clearly distinguishes it from sibling tools like list_devices or read_file by focusing on directory listing on a remote/paired machine.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context with 'Use this when the user wants to see what a directory...contains.' However, it does not explicitly state when not to use it or name alternative tools for similar tasks, so it misses the full when-not/alternatives guidance.

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

list_processesList processesA
Read-onlyIdempotent
Inspect

Use this when the user wants the computer-wide operating-system process list. Use list_sessions when the question is only about commands started through ReMCP start_process.

NameRequiredDescriptionDefault
limitNoMaximum number of processes to return. Default 100, maximum 1000.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds the computer-wide scoping behavior and the distinction from list_sessions, but does not describe the return format, ordering, or whether output is filtered, which is a minor gap against the annotations.

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 sentences with no filler. The main purpose is front-loaded, and the sibling differentiation is placed second. Every part of the description contributes to tool selection.

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

Completeness5/5

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

The tool is simple, has only two parameters with full schema documentation, an output schema, and rich annotations. The description adds the necessary selection context and sibling distinction, leaving no critical gap for an agent to call it correctly.

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%, so the schema already documents both parameters (device, limit). The description does not need to explain them; however, it also does not add any extra semantic context about parameter behavior beyond what the schema provides, so the baseline score of 3 applies.

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

Purpose5/5

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

States a specific verb and resource: 'computer-wide operating-system process list'. It names the exact scope and explicitly differentiates from list_sessions, which is a sibling tool in the same domain, so an agent can distinguish the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear when-to-use condition (user wants the computer-wide OS process list) and an explicit exclusion with an alternative (use list_sessions for processes started through ReMCP start_process). This fully routes the agent to the correct tool.

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

list_searchesList searchesA
Read-onlyIdempotent
Inspect

Use this when you need to know which search sessions are still active on a machine.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already convey read-only, idempotent, non-destructive behavior. The description adds one useful behavioral detail—'still active' filtering—but does not discuss session lifecycle, ownership, or cleanup semantics beyond that.

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?

A single front-loaded sentence that states the purpose without redundancy. Every word earns its place.

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?

For a one-parameter read-only tool with an output schema and strong annotations, the description is sufficient for correct invocation. It could have hinted at session identity or the relationship to start_search/stop_search, but nothing critical is missing.

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?

Input schema has 100% parameter description coverage, so the schema fully documents device. The description adds no substantive parameter semantics beyond 'on a machine,' and no compensation is required.

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?

Description clearly states the tool lists active search sessions on a machine, using a specific verb and resource. It does not explicitly distinguish from siblings like list_sessions or get_more_search_results, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit usage trigger ('Use this when you need to know which search sessions are still active') that tells the agent the appropriate context. It does not name alternatives or exclusion criteria, so it stops at clear context rather than full routing.

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

list_sessionsList sessionsA
Read-onlyIdempotent
Inspect

Use this when you need to know which ReMCP terminal sessions created by start_process are still running. Use list_processes for the computer-wide operating-system process list.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the scoping detail that this lists only ReMCP terminal sessions (not all OS processes), which is useful. However, it doesn't disclose return format, pagination, or whether sessions are listed regardless of state, but the annotations carry the main behavioral burden.

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 sentences with zero waste. The primary use case is front-loaded, and the sibling distinction is concise. Every word earns its place.

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?

For a simple read-only list tool with full schema coverage, an output schema, and annotations covering safety, the description is nearly complete. The only minor gap is not describing what the returned session list contains (e.g., session IDs, status), but the output schema likely covers that. Overall, an agent has enough to call it correctly.

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%, so the schema already documents the device parameter. The description adds no additional parameter-level detail beyond what the schema provides, which is acceptable given full coverage. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('list') and resource ('ReMCP terminal sessions created by start_process'), and explicitly distinguishes it from the sibling tool list_processes. This makes the tool's purpose unambiguous and differentiates it from the closest alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('when you need to know which ReMCP terminal sessions... are still running') and names the alternative (list_processes) for the computer-wide OS process list. This gives clear routing guidance with no ambiguity.

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

list_windowsList windowsA
Read-onlyIdempotent
Inspect

Use this when the user needs to discover top-level desktop windows or obtain a stable window id/PID/bounds before window_action, screenshot_region or targeted input. Use ui_snapshot instead when you need controls inside a window; prefer list_windows over screenshot-based window guessing.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
include_monitorNoEnrich each window with monitor and monitor_index; default true.

Output Schema

NameRequiredDescription
dataNoTop-level windows.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is established. The description adds meaningful behavioral context: it returns stable window identifiers and PID/bounds, and it scopes results to top-level desktop windows, which is useful for downstream operations.

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 focused sentences with no filler. The first states the primary use, the second gives the alternative selections. The key user need is front-loaded and every clause earns its place.

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

Completeness5/5

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

With full schema coverage, an output schema present, and annotations covering safety, the description provides all necessary selection and invocation context. It states scope, output relevance, and alternatives, leaving no critical gap for an agent deciding whether to call this 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% and both parameters are already well documented, with include_monitor explicitly noting its default. The description adds no new parameter-level meaning, so it stays at the baseline for full schema coverage.

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

Purpose5/5

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

The description clearly states the tool's function: discover top-level desktop windows and obtain a stable window id/PID/bounds. It distinguishes itself from ui_snapshot and screenshot-based guessing, making the resource and its scope immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it ('before window_action, screenshot_region or targeted input'), when to use an alternative ('Use ui_snapshot instead when you need controls inside a window'), and expresses a clear preference over screenshot-based guessing. This provides concrete routing among siblings.

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

move_fileMove or renameA
Destructive
Inspect

Use this when the user asks to move or rename exactly one file or directory from one source to one destination. For two or more moves use move_paths.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
sourceYesAbsolute path to move.
overwriteNoReplace an existing destination file. Default true.
destinationYesAbsolute destination path.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds no extra behavior details like overwrite behavior or error conditions, but the annotation covers the key risk.

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 sentences with zero waste. The primary use case is front-loaded, and the alternative is mentioned concisely.

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?

Mostly complete: it handles the single vs multiple context and has a full schema with 100% coverage and an output schema. It doesn't mention edge cases like overwrite behavior, but given the schema and annotations, the core is covered.

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% and each parameter has clear descriptions (absolute paths, device id, overwrite default). The description adds no extra parameter context beyond pointing to the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it is for moving or renaming exactly one file or directory from one source to one destination, distinguishing it from the sibling move_paths for multiple moves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use for exactly one move, and names the alternative move_paths for two or more moves, giving clear routing.

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

move_pathsMove pathsA
Destructive
Inspect

Use this when the user asks to move or rename two or more files/directories in one batch. For one source/destination pair use move_file.

NameRequiredDescriptionDefault
pathsYesPairs to move, at most 200 per call.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
overwriteNoReplace an existing destination. Default true.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false, so the core risk profile is known. The description adds no behavioral details such as default overwrite behavior or partial-failure semantics, but it does not contradict the annotations.

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 sentences with no wasted words. The condition is front-loaded and the alternative is named concisely in the final clause.

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?

For a batch move tool with a complete input schema and output schema, the description is nearly sufficient. The only minor gap is that it does not remind the agent that overwrite defaults to true, but that information is available in the schema.

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%, so the parameters, including source, destination, device, and overwrite default, are already documented. The description adds no parameter-level semantics, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: batch-moving/renaming two or more files or directories. It also names the single-pair sibling tool, move_file, so an agent can distinguish this tool immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('two or more files/directories in one batch') and names the alternative for the one-pair case ('For one source/destination pair use move_file'). This is direct routing guidance with no ambiguity.

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

move_to_trashMove to trashA
Destructive
Inspect

Use this when the user wants a file or directory removed but still recoverable from the system trash.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
sourceYesAbsolute path to move to the trash.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the description doesn't need to repeat that. It adds the useful nuance that the operation is recoverable ('still recoverable from the system trash'), which goes beyond the annotation. No contradiction with annotations.

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?

A single sentence, front-loaded with the usage condition and the key differentiator (recoverable). No wasted words, perfectly concise.

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

Completeness5/5

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

For a simple two-parameter operation with an output schema and annotations covering destructive behavior, the description is complete. It tells the agent exactly when to use the tool and what it does, and the output schema covers return details.

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%: both device and source are well documented in the schema. The description itself adds no extra parameter meaning beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb ('move to trash') and resource ('file or directory'), and explicitly contrasts with permanent deletion via 'still recoverable from the system trash.' This distinguishes it from sibling tools like delete_path and delete_paths, which imply permanent removal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear condition for use: when the user wants removal but recovery from trash. It implies that for permanent deletion, other tools like delete_path should be used, but does not explicitly name alternatives. This is clear context, though not an explicit exclusion.

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

network_dnsNetwork DnsA
Read-onlyIdempotent
Inspect

Use this when the user asks to inspect the operating system configured DNS resolver server addresses on a paired computer. This reads local DNS configuration only; it performs no DNS lookup, external network request, or network configuration change.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoNetwork diagnostics structured result for network. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, idempotent, and closed-world behavior. The description adds useful context that it reads local DNS configuration only and performs no lookup, external request, or configuration change.

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 concise sentences front-load the usage trigger and follow with important behavioral constraints. There is no wasted text.

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

Completeness5/5

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

The tool has one fully documented parameter, rich annotations, and an output schema. The description sufficiently explains scope and limitations for correct invocation.

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 coverage is 100% and the sole device parameter is already documented as a ReMCP device id. The description adds only that it operates on a paired computer, so the schema does most of the parameter work.

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

Purpose5/5

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

The description names a specific verb and resource: inspect operating system configured DNS resolver server addresses. It also distinguishes this from a DNS lookup or network change, which helps separate it from siblings like network_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear trigger: use when the user asks to inspect DNS resolver addresses on a paired computer. It also states what the tool does not do, though it does not explicitly name an alternative sibling for DNS lookup or configuration changes.

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

network_interfacesNetwork InterfacesA
Read-onlyIdempotent
Inspect

Use this when the user asks to inspect the full local network interface inventory on a paired computer, including OS-reported IPv4 and IPv6 addresses, netmasks, MAC addresses and internal-interface flags. Unlike network_summary, the inventory is not truncated. This only reads local adapter data; it does not scan networks or change network configuration.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoNetwork diagnostics structured result for network. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.6/5.0
Behavior5/5

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

While annotations handle the safety profile (read-only), the description adds critical behavioral constraints regarding scope—specifically that it is limited to local adapter data and does not perform external scanning or modification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is slightly dense, but highly effective. Every sentence serves a purpose by either defining functionality, listing included data points, or explicitly stating exclusions/differences from other tools, avoiding unnecessary fluff.

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

Completeness5/5

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

Given the complexity of network operations, the description is remarkably complete. It covers what the tool does, what it doesn't do, and how it differs from its most likely alternative, leaving no ambiguity for the agent.

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?

The schema coverage is 100%, so the parameter description does not need to add semantic value regarding the `device` ID. It correctly lands on the baseline score, acknowledging the schema is sufficient for parameter understanding.

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

Purpose5/5

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

The description clearly states the purpose: 'inspect the full local network interface inventory.' It specifies the exact contents (IPv4, IPv6, MAC, flags) and crucially distinguishes it from the sibling tool, `network_summary`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance on when and when not to use the tool. It states that it only reads local adapter data and does not scan networks or change configurations, making its operational boundaries clear.

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

network_listenersNetwork ListenersA
Read-onlyIdempotent
Inspect

Use this when the user asks to inspect listening ports on a paired computer to diagnose local services, unexpected exposure or port conflicts. Reads the OS TCP listener inventory on Windows and macOS, and TCP/UDP listeners on Linux; process details depend on OS permissions. It does not connect to ports, scan remote hosts or change firewall rules.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoNetwork diagnostics structured result for network. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the description correctly spends its words on what the annotations cannot say: platform-dependent coverage (TCP only on Windows/macOS, TCP+UDP on Linux) and that process details vary with OS permissions. Those are exactly the caveats an agent needs before interpreting results.

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 sentences, front-loaded with the activation condition, followed by capability/limits. No filler, and the negative scope is stated tersely rather than as a bulleted list of disclaimers.

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

Completeness5/5

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

With an output schema present, return values need no explanation, and the single fully-documented parameter needs no elaboration. The description covers the remaining gaps an agent would hit: OS differences in what listeners are visible and permission-dependent process detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, 'device'.

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

Purpose5/5

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

States a specific verb and resource: inspect listening ports on a paired computer, and gives the diagnostic intent (local services, unexpected exposure, port conflicts). It is clearly separable from adjacent network siblings like network_interfaces, network_routes and network_test because it names the listener inventory specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with an explicit trigger phrase ('Use this when the user asks to inspect listening ports...') and closes with explicit exclusions ('does not connect to ports, scan remote hosts or change firewall rules'). That gives both when-to-use and when-not, leaving little inference for the agent.

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

network_routesNetwork RoutesA
Read-onlyIdempotent
Inspect

Use this when the user asks to inspect the local OS routing table on a paired computer, including default gateway, destination networks, next hops and route metrics where supported. Use it to diagnose routing and reachability issues. The output varies by OS; it does not add routes, send traffic or change network settings.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoNetwork diagnostics structured result for network. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered; the description adds genuine value by clarifying the operation is purely observational and that output shape is OS-dependent — a real behavioral caveat for the agent. It doesn't mention permissions/privilege requirements or failure modes, which keeps it below 5.

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?

Three sentences, front-loaded with the trigger condition and scope, then purpose, then the negative boundary. No redundant restatement of the title.

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

Completeness5/5

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

For a single-parameter read-only inspection tool with an output schema and full annotation coverage, the description supplies everything needed: scope, OS variability of results, and confirmation of non-mutation.

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?

Only one parameter and schema coverage is 100% — the device field already documents that it is a ReMCP device id from list_devices. The description adds nothing beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

Specific verb+resource: 'inspect the local OS routing table on a paired computer', with the concrete contents enumerated (default gateway, destination networks, next hops, route metrics). This is clearly distinct from sibling tools like network_interfaces, network_listeners, network_summary and network_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use conditions ('when the user asks to inspect the routing table', 'diagnose routing and reachability issues') plus clear exclusions ('does not add routes, send traffic or change network settings'). It stops short of naming a sibling to route to for reachability testing (e.g. network_test), so not quite a 5.

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

network_summaryNetwork SummaryA
Read-onlyIdempotent
Inspect

Use this when the user asks for a quick network overview of a paired computer: hostname, DNS servers and a bounded sample of its local network interfaces and IP addresses, including counts and truncation flags. Prefer network_interfaces for the complete inventory. This is read-only; it does not probe remote hosts or change network settings.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoNetwork diagnostics structured result for network. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered; the description still adds real value by disclosing that the interface list is a bounded, truncated sample with flags and counts, and that it does not probe remote hosts. It does not mention cost or performance characteristics of the collection, so it stops short of a 5.

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?

Three sentences, front-loaded with the use condition and the returned fields, then the alternative, then the behavioral caveat. No filler and nothing repeated from the title or schema.

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

Completeness5/5

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

An output schema exists, so return-value structure need not be restated; the description covers the remaining burden — scope of the sample, truncation behavior, and absence of side effects or remote probing. An agent has everything needed to call this correctly and interpret the result.

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?

There is a single parameter (device) with 100% schema description coverage that already states it is the ReMCP device id returned by list_devices. The description adds nothing about the parameter, so the schema-coverage baseline of 3 applies.

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

Purpose5/5

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

States a specific verb+resource (network overview of a paired computer) and enumerates exactly what is returned: hostname, DNS servers, a bounded sample of interfaces/IPs, plus counts and truncation flags. It also names the sibling network_interfaces so the agent can distinguish the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the triggering condition ("when the user asks for a quick network overview") and an alternative with its selecting condition ("Prefer network_interfaces for the complete inventory"). This is exactly the when-to-use / when-to-use-something-else routing an agent needs.

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

network_testNetwork TestA
Read-onlyIdempotent
Inspect

Use this to check TCP connectivity from a paired computer to a specified host and port with a bounded timeout. It makes an outbound network connection but does not scan ranges or modify network settings.

NameRequiredDescriptionDefault
hostYesHost name or IP address for a bounded connectivity test.
portYesTCP port number for a connectivity test.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
timeout_msNoBounded timeout in milliseconds.

Output Schema

NameRequiredDescription
dataNoNetwork diagnostics structured result for network. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful context by saying it makes an outbound connection, uses a bounded timeout, and avoids range scanning or settings changes.

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?

The description is two sentences, front-loads the main action, and includes only scope-relevant detail. There is no redundant or filler language.

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

Completeness5/5

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

Given the rich annotations, 100% schema coverage, and an output schema, the description provides enough context for an agent to call this tool correctly. It covers purpose, scope limits, and the outbound-connection behavior without needing to restate return values.

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%, so host, port, device, and timeout_ms are already documented in the schema. The description restates host/port/timeout semantics but does not add meaningful parameter guidance beyond the structured fields.

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?

The description states a specific verb and resource: check TCP connectivity from a paired computer to a specified host and port with a bounded timeout. This is clearer than a generic network test, but it does not explicitly contrast itself with nearby siblings such as ping_device or network_summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear use case: checking TCP connectivity to a specific host and port. It also provides scope exclusions, saying it does not scan ranges or modify network settings, though it does not name alternative tools for those excluded tasks.

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

notificationDesktop notificationAInspect

Use this when the user wants a visible native desktop notification on the paired computer. Do not use it as a substitute for replying in chat.

NameRequiredDescriptionDefault
titleNoWindow/page title substring used to select the target.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
messageYesNotification message.
timeout_secondsNoBounded native notification display timeout in seconds when the platform supports it.

Output Schema

NameRequiredDescription
dataNoArray/scalar payload wrapper used when the natural result is not an object.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

The description adds the behavioral context that this produces a user-visible native notification on the paired computer, and clarifies it is not a conversational response. Annotations are all false or neutral, so the description bears most of the burden here. It could disclose more about delivery guarantees, platform limitations, or whether the notification is ephemeral, but for a simple tool this is adequate.

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, both purposeful: one states the use case and context, the other prevents common misuse. Every word earns its place and the key message is front-loaded.

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?

The tool is simple, the schema fully documents the parameters, an output schema exists, and the description provides clear usage boundaries. The only minor gap is not mentioning platform-dependent behavior or that the notification is transient, but these are not essential for a basic call. Overall, the description is complete enough for correct invocation.

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 coverage is 100%, so every parameter is already described in the input schema. The description does not add any parameter-specific meaning beyond what the schema provides. This meets the baseline but adds no extra value.

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?

The description clearly states the tool is for showing a visible native desktop notification on the paired computer, making its purpose evident. It also distinguishes itself from replying in chat, which helps separate it from a common misuse. It could be more direct by using an explicit verb like 'displays' or 'sends', but the intended action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: when the user wants a visible native desktop notification on the paired computer. It also gives a clear when-not case by stating it should not replace a chat reply. No alternative tool is named, but the guidance is sufficient for typical selection.

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

open_pathOpen pathAInspect

Use this when the user wants the desktop operating system to open an existing permitted file or directory with its configured default application. The path is checked against the paired computer policy.

NameRequiredDescriptionDefault
pathYesFile or directory to open.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoArray/scalar payload wrapper used when the natural result is not an object.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the safety profile (non-destructive, non-idempotent, not open-world), so the bar is lower. The description adds genuine context beyond them: the operation goes through the OS default handler and the path is validated against the paired computer policy, which tells the agent a rejection is possible for unpermitted paths.

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 sentences, no filler, and the usage trigger is front-loaded before the policy caveat. Every sentence earns its place.

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?

For a simple two-parameter tool with an output schema (so return values need no explanation) and annotations covering the safety profile, the description is nearly complete: purpose, trigger, and the policy-check constraint. Only the absence of any alternative-tool guidance keeps it from a 5.

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%, so both parameters (path, device) are already documented in the schema, and the description adds no format or syntax detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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?

The description gives a specific verb (open) and a precise resource (an existing permitted file or directory, via its configured default application), and the 'default application' mechanism implicitly separates it from siblings like launch_app (starts an app) or reveal_path (shows in file manager). It stops short of naming any sibling explicitly, so it stops at a strong 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the trigger condition clearly ('when the user wants the desktop operating system to open'), which gives the agent a usable context for selection. It does not name an alternative tool or an explicit when-not condition, so no credit for routing guidance.

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

pdf_annotationsPdf AnnotationsA
Read-onlyIdempotent
Inspect

Use this when the user asks to list or inspect annotations, comments, highlights or markup already present in one permitted local PDF file on a paired computer. Requires the PDF path and only returns annotation metadata; it does not edit, save, delete or annotate the PDF.

NameRequiredDescriptionDefault
pathYesPermitted local filesystem path.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoPDF action structured result for pdf_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered structurally. The description still adds real context: single-file scope, 'permitted local PDF' on a 'paired computer', and that only annotation metadata is returned. It re-states the non-mutating claim, which is partly redundant with the hints.

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 sentences, front-loaded with the usage trigger, followed by prerequisites and non-mutation scope. No filler or repeated clauses; every sentence carries information.

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?

Covers the trigger, single-file scope, required input, and the fact that it performs no writes. An output schema exists, so return values need not be described. The only mild gap is that it doesn't mention the device/pairing requirement explicitly, though the schema makes it mandatory.

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%, so both parameters (path, device) are already documented in the schema. The description only restates that the PDF path is required and adds no format, constraint, or example beyond that, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('list or inspect annotations, comments, highlights or markup') and scopes it to a single local PDF, which cleanly separates it from siblings like pdf_extract_pages, pdf_merge, or pdf_info. The negation ('does not edit, save, delete or annotate') further pins down the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('Use this when the user asks to list or inspect annotations...'), which is exactly the invocation condition an agent needs. It does not name alternative siblings (e.g. pdf_info) for the case where a user wants general PDF metadata, so it stops short of full routing guidance.

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

pdf_extract_pagesPdf Extract PagesA
Destructive
Inspect

Use this to extract a requested page range from a selected local PDF into an output PDF. Validate page numbers and output path; source pages remain unchanged.

NameRequiredDescriptionDefault
pathYesPermitted local filesystem path.
pagesYesPage list/ranges such as 1-3,5.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputYesOptional permitted output path; when omitted the tool may update the input according to its action.
patternNoOutput filename pattern where supported.
output_dirNoPermitted directory for generated output files.

Output Schema

NameRequiredDescription
dataNoPDF action structured result for pdf_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.5/5.0
Behavior3/5

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

The description adds useful context that source pages remain unchanged and that page numbers/output path are validated. However, annotations already declare destructiveHint=true, and the description does not explain that risk (e.g., overwriting an existing output file), leaving a gap for a mutation tool.

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 sentences, front-loaded with purpose and immediately followed by the key operational note about validation and source preservation. Nothing is redundant or buried.

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

Completeness3/5

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

The description covers the core behavior and notes that source pages are unchanged, and an output schema exists to explain return values. But for a tool annotated as destructive, it omits any warning about output overwrite behavior or requirements around the output path, leaving a meaningful behavioral gap.

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%, so the schema already documents every parameter, including page range syntax ('1-3,5') and device requirements. The description only echoes high-level concepts like page range and output path without adding syntax or edge-case detail.

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?

The description states a specific verb and resource ('extract a requested page range from a selected local PDF into an output PDF'), so an agent can tell what the tool does. It does not explicitly differentiate from sibling PDF tools such as pdf_split or pdf_merge, but the scope is clear enough to infer the distinction.

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?

The phrase 'Use this to extract...' gives an implied usage context, but there is no explicit guidance on when to prefer this tool over alternatives like pdf_split, nor any exclusions or preconditions beyond 'selected local PDF'.

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

pdf_infoPdf InfoA
Read-onlyIdempotent
Inspect

Use this when the user asks to inspect an existing local PDF file on an explicitly paired computer and retrieve its metadata and properties, such as page count, title, author or PDF version when the local pdfinfo utility is available. Supply the permitted PDF path. Without pdfinfo, the fallback reports file size in bytes and annotation count. This is read-only: it does not extract page text, edit annotations, write output or replace the source PDF.

NameRequiredDescriptionDefault
pathYesPermitted local filesystem path.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoPDF action structured result for pdf_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds genuine context: the dependency on the local pdfinfo utility and the concrete fallback behavior (reports file size in bytes and annotation count) when it is absent. The 'explicitly paired computer' / 'permitted path' wording also signals an authorization prerequisite.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the trigger condition and the core action, then adds fallback and boundary sentences that each carry information. It is slightly dense across four sentences but nothing is redundant.

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

Completeness5/5

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

With an output schema covering return values and annotations covering the safety profile, the description needs only to convey purpose, prerequisites and fallback behavior, all of which it does. Nothing an agent needs to invoke it correctly is missing.

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%, so both parameters are already documented in the schema. The description adds only marginal value ('Supply the permitted PDF path'), which reinforces but does not extend the schema's semantics.

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

Purpose5/5

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

States a specific verb and resource (inspect a local PDF and retrieve its metadata/properties) and enumerates the concrete fields returned (page count, title, author, PDF version). It explicitly carves itself out from siblings like pdf_extract_pages and pdf_annotations by stating it does not extract text or edit annotations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear triggering context ('when the user asks to inspect an existing local PDF file on an explicitly paired computer') and notes the pdfinfo availability condition plus the fallback path. It describes boundaries rather than naming the specific alternative tools to use instead, so it stops short of a full when/when-not routing.

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

pdf_mergePdf MergeA
Destructive
Inspect

Use this to combine multiple user-selected local PDF files into a new output PDF in specified order. Check every input and destination; this creates an output file but does not edit the source pages.

NameRequiredDescriptionDefault
pathNoPermitted local filesystem path.
pathsYesList of permitted local filesystem paths.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputYesOptional permitted output path; when omitted the tool may update the input according to its action.
patternNoOutput filename pattern where supported.
output_dirNoPermitted directory for generated output files.

Output Schema

NameRequiredDescription
dataNoPDF action structured result for pdf_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior5/5

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

The description adds critical behavioral context beyond the 'destructiveHint' annotation by explicitly stating that the tool 'does not edit the source pages.' This manages user expectations regarding the integrity of the input files, which is vital for a mutation tool.

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?

The two sentences are highly efficient, with the first establishing the core function and the second providing a crucial operational guarantee regarding source file safety. No part of the description is superfluous.

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?

The description is highly complete regarding the tool's function and safety profile. Given that the input schema is comprehensive and the annotations cover the safety flags, the description successfully adds the missing behavioral nuance.

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?

The schema description coverage is 100%, so the schema defines all parameters well. The description mentions 'specified order,' which relates to the `paths` array, but provides no new semantic meaning beyond what the schema already dictates about the input structure. The baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'combine' and clearly defines the resource (local PDF files) and the output format (new output PDF). It is immediately clear how this tool functions in the context of file manipulation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool specifies that the files are combined 'in specified order' and clarifies that it produces a new file rather than modifying inputs. While it doesn't explicitly name sibling tools, the functional description provides clear context on when to use this merge vs. split or rename tools.

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

pdf_splitPdf SplitA
Destructive
Inspect

Use this to split a selected local PDF into separate files or page groups using requested page boundaries. Verify the input and destination directory first; new output files are created.

NameRequiredDescriptionDefault
pathYesPermitted local filesystem path.
pagesNoPage list/ranges such as 1-3,5.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
outputNoOptional permitted output path; when omitted the tool may update the input according to its action.
patternNoOutput filename pattern where supported.
output_dirNoPermitted directory for generated output files.

Output Schema

NameRequiredDescription
dataNoPDF action structured result for pdf_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and non-idempotent, and the description adds that new output files are created. However, it never warns about overwriting existing outputs or that the input PDF itself may be modified, which is the key risk implied by destructiveHint and by the schema's note on omitted output. With annotations covering the safety profile, this is adequate but shallow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the action front-loaded and no filler. The second sentence awkwardly bundles verification advice with the output-file behavior, but nothing is wasted.

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?

An output schema exists so return values needn't be explained, and the annotations plus full schema coverage carry most of the burden. The main missing piece is what happens when 'output' is omitted (whether the input file is modified in place), which matters for a destructive 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%, so all six parameters (path, pages, device, output, pattern, output_dir) are already documented in the schema. The description only echoes 'page boundaries' and 'destination directory' without adding syntax, defaults, or interaction rules. Baseline 3 applies.

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?

States a specific verb and resource ('split a selected local PDF into separate files or page groups') plus the mechanism (requested page boundaries). It is clearly a PDF operation, though it does not explicitly distinguish itself from close siblings like pdf_extract_pages or pdf_merge.

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 precondition ('Verify the input and destination directory first') which is useful operational guidance, but offers no when-to-use/when-not guidance and never routes the agent to pdf_extract_pages or pdf_merge instead. Usage is only implied.

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

ping_devicePing a ReMCP deviceA
Read-onlyIdempotent
Inspect

Use this when you need to check that a paired computer answers right now and measure the round trip. The device agent answers the ping itself, so it works even while the local runtime is restarting or missing, and it reports hostname, platform, uptime and versions.

NameRequiredDescriptionDefault
deviceYesDevice id from list_devices.

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses a non-obvious behavior: the device agent answers the ping itself, so it works even while the local runtime is restarting or missing. It also states what the response reports (hostname, platform, uptime, versions), adding valuable context the annotations do not provide.

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 sentences with no filler. The usage trigger and key behavioral details are front-loaded, and every clause earns its place.

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

Completeness5/5

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

For a single-parameter, read-only, idempotent tool with an output schema, the description covers what the tool does, when to use it, its unusual resilience to runtime restart, and the key fields it reports. Nothing essential is missing.

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 the device parameter documented as 'Device id from list_devices.' The description adds no further parameter-level details, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb ('check that a paired computer answers') and resource ('a paired computer'), and adds a measurable outcome ('round trip'), which clearly distinguishes it from sibling tools like list_devices or get_runtime_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use the tool ('when you need to check that a paired computer answers right now'), giving clear context. It does not mention alternatives or when not to use it, so it misses the top tier.

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

pointer_clickPointer ClickA
Destructive
Inspect

Use this to send one native mouse click at a verified desktop coordinate. Check the current screenshot or element bounds first; clicking can trigger purchases, deletion or other actions.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoPointer action structured result for pointer. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the risk profile is known. The description still adds value by naming the 'native' input path and giving concrete consequence examples (purchases, deletion), but it says nothing about backend/consent behavior, failure modes, or whether the pointer is moved to the coordinate as part of the click.

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 sentences, front-loaded with the action, followed by the safety precondition. Every clause carries actionable information with no filler.

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

Completeness5/5

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

With rich annotations, full schema coverage, and an output schema, the description only needs to convey purpose, precondition, and risk, and it does all three. The gap around pointer-move behavior is minor given the sibling pointer_move tool exists and the schema is self-documenting.

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%, including detailed enum semantics for 'button' and 'backend', so the schema carries the parameter burden. The description only reinforces that coordinates are a 'verified desktop coordinate', adding no format or validation detail beyond what the schema already states, making the baseline 3 appropriate.

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?

States a specific verb and resource ('send one native mouse click') plus the constraint that the coordinate must be verified. The word 'native' hints at OS-level input versus DOM/synthetic clicks, but the description never names or distinguishes sibling tools like pointer_right_click, pointer_double_click, or computer_click, even though the button enum overlaps with pointer_right_click.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Check the current screenshot or element bounds first' gives a concrete precondition for use, and the warning about purchases/deletion signals the risk context. However, it offers no exclusions or routing guidance, notably omitting when to prefer pointer_double_click, pointer_right_click, or ui_click over this generic click.

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

pointer_double_clickPointer Double ClickA
Destructive
Inspect

Use this to send a native double-click at a verified desktop coordinate, for example to open a file or application. Inspect the target first; double-clicking may execute an action.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoPointer action structured result for pointer. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description adds concrete value by warning that double-clicking may execute an action and that the target should be inspected first, tying the destructive flag to actual agent behavior.

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, zero waste, with the core action front-loaded and the safety caveat immediately after. Every clause carries information an agent needs.

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 rich annotations, a full-coverage schema, and an output schema, the description covers purpose and risk adequately. It does not mention whether a prior pointer_move/screenshot is expected or how it differs from pointer_click, leaving a small routing gap for a 5-parameter GUI 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 coverage is 100%, with x/y, button, device, and backend all documented in-schema, so the baseline is 3. The description's 'verified desktop coordinate' mildly reinforces the coordinate semantics but adds nothing about button selection, backend choice, or the device requirement.

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?

States a specific verb and resource ('send a native double-click at a verified desktop coordinate') with a concrete example use case (open a file or application). It is clearly distinct from single-click siblings by name and content, though it never explicitly contrasts itself with pointer_click or ui_click.

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?

Provides a when-to-use example and a caution ('Inspect the target first'), which implies usage context. However, it names no alternatives — not pointer_click for single clicks, nor ui_click/computer_click for accessibility-tree-based clicking — so the agent must infer sibling routing on its own.

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

pointer_downPointer DownA
Destructive
Inspect

Use this when the user asks to press and hold a mouse button to begin a native desktop drag or selection gesture on a paired computer. This sends a real pointer-button-down event to the current application and leaves the button held until pointer_up; it may change application state.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoPointer action structured result for pointer. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare it non-read-only, non-idempotent, open-world, and destructive; the description adds genuinely useful context beyond that: it emits a real event, leaves the button held until pointer_up, and may change application state. It is consistent with destructiveHint=true but does not describe e.g. coordinate defaults or failure behavior, so 4 rather than 5.

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 sentences, front-loaded with the trigger condition, then the key behavioral fact (held until pointer_up). No filler or restatement of the name.

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?

For a low-param, output-schema-backed mutation tool with full annotation coverage, the description supplies the essential coordination semantics (must be paired with pointer_up) and the state-change warning. It omits the required-device prerequisite and any note on how x/y absence behaves, minor gaps given the schema already covers them.

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%, so x, y, button, device, and backend are all documented in the schema already. The description adds no syntax, default, or backend-selection guidance beyond what is in the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource (press and hold a mouse button / pointer-button-down event) and scopes it to native desktop drag or selection gestures on a paired computer, distinguishing it from browser_click, ui_click, and pointer_click. An agent can tell this is the 'press' half of a press-and-release pair without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear trigger condition ('when the user asks to press and hold ... to begin a drag or selection gesture') and names the gesture family it belongs to. It does not explicitly name pointer_up as the required follow-up tool or call out when pointer_click is preferable, so the routing guidance stops just short of 5.

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

pointer_movePointer MoveAInspect

Use this to move the desktop mouse pointer to a requested coordinate without clicking. Prefer semantic UI tools for actions; movement alone does not select or submit anything.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoPointer action structured result for pointer. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

The description adds crucial context regarding the tool's nature as a low-level movement operation, informing the agent of its functional constraints beyond the annotations. While the annotations provide safety profiles (non-destructive), the description provides operational context that is highly valuable.

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?

The definition is perfectly balanced; the first sentence states the function, and the second provides the critical usage warning. Both sentences are concise and add maximum value to the tool's utility.

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?

The definition is very complete for a low-level system interaction tool, covering its function, its limitations, and its relationship to higher-level UI tools. It provides all necessary context for an agent to decide if this tool is appropriate.

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?

Since schema description coverage is 100%, the input schema fully defines the semantics of x, y, device, and backend. The description provides no additional semantic information regarding the parameters, making the baseline score appropriate.

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

Purpose5/5

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

The description clearly defines the action (move desktop mouse pointer) and the precise result (to a requested coordinate). It successfully differentiates this function from clicking or other pointer interaction tools by specifying 'without clicking'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on usage hierarchy: 'Prefer semantic UI tools for actions.' It also clearly defines the functional limitations of the tool, stating that 'movement alone does not select or submit anything,' which is vital context for preventing agent misuse.

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

pointer_right_clickPointer Right ClickA
Destructive
Inspect

Use this to open a native context menu by right-clicking at a verified coordinate. Inspect the target and resulting menu before selecting any command.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoPointer action structured result for pointer. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

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, readOnlyHint=false and openWorldHint=true, so the safety profile is covered. The description adds a useful caution ('inspect the target and resulting menu before selecting any command'), which implies the risk lies in the follow-up menu choice rather than the click itself. It does not explain device prerequisites, backend behavior, or what the interaction does to existing UI state, so it only modestly exceeds the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the purpose and followed by a relevant safety caution. No filler, though the second sentence is advisory rather than definitional.

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

Completeness3/5

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

An output schema and rich annotations exist, so the description need not explain returns or safety flags. Still, an agent calling this tool must know how the 'button' enum interacts with a right-click-specific tool and when 'backend' matters, neither of which is addressed. Adequate but with a meaningful gap for a 5-parameter destructive interaction 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%, so all five parameters are documented, and the baseline is 3. The phrase 'verified coordinate' adds a small hint that x/y should come from a prior inspection, but the description does not address the device requirement, backend choice, or the ambiguous interaction between this tool and the redundant 'button' parameter.

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?

The description states a specific verb and resource: 'open a native context menu by right-clicking'. An agent can tell this is a right-click gesture rather than a general click. However, it does not distinguish itself from the sibling pointer_click, which exposes a 'button' enum including 'right' and could plausibly do the same thing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to open a native context menu' gives a clear triggering condition, and the instruction to inspect the target and resulting menu supplies workflow context. It stops short of naming alternatives (e.g., pointer_click with button=right) or stating when not to use it, so it is not a 5.

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

pointer_upPointer UpA
Destructive
Inspect

Use this when the user asks to release a mouse button after pointer_down during a native desktop drag or selection gesture on a paired computer. Releasing the button can complete a drag, click, selection or application action; it does not press the button.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
buttonNoPointer button to use for click/down/up or drag gestures.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoPointer action structured result for pointer. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds real operational context beyond that: the call is a completion point ('can complete a drag, click, selection or application action') and must follow a pointer_down, which explains why it is non-idempotent and consequential. It does not mention auth/device-pairing requirements or backend consent, which is a minor gap.

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 tight clauses, front-loaded with the usage trigger, then the outcome, then the negative disambiguation. No filler and every phrase carries information.

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?

An output schema exists so return values need not be described, and the usage trigger plus consequence are supplied. The only meaningful omission is the pairing contract with pointer_down's button/coordinates, which would make this fully self-sufficient for correct invocation.

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%, so the schema already documents x, y, button, device and backend, including enum values. The description adds nothing about parameter behavior such as whether button must match the pointer_down button or whether x/y must match the press point, which is the one piece of semantics an agent would actually need. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('release a mouse button') and scopes it to a native desktop drag/selection gesture on a paired computer. It explicitly disambiguates from the sibling pointer_down with 'it does not press the button', so an agent can separate the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this when the user asks to release a mouse button after pointer_down' gives a clear triggering condition and implies the required ordering relative to pointer_down. It does not state failure modes (e.g. calling it without a preceding pointer_down) or contrast with pointer_click/drag_drop, so it stops short of full when/when-not coverage.

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

power_lockPower LockAInspect

Use this to lock the paired computer screen while keeping the operating system and active applications running. Unlocking requires the device owner credentials.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
delay_secondsNoOptional delay in seconds, maximum 90. Longer delays are rejected because hosted calls expire before they can complete safely.

Output Schema

NameRequiredDescription
dataNoPower action structured result for power_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare the generic safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds real behavioral context beyond them: the session and running apps survive, and re-entry is gated on owner credentials. It does not say whether an already-locked screen errors or what the response reports, but the credential gate is the meaningful disclosure.

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 sentences, no waste, with the primary behavior front-loaded and the credential consequence second. Nothing is repeated from the schema or annotations.

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?

Output schema exists and annotations cover safety, so the description need not explain returns. It covers the effect on the machine and the unlock prerequisite. A note about interaction with power_sleep or the delayed-execution case would close the remaining gap, but nothing required to call it correctly is missing.

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%, so both 'device' and 'delay_seconds' (including the 90-second cap and the reason for it) are already fully documented. The description adds nothing about either parameter, so the baseline 3 applies.

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?

States a specific verb and target ('lock the paired computer screen') and clarifies the scope by contrasting it with harsher power actions: the OS and active applications keep running. An agent can distinguish it from power_sleep/power_shutdown without opening the schema, though it never names those siblings explicitly.

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?

The opening 'Use this to lock...' plus the note that unlocking requires device owner credentials gives implied usage and a prerequisite. There is no explicit when-not guidance or named alternative (sleep/shutdown/restart), leaving the agent to infer the selection rule.

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

power_restartPower RestartA
Destructive
Inspect

Use this to reboot the paired computer when explicitly authorized. This ends active sessions and may interrupt unsaved work or remote access; verify necessity first.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
delay_secondsNoOptional delay in seconds, maximum 90. Longer delays are rejected because hosted calls expire before they can complete safely.

Output Schema

NameRequiredDescription
dataNoPower action structured result for power_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's job is to add context — which it does, disclosing that active sessions end and unsaved work or remote access may be interrupted. That is real operational consequence beyond the hints, though it does not mention reconnect behavior or irreversibility of lost work.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the authorization gate and the destructive consequence front-loaded rather than buried. The leading 'Use this to' is minor filler but nothing is wasted.

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?

For a 2-parameter tool with an output schema, full schema coverage, and rich annotations, the description covers the essential missing piece — blast radius and the authorization requirement. Only a post-reboot reconnection note would fully close it.

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 coverage is 100% and both parameters are documented in-schema, including the 90-second cap and its rationale. The description adds nothing about `device` or `delay_seconds`, so the baseline 3 applies.

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?

States a specific verb and resource ('reboot the paired computer'), which distinguishes it from the power_shutdown, power_sleep, and power_lock siblings by the verb alone. It does not name those siblings explicitly, so an agent must infer the boundary from 'reboot' rather than being told.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to reboot ... when explicitly authorized' plus 'verify necessity first' gives clear conditions for invocation and a prerequisite gate. It stops short of naming alternatives (e.g. use power_shutdown to power off entirely) or explaining when a reboot is preferable to a service_restart.

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

power_shutdownPower ShutdownA
Destructive
Inspect

Use this to shut down the paired computer when explicitly authorized. This ends running applications and remote connectivity; the device may require local power-on to reconnect.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
delay_secondsNoOptional delay in seconds, maximum 90. Longer delays are rejected because hosted calls expire before they can complete safely.

Output Schema

NameRequiredDescription
dataNoPower action structured result for power_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, but the description adds consequences that annotations cannot convey: running applications are terminated, remote connectivity is severed, and local physical power-on may be required to reconnect. That last point is critical decision-making information for an agent acting remotely and is not derivable from any structured field.

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 sentences, front-loaded with the authorization precondition, then the irreversible consequence. Every clause earns its place with no filler.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and the schema fully covers both parameters. What remains for the description — authorization requirement and the risk of losing remote access permanently — is stated explicitly.

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 coverage is 100% and both parameters (device, delay_seconds with its 90s cap and rationale) are fully documented inline, so the description carries no additional burden. It adds no parameter meaning of its own, making the baseline 3 correct.

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?

States a specific verb and resource ("shut down the paired computer"), which is clearly distinct from the restart/sleep/lock power siblings by the verb alone. It does not explicitly name an alternative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"when explicitly authorized" gives a clear gating precondition for invoking a destructive action, which is exactly the context an agent needs. It never contrasts with power_restart, power_sleep, or power_lock, so the when-not guidance is absent.

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

power_sleepPower SleepA
Destructive
Inspect

Use this to put the paired computer into system sleep mode when explicitly requested. Remote connectivity and active jobs may become unavailable until the device wakes.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
delay_secondsNoOptional delay in seconds, maximum 90. Longer delays are rejected because hosted calls expire before they can complete safely.

Output Schema

NameRequiredDescription
dataNoPower action structured result for power_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, so the description's job is to add consequence detail, which it does: remote connectivity and active jobs become unavailable until the device wakes. This is real, decision-relevant behavior not captured by the annotations. It stops short of stating whether unsaved work is at risk or how to wake the device.

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 sentences, no filler, with the action front-loaded and the caveat following. Every clause earns its place.

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?

An output schema exists, so return values need not be explained, and the description supplies the key side-effect warning for a destructive operation. The remaining gap is routing among sibling power tools, which is the main thing an agent still has to work out.

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%, documenting the required device id and the 0-90 second delay bound, so the schema carries the parameter burden. The description adds nothing about either parameter, which is acceptable at full coverage but is baseline rather than value-add.

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?

States a specific verb and resource ('put the paired computer into system sleep mode'), which is unambiguous. It does not differentiate from the closely related siblings power_shutdown, power_lock, or power_restart, so an agent must infer which power tool applies.

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?

'when explicitly requested' implies a usage precondition, but there is no explicit guidance on when to prefer sleep over lock, shutdown, or restart, and no exclusion rules. The usage context is present but thin for a family of five similar power tools.

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

read_binaryRead binary chunkA
Read-onlyIdempotent
Inspect

Use this when the user needs a non-text file transferred or inspected byte for byte as base64 chunks. For a normal image that should be shown or visually inspected, use read_image instead.

NameRequiredDescriptionDefault
pathYesAbsolute path of the file to read.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
length_bytesNoChunk size in bytes. Default and maximum 1048576 (1 MiB).
offset_bytesNoByte offset to start at. Default 0.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds the base64-chunk output format, which is useful behavioral context beyond annotations. No contradiction with annotations.

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 sentences with the core purpose front-loaded and the alternative clearly stated second. No wasted words, every sentence earns its place.

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?

Output schema exists and annotations cover safety, so the description only needs purpose and usage guidance, which it provides. It omits chunking details (offset, length) but those are in the schema, so the description is sufficiently complete for an agent to call correctly.

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 covers all 4 parameters with 100% coverage, so the description does not need to restate them. It adds no parameter-specific meaning beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb (read/transfer/inspect) and resource (non-text file) with output format (base64 chunks). Explicitly differentiates from read_image, a sibling tool, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use read_image for normal images and implies use for non-text files. Provides an alternative and an exclusion, so the agent knows exactly when to choose this tool over the sibling.

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

read_documentRead documentA
Read-onlyIdempotent
Inspect

Use this when the user needs structured document content from a PDF, DOCX, XLSX, CSV, JSON or XML file on a paired computer. Returns extracted content and bounded metadata from the document path.

NameRequiredDescriptionDefault
pathYesDocument path.
sheetNoWorksheet name for XLSX.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
max_cellsNoMaximum number of spreadsheet cells to return.

Output Schema

NameRequiredDescription
dataNoRead document structured result for read_document. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the full safety profile (readOnlyHint, idempotentHint, non-destructive), so the burden is light. The description adds only 'extracted content and bounded metadata' and the paired-computer scope, without disclosing truncation behavior, size limits, or auth/prerequisite needs for the device. Useful but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the use trigger and format list, no filler. 'Bounded metadata' is slightly jargon-y but the whole thing is tight and earns its space.

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 an output schema present, return values need not be explained, and the annotations carry the safety profile; the description covers format coverage, source, and a use trigger. Only the sibling-routing gap and device prerequisites keep it from being fully complete.

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%, so the schema itself documents path, sheet, device, and max_cells. The description only echoes 'document path' and adds no syntax, format, or range meaning beyond the schema, so the baseline 3 applies.

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?

The description states a specific verb ('read') and resource ('document') and enumerates the supported formats (PDF, DOCX, XLSX, CSV, JSON, XML) plus the source ('paired computer'). It stops short of distinguishing itself from close siblings like read_file, read_files, or pdf_extract_pages, so an agent still has to infer which reader to pick.

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?

It gives a clear use condition ('when the user needs structured document content'), which is more than implied usage. But it names no alternatives and no exclusions, so the agent gets no guidance on when to prefer read_file or a pdf_* sibling instead.

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

read_fileRead fileA
Read-onlyIdempotent
Inspect

Use this when the task calls for plain text files on a paired computer: source code, configuration, Markdown, logs, scripts, or other line-oriented text. Use read_document instead for PDF, DOCX, XLSX and other structured document content. read_file keeps legacy PDF/DOCX extraction for compatibility but should not be the model’s first choice for those formats.

NameRequiredDescriptionDefault
pathYesAbsolute path of the file to read. Relative paths resolve against the runtime working directory.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
lengthNoMaximum number of lines to return.
offsetNoZero-based first line to read. Negative values read the last N lines.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description's burden is lower. It adds meaningful behavioral context by disclosing legacy PDF/DOCX extraction compatibility and counseling against it, which is not captured by annotations.

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?

Three sentences with each earning its place: the primary use case, the alternative for structured documents, and a compatibility caveat. No redundant or filler content is present.

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

Completeness5/5

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

Given a complete parameter schema, annotations, and an output schema, the description fully covers what an agent needs to decide when to call this tool and what to expect. It addresses format scope, exclusions, and legacy behavior without over-explaining.

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?

Input schema description coverage is 100%, so parameters are fully documented there. The description does not add semantic detail about path/device/length/offset beyond the schema, making the baseline score of 3 appropriate.

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

Purpose5/5

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

Description clearly identifies the tool as reading plain text files on a paired computer and enumerates concrete example formats (source code, config, Markdown, logs, scripts). It explicitly contrasts with read_document for structured document formats, which distinguishes scope even if read_document is not among the listed siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance for plain text files and directs model to read_document for PDF/DOCX/XLSX. Also warns that legacy PDF/DOCX extraction is supported but not the first choice, leaving no ambiguity about selection.

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

read_filesRead files by globA
Read-onlyIdempotent
Inspect

Use this when the exact file list is not already known and the user wants the contents of every file matching one glob under a directory. Use start_search instead to find filenames or text matches without reading every matched file. If exact paths are already known, use read_multiple_files; for one known path use read_file.

NameRequiredDescriptionDefault
pathNoAbsolute directory (or single file) to start from.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
patternNoGlob matched against the relative path and the file name, such as "src/**/*.ts" or "*.md". Default **/* .
max_filesNoStop after this many files. Default 100, maximum 500.
include_ignoredNoAlso descend into .git and node_modules. Default false.
max_lines_per_fileNoLines kept per file. Default 2000.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the readOnlyHint/idempotentHint annotations, the description clarifies that this tool returns file contents rather than just names and that it reads every matching file. It does not repeat schema details like max_files or line truncation, which are already documented in the parameter descriptions.

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?

Three sentences, all informative and without filler. The core usage condition and behavior are front-loaded, and the alternative-tool guidance is compactly placed at the end.

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

Completeness5/5

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

Given the complete parameter schema, the output schema, and read-only/idempotent annotations, the description supplies everything needed to select and invoke the tool correctly. Missing details like default glob behavior and file-count limits are already present in the schema.

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%, so the parameter defaults and formats are already fully documented. The description mentions glob-based matching and directory scope but adds little semantic meaning beyond the schema.

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

Purpose5/5

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

Description uses a specific verb and resource: it reads contents of files matching a glob under a directory. It also names the sibling alternatives it is not, making its role unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('exact file list is not already known') and when to use alternatives: start_search for filename/text matches, read_multiple_files for known paths, read_file for a single known path. This fully routes selection.

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

read_imageRead imageA
Read-onlyIdempotent
Inspect

Use this when the user wants to inspect or show an image that lives on a paired computer, such as a screenshot, photo, or diagram. It returns native MCP image content; do not use read_binary merely to display an image.

NameRequiredDescriptionDefault
pathYesAbsolute path of the image file.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the return is native MCP image content, which matters for downstream handling. It does not mention failure modes such as missing files or unsupported formats.

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 sentences, zero filler, with the usage condition front-loaded before the alternative-tool warning. Every clause carries information.

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?

An output schema exists, so return values need not be detailed, and the description still adds the key fact that the output is image content. Combined with full parameter documentation and safety annotations, an agent has what it needs; only edge-case behavior (large images, errors) is unstated.

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% and both parameters (path, device) are fully documented in the schema, including where the device id comes from. The description adds no format, path-resolution, or device-binding detail beyond what the schema states, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (read/inspect/show) and resource (image on a paired computer) and gives concrete examples (screenshot, photo, diagram). It explicitly distinguishes itself from read_binary, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear triggering condition ('when the user wants to inspect or show an image') and an explicit negative routing rule ('do not use read_binary merely to display an image'). It does not address other plausible alternatives in this large sibling set (take_screenshot, screenshot_region, read_document), leaving some selection ambiguity.

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

read_multiple_filesRead multiple filesA
Read-onlyIdempotent
Inspect

Use this when the user names two or more exact file paths to read in one call. Do not use it for glob discovery: use read_files instead. For one known path use read_file.

NameRequiredDescriptionDefault
pathsYesAbsolute paths of the files to read, at most 50 per call.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already establish that this is read-only, idempotent, and non-destructive, so the description does not need to repeat those facts. The description adds the exact-path constraint and sibling routing, but does not disclose additional runtime behavior such as encoding, error handling, or output details. With annotations covering the safety profile, this is adequate but not rich.

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 crisp sentences with no filler. The primary usage rule is front-loaded, and the exclusion/alternative guidance follows immediately. Every sentence earns its place.

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

Completeness5/5

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

For a straightforward multi-file read tool with full schema coverage, an output schema present, and safety annotations already provided, the description is complete enough for correct invocation. It tells the agent when to call it, what parameters are required, and how it differs from related tools.

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%, and the schema already documents that paths are absolute, max 50 per call, and that device is required. The description slightly reinforces the 'exact path' semantics, but this is mostly a usage guideline rather than new parameter meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('read') and resource ('multiple file paths'), with the exact condition 'two or more exact file paths'. The description explicitly distinguishes itself from read_files and read_file, so an agent can select it correctly without inspecting sibling schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives direct when-to-use guidance: use for two or more exact file paths. Also names alternatives for glob discovery (read_files) and single known paths (read_file), making the routing decision explicit.

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

read_process_outputRead process outputA
Read-only
Inspect

Use this when a process started earlier has more output to show and you do not want to wait for a pattern.

NameRequiredDescriptionDefault
pidYesSession pid returned by start_process.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
lengthNoMaximum number of lines to return per call (default 200). Without offset, unreturned lines remain available; use hasMore to fetch the next page.
offsetNoZero-based line number to start from, counted across everything the session has produced; a negative value reads the last N lines. Omit for new output. Lines evicted by the buffer cap are no longer available.
timeout_msNoWith no offset, wait up to this many milliseconds for output/exit; 0 returns immediately (default). Use 1000–2000 to avoid repeated remote polls when output is expected.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds some behavioral context by indicating this is for non-pattern-wait polling, but it does not disclose whether reads consume output, how buffer eviction affects availability, or how repeated calls interact with the non-idempotent 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?

The description is a single front-loaded sentence that begins with the use case and contains no wasted text. It is appropriately sized for a tool whose structured fields carry the remaining detail.

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?

Given the full schema coverage, existing annotations, and an output schema, the description is sufficient for an agent to identify the tool. It could be stronger with an explicit reference to wait_for_process_output as the alternative, but nothing essential is missing.

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%, so pid, device, length, offset, and timeout_ms are already well documented in the schema. The description adds no parameter-level meaning beyond that, making the baseline 3 appropriate.

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?

The description clearly frames the tool as fetching additional output from a previously started process, and it distinguishes that use from waiting on a pattern. It stops short of explicitly naming the resource as 'process output', but the purpose is still clear in context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a specific condition for use: a process started earlier has more output to show and you do not want to wait for a pattern. That implicitly contrasts with wait_for_process_output, though it does not explicitly name the sibling tool or describe when reading without more output is appropriate.

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

record_screenRecord screenA
Destructive
Inspect

Use this when the task calls for a short bounded screen recording when motion/timing is necessary to diagnose a UI issue. Prefer screenshot_region for static visual verification because it is cheaper and easier to inspect.

NameRequiredDescriptionDefault
fpsNo1..60.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
destinationNoPermitted output path. If an extension is supplied, use .webm for native GNOME Wayland recording and .mp4 for the other recorder backends.
duration_secondsNo1..120 seconds.

Output Schema

NameRequiredDescription
dataNoRecord screen structured result for record_screen. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, and the description usefully adds that recordings should be short and bounded. However, it never explains the destructive dimension the annotation flags -- e.g. whether writing to an existing destination overwrites it -- nor any permission requirements. With annotations carrying the safety profile, this is adequate but not rich.

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 sentences, zero waste, and the primary use condition is front-loaded ahead of the cheaper alternative. Nothing is repeated from the schema or annotations.

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?

Output schema exists so return values need not be described, and the schema covers all four parameters. The one remaining gap is that a destructiveHint=true capture tool never tells the agent what happens to an existing file at destination, which matters for safe invocation.

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 fps, duration_seconds, device and destination all documented including format guidance (.webm vs .mp4 per backend). The description adds no parameter-level meaning, so the baseline 3 applies.

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

Purpose5/5

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

The description names a specific action (short bounded screen recording) and the exact condition that motivates it (motion/timing needed to diagnose a UI issue). It clearly separates itself from the static-capture siblings take_screenshot and screenshot_region.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-to-use rule plus an explicit alternative with a reason: prefer screenshot_region for static visual verification because it is cheaper and easier to inspect. That is exactly the routing guidance an agent needs.

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

remove_deviceRemove paired computerA
Destructive
Inspect

Use this when the user needs to permanently remove an existing paired computer only when the user explicitly requests that irreversible action. Revokes the pairing; requires its device id.

NameRequiredDescriptionDefault
deviceYesPaired computer id returned by list_devices.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is partly covered. The description adds material context beyond that: the effect ('Revokes the pairing'), the irreversibility, and the requirement of explicit user intent, which no annotation conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted preamble; the effect is stated before the precondition. The 'permanently remove ... only when the user explicitly requests that irreversible action' phrasing is somewhat redundant but still earns its place.

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?

Purpose, effect, and precondition are all present, and return values are covered by the existing output schema, so the description need not explain them. Combined with destructive/idempotency annotations, an agent has what it needs to call this safely.

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?

Only one parameter and schema description coverage is 100%, where the schema already states 'Paired computer id returned by list_devices'. The description's 'requires its device id' restates this without adding format or sourcing detail, so the baseline of 3 applies.

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

Purpose5/5

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

The description names a specific verb and resource ('permanently remove an existing paired computer') and scopes it with 'Revokes the pairing', which clearly separates it from sibling mutations like disable_device or delete_path. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit invocation condition ('only when the user explicitly requests that irreversible action'), which is strong guidance for a destructive tool. It does not name a softer alternative such as disable_device, so the when-to-use is clear but the alternative routing is left implicit.

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

rename_deviceRename a computerA
Idempotent
Inspect

Use this when the user wants to change the account-visible label of one paired computer. Do not use set_config_value for renaming: that device tool changes local runtime preferences instead. Access roots, command guardrails and resource limits stay on the computer itself.

NameRequiredDescriptionDefault
valueYesThe new value.
deviceYesDevice id from list_devices.
config_keyYesThe setting to change. Supported: device_name.

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, so the description doesn't need to restate those. It adds useful context beyond annotations: the rename only affects the account-visible label, and access roots, command guardrails, and resource limits stay on the computer itself. This clarifies the scope of the operation and what is not changed, which is valuable behavioral context.

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?

Three sentences, each earning its place: the first states the purpose and scope, the second routes away from a confusingly similar sibling, the third clarifies what is not affected. The key information is front-loaded and there is zero filler.

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?

For a simple 3-parameter tool with full schema coverage, an output schema, and annotations covering safety/idempotency, the description is nearly complete. It could arguably mention that the device must come from list_devices, but the schema already says that. The only minor gap is that it doesn't describe the return value, but the output schema exists, so the description needn't explain that.

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%, so the schema already documents all three parameters. The description adds the semantic context that 'value' is the new label and 'config_key' is supported as 'device_name', but it doesn't go beyond the schema's own descriptions. Baseline 3 is appropriate when the schema carries the parameter documentation burden.

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

Purpose5/5

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

The description states a specific verb ('change'), a specific resource ('account-visible label of one paired computer'), and explicitly distinguishes it from the sibling set_config_value. This clearly differentiates it from the many sibling tools and leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it ('when the user wants to change the account-visible label of one paired computer') and explicitly says when not to use it ('Do not use set_config_value for renaming'), naming the alternative and its different purpose. This is exactly the kind of routing guidance an agent needs.

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

replace_in_filesReplace in filesA
Destructive
Inspect

Use this when the same text or regular-expression replacement should be searched and applied across multiple files under a path, such as a rename or version bump. For one known block use edit_block; for one complete known file use write_file.

NameRequiredDescriptionDefault
pathYesAbsolute path of a file or directory to search.
regexNoTreat pattern as a regular expression. Default false (plain text).
deviceYesReMCP device id returned by list_devices. Required for every device operation.
dry_runNoOnly report the files that would change. Default false.
patternYesText or regular expression to find.
maxFilesNoStop after this many changed files. Default 100, maximum 500.
filePatternNoOptional glob limiting which file names are changed, such as "*.ts".
replacementYesReplacement text. In regex mode, $1 and friends refer to capture groups.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered. The description adds useful behavioral context by clarifying that the operation applies across multiple files and supports both plain text and regular expressions, which goes beyond what the annotations alone convey.

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 sentences, both purposeful, with the primary use case front-loaded and exclusions clearly stated. No filler or redundant restatement of the tool name or schema.

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

Completeness5/5

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

For a destructive multi-file operation with a rich input schema, an output schema, and safety annotations, the description covers the core decision the agent needs: when to pick this tool over its siblings. Nothing essential for correct invocation is missing.

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%, so the schema fully documents all 8 parameters including regex, dry_run, and maxFiles. The description provides high-level context but no additional parameter-level semantics beyond what the schema already supplies, so a baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific operation: search and apply a text or regex replacement across multiple files under a path, with concrete examples like rename or version bump. It also distinguishes itself from siblings by naming edit_block and write_file as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description opens with 'Use this when...' and gives explicit conditions for use: same replacement across multiple files. It also states when not to use it: one known block should use edit_block, and one complete known file should use write_file.

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

replace_linesReplace linesA
Destructive
Inspect

Use this when the intended edit target is a specific 1-based line range in one file, optionally as a dry run. Use edit_block for matching an exact text block and write_file for replacing the complete file.

NameRequiredDescriptionDefault
pathYesAbsolute path of the file to edit.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
contentYesReplacement text; an empty string deletes the range.
dry_runNoReturn the diff without changing the file. Default false.
end_lineYesLast line to replace, 1-based and inclusive.
start_lineYesFirst line to replace, 1-based and inclusive.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds the dry-run option and the line-range scoping as behavioral context beyond the annotations. It does not contradict the annotations.

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 sentences with the core use case front-loaded and alternatives stated directly. Every word earns its place; no filler or redundancy.

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

Completeness5/5

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

For a simple edit tool with full schema coverage and an output schema, the description includes usage guidance, alternative routing, and dry-run behavior. Nothing essential is missing for an agent to invoke it correctly.

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?

The schema covers all six parameters with clear descriptions, including dry_run, empty-string deletion, and inclusive 1-based line numbers. The description adds no parameter-level detail beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb 'replace' and a precise target: a 1-based line range in a single file. Names sibling tools edit_block and write_file to disambiguate. Clear differentiation from alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides the condition for use ('when the intended edit target is a specific 1-based line range') and directs to edit_block for text-block matching and write_file for full-file replacement. No ambiguity about when to select it.

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

reveal_pathReveal pathAInspect

Use this when the user needs to reveal a permitted local file or directory in Finder/Explorer/file manager without opening the document itself.

NameRequiredDescriptionDefault
pathYesFile or directory to reveal.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoArray/scalar payload wrapper used when the natural result is not an object.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior3/5

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

Annotations already mark the operation as non-read-only, non-destructive, and not idempotent; the description adds the useful behavioral detail that the document itself is not opened, just surfaced in the file manager. However, it does not describe side effects such as launching a file manager UI or what happens for invalid paths.

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?

A single sentence that is front-loaded with the trigger condition and states both the action and its limiting behavior. There is no filler or redundant restating of the schema.

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?

For a simple two-parameter tool with a present output schema and fully documented parameters, the description covers the key intent and the important 'does not open the document' distinction. It could mention error cases or permission requirements, but the core invocation context is complete.

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 documentation covers 100% of parameters, so the schema carries the semantic weight. The description reinforces that the path is a permitted local file or directory but does not add meaningful format or behavior details beyond the schema.

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

Purpose5/5

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

Description uses a specific verb ('reveal') with a specific resource ('permitted local file or directory') and names the target context (Finder/Explorer/file manager). The phrase 'without opening the document itself' clearly differentiates this from the sibling open_path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: when the user needs to reveal a file or directory in a file manager without opening it. It does not name alternatives or give exclusions, so it is clear context without full when-not-to-use guidance.

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

screenshot_regionScreenshot regionA
Read-onlyIdempotent
Inspect

Use this when static pixels are required for visual verification but only one window, monitor or rectangle matters. Prefer it over take_screenshot for a full desktop and over record_screen when motion/timing is not required; use ui_snapshot/browser_snapshot first when semantic structure is sufficient.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
appNoApplication/process name or substring used to select the target.
pidNoOwning process id used to scope the target.
titleNoWindow/page title substring used to select the target.
widthNoWidth in pixels.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
heightNoHeight in pixels.
monitorNoMonitor name substring, or "primary".
paddingNoOptional pixels added around the resolved rectangle; 0..200.
window_idNoWindow id returned by list_windows.
monitor_indexNoZero-based monitor index from display_inventory.

Output Schema

NameRequiredDescription
dataNoScreenshot region structured result for screenshot_region. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the static-vs-motion tradeoff and the guidance to prefer semantic snapshots, which shapes correct tool selection. It does not mention capture latency or fidelity limits, so not a full 5.

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 sentences, front-loaded with the triggering condition, then the sibling comparisons. Every clause earns its place and nothing is redundant with the schema or annotations.

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 an output schema present, return values need no explanation, and the description fully covers selection guidance. For a 12-parameter tool with a complex anyOf target-selection structure, it could have briefly clarified the targeting alternatives, but the schema handles that adequately.

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%, so the baseline is 3. The description says a single window, monitor or rectangle is targeted but does not explain the anyOf selection modes (coords vs window_id vs pid vs app vs title vs monitor/monitor_index) or how they interact, leaving that entirely to the schema.

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

Purpose5/5

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

The description states a specific capability (static pixels for visual verification) and scopes it to a single window, monitor or rectangle, so the agent immediately knows the resource and granularity. It explicitly contrasts itself with take_screenshot, record_screen, ui_snapshot and browser_snapshot, so it is distinguishable from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use (static pixels needed, single region) and when-not (full desktop, motion/timing required), plus the alternative to prefer first for semantic structure. This is a full routing rule set rather than vague context.

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

scrollScrollAInspect

Use this when the task calls for native wheel scrolling of a desktop region or semantic UI target. Prefer browser_action scroll_into_view for a known web element and ui_action scroll_into_view for a known accessible desktop element.

NameRequiredDescriptionDefault
xNoVirtual-desktop X coordinate in pixels.
yNoVirtual-desktop Y coordinate in pixels.
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
deltaNoAlias for delta_y.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.
delta_xNoHorizontal delta; positive means right.
delta_yNoVertical delta; positive means down.
directionNoHuman-readable scroll direction used with wheel_times instead of explicit deltas.
wheel_timesNoNumber of 120-unit wheel steps when direction is used; 1..50.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoScroll structured result for scroll. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.9/5.0
Behavior2/5

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

Annotations provide no safety hints (readOnlyHint false, destructiveHint false), so the description must disclose behavior. It only says 'native wheel scrolling' without explaining side effects, permissions, prerequisites (e.g., element visibility), or consequences of scrolling. There is no mention of what happens on failure or whether it mutates UI state beyond the scroll. For a tool with no annotation support, this is a significant gap.

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 sentences with zero filler. The purpose is front-loaded, and the alternative routing follows immediately. Every word earns its place, making it easy to scan and act upon.

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

Completeness3/5

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

Given the tool's complexity (17 parameters, output schema present), the description is minimal. It clarifies the core purpose and routing but offers no guidance on selecting among the many coordinate, delta, direction, and targeting parameters. Schema coverage and output schema reduce the burden, but the description still leaves an agent without advice on typical usage patterns. Adequate but not complete for a tool this rich.

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%, so the baseline is 3. The description adds no parameter-specific guidance beyond what the schema already provides. It does not explain when to use delta vs direction, or the role of device, which are covered in schema but not reinforced. Thus it adds no additional meaning.

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

Purpose5/5

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

The description states a specific verb and resource: 'native wheel scrolling of a desktop region or semantic UI target.' It clearly differentiates from siblings by naming browser_action scroll_into_view and ui_action scroll_into_view as the preferred alternatives for known elements. This gives an agent a precise understanding of when to invoke this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent when NOT to use this tool and names the alternatives: 'Prefer browser_action scroll_into_view for a known web element and ui_action scroll_into_view for a known accessible desktop element.' This is a clear routing rule that leaves no ambiguity about choice among siblings.

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

service_listService ListA
Read-onlyIdempotent
Inspect

Use this to list installed OS services on a paired computer for troubleshooting. Returns a local service inventory; it does not start, stop or modify services.

NameRequiredDescriptionDefault
nameNoService/unit/launchd label.
scopeNoScope of the operation; choose user scope unless the task explicitly requires a system service.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoService control structured result for service. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds that the result is a *local* inventory scoped to a paired computer, which is useful, but 'does not start, stop or modify' largely restates the annotations and nothing is said about result size, filtering, or pairing/auth requirements.

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 with zero filler; the action and target are front-loaded and the non-mutating caveat follows immediately after.

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?

An output schema exists, so return values need not be explained, and annotations plus schema cover safety and parameters. What remains unaddressed — whether the inventory is paginated or how a large service list is returned — is minor for a read-only listing 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%, so name, scope and device are already documented, including the enum guidance for scope. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the work.

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

Purpose5/5

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

States a specific verb and resource ('list installed OS services') plus the target context ('on a paired computer'), and explicitly excludes the mutation siblings (start/stop/modify) so it reads distinctly from service_start, service_stop and service_restart. An agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a use context ('for troubleshooting') and an explicit when-not ('it does not start, stop or modify services'), which routes mutation work to the service_* siblings. It stops short of naming those siblings directly, so it is clear rather than exhaustive.

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

service_restartService RestartA
Destructive
Inspect

Use this to restart one specifically named OS service on a paired computer when requested. This interrupts the service and can disrupt active users; check scope and recovery expectations first.

NameRequiredDescriptionDefault
nameYesService/unit/launchd label.
scopeNoScope of the operation; choose user scope unless the task explicitly requires a system service.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoService control structured result for service. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and non-idempotency, so the risk profile is partly structured. The description adds real context beyond that: restarting interrupts the service and can disrupt active users, plus a recovery-expectations caveat. It stops short of saying whether dependent services or sessions are affected or what happens to an unknown service name.

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 sentences, front-loaded with the action and constraint, followed by the impact warning. Nothing is redundant or padded.

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?

An output schema exists, so return values need not be explained, and annotations plus the interruption warning adequately cover risk for a destructive operation. A minor gap remains around failure modes (service not found, permissions) and whether restart implies a stop-then-start ordering.

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%, and the schema already explains the device id, the service/unit/launchd label, and the user-vs-system scope choice with a default recommendation. The description only restates that exactly one named service and a paired computer are involved, adding no syntax or format detail beyond the schema.

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

Purpose5/5

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

States a specific verb ('restart'), a narrowly scoped resource ('one specifically named OS service'), and the target environment ('paired computer'). The verb alone distinguishes it from the sibling lifecycle tools service_start, service_stop, service_status, and service_list.

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 conditional trigger ('when requested') and a pre-flight check ('check scope and recovery expectations first'), which implies appropriate usage. However, it never names the adjacent alternatives (service_stop/service_start, or power_restart for the whole machine) or states when not to use this tool, leaving routing to inference.

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

service_startService StartA
Destructive
Inspect

Use this to start one specifically named OS service on a paired computer when requested. Starting may launch background processes and change system state; confirm name and scope first.

NameRequiredDescriptionDefault
nameYesService/unit/launchd label.
scopeNoScope of the operation; choose user scope unless the task explicitly requires a system service.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoService control structured result for service. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds real value beyond that by explaining why it's destructive — starting may launch background processes and mutate system state — and by telling the agent to verify name and scope before acting.

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 sentences: purpose first, then the risk warning and the confirming action. Every clause earns its place, with no repetition of the title or schema fields.

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

Completeness5/5

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

With an output schema present and annotations carrying the safety profile, the description only needs to supply intent and pre-call caution — which it does. An agent has everything required to call it correctly.

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 coverage is 100% and the schema itself documents name, scope (with the user-vs-system default rule), and device. The description only echoes the single-service and scope concepts, adding little syntax or format detail beyond what the schema provides. Baseline 3.

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?

States a specific verb+resource (start one named OS service) and scopes it to a paired computer. It's distinguishable from service_stop/service_restart/service_status by the verb, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear trigger ('when requested') and a prerequisite ('confirm name and scope first'). It stops short of routing the agent between start, restart, and stop, which is the one remaining ambiguity in a crowded service_* family.

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

service_statusService StatusA
Read-onlyIdempotent
Inspect

Use this to inspect the current state of one named OS service on a paired computer. It reads status only and is preferable to service_list when the service name is known.

NameRequiredDescriptionDefault
nameYesService/unit/launchd label.
scopeNoScope of the operation; choose user scope unless the task explicitly requires a system service.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoService control structured result for service. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false; the description's 'reads status only' reinforces but does not extend that. With annotations carrying the safety profile and an output schema present, this is solid but adds limited new behavioral context beyond confirming the read-only nature.

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 with zero filler; the primary action comes first and the sibling comparison follows. Nothing is wasted.

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?

Given an output schema exists, return values need not be explained, and the schema fully covers parameters. What remains unstated is only minor, e.g. behavior when the named service does not exist.

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 all three parameters (name, scope, device) documented, including an enum and usage guidance for scope. The description adds nothing about parameter syntax or format, which is acceptable given the schema's completeness.

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

Purpose5/5

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

States a specific verb (inspect), resource (one named OS service), and scope (on a paired computer). It also explicitly distinguishes itself from service_list, so the agent can choose between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear selection criteria: use when the service name is known, preferable to service_list in that case. It does not explicitly exclude the mutation siblings (service_start/stop/restart), though 'reads status only' strongly implies it.

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

service_stopService StopA
Destructive
Inspect

Use this to stop one specifically named OS service on a paired computer when requested. Stopping may interrupt users, applications or network availability; confirm the service name and impact first.

NameRequiredDescriptionDefault
nameYesService/unit/launchd label.
scopeNoScope of the operation; choose user scope unless the task explicitly requires a system service.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoService control structured result for service. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered. The description adds context that isn't in the annotations: stopping may interrupt users, applications, or network availability, and the service name plus impact should be confirmed beforehand.

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 sentences: the purpose and target first, the impact warning and confirmation requirement second. No filler, and the destructive caveat is placed where an agent will read it before choosing parameters.

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?

An output schema exists and annotations carry the mutation-safety signals, so the description only needs to cover intent and preconditions, which it does. A note on what happens when the service is already stopped, or on error/authorization behavior, would close the remaining gap.

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%, and the engine labels are already documented in the schema, including the guidance to choose user scope unless system is required. The description only restates that a single named service on a paired device is targeted, adding no syntax or format detail beyond the schema.

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?

States a specific verb and resource: stop exactly one named OS service on a paired computer, with the 'one service at a time' scope made explicit. The action verb cleanly distinguishes it from siblings like service_start, service_restart, service_list and service_status without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when requested') plus a precondition ('confirm the service name and impact first'), which is real routing guidance toward caution. It stops short of naming alternatives such as service_restart for cases where the user wants the service back up, so it's not a 5.

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

set_config_valueChange runtime settingA
Idempotent
Inspect

Use this when the person wants to change a local runtime preference on one computer: telemetry opt-out, read/buffer line limits, or result size. Do not use this for account-level computer administration; ping_device, rename_device, enable_device, disable_device and remove_device cover account-level computer administration. Access roots, blocked commands, shell/guardrails and the write limit stay local-only.

NameRequiredDescriptionDefault
keyYestelemetryEnabled (true/false), maxReadLines, maxBufferedLines or maxOutputBytes.
valueYesNew value: a boolean for telemetryEnabled, a number for the limits.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is largely covered. The description adds real behavioral context beyond that: the change is scoped to a single device, and a set of settings (access roots, blocked commands, shell/guardrails, write limit) is explicitly excluded. It stops short of describing permissions or exact reversibility, keeping it at a 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the 'Use this when' trigger, and the exclusion clause is placed after the positive trigger. Efficient overall, though the final sentence ('Access roots ... stay local-only') is loosely worded and could be read as either 'not editable here' or 'already local', costing some precision.

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 an output schema, full annotation coverage and 100% parameter coverage, little remains for the description to carry. It handles the routing and scope questions well; only the ambiguous final sentence leaves a small gap about exactly which settings this tool can change. Nearly complete for a 3-parameter mutation.

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 coverage is 100%, so the schema already documents key, value and device thoroughly. The description only restates the setting categories that map to the key parameter, adding little syntax or format detail beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('change a local runtime preference on one computer') and enumerates concrete setting categories (telemetry opt-out, read/buffer line limits, result size). It also names the sibling tools it is NOT (ping_device, rename_device, etc.), so the agent can separate it from account-level administration without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('person wants to change a local runtime preference on one computer'), explicit when-not-to-use ('Do not use this for account-level computer administration'), and names the five alternative tools for that case. No inference required.

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

set_permissionsSet permissionsA
Destructive
Inspect

Use this when the user asks to change mode bits or ownership of a file or directory, for example to make a script executable.

NameRequiredDescriptionDefault
gidNoOptional numeric group id to set as owner.
uidNoOptional numeric user id to set as owner.
modeYesOctal mode such as "755" or "0644".
pathYesAbsolute path whose permissions should change.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
recursiveNoApply to a directory and everything inside it. Default false.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutating and potentially destructive nature is known. The description adds only the domain of change (mode/ownership) and an example, without disclosing extra behavioral nuances like root privileges for chown, immediate effect, or lockout risk.

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?

A single, front-loaded sentence that captures the trigger condition, the intended operation, and a concrete example in roughly 20 words. Every phrase earns its place with no fluff.

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 100% schema coverage, an output schema, and annotations covering safety, the description fully handles tool selection context. It does not mention recursive behavior or uid/gid options, but those are fully specified in the schema, so the description need not repeat them.

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 coverage is 100% with each of the 6 parameters described (path, mode, device, recursive, uid, gid). The description just restates the general concept of changing mode/ownership, adding no syntax or format guidance beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource ('change mode bits or ownership of a file or directory') with a concrete illustrative example ('to make a script executable'). This clearly distinguishes it from sibling file operations like delete_path or write_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit trigger condition: 'Use this when the user asks to change mode bits or ownership.' It lacks explicit when-not-to-use phrasing, but no sibling tool handles permissions, so no exclusions are necessary.

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

start_processStart processA
Destructive
Inspect

Use this when the user asks to run a shell command, build, test suite, script, or terminal server that is not already covered by a narrower semantic tool. Prefer launch_app for GUI applications, service for service-manager operations, power_action for lock/sleep/restart/shutdown, network for routine network inspection/tests, event_log for OS logs, installed_apps for software inventory, environment for environment facts, and open_path/reveal_path for opening or revealing files.

NameRequiredDescriptionDefault
deviceYesReMCP device id returned by list_devices. Required for every device operation.
commandYesShell command to run.
timeout_msNoHow long to wait for initial output before returning, in milliseconds. Default 1000.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered by structured data. The description adds routing information only and says nothing about process lifecycle — whether the process keeps running after the call, that output must be retrieved via read_process_output/interact_with_process, or that kill_process/force_terminate are needed to stop it — which would have been genuinely useful context for a destructive, open-world tool.

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 sentences, no filler: the when-to-use condition is front-loaded and the alternative-tool list follows immediately. The length is justified because each named sibling represents a distinct routing decision.

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?

An output schema exists, so return values need not be explained, and routing across the large sibling set is thorough. The remaining gap is process lifecycle semantics (background execution, how long it lives, how to stop it), which the agent must infer from sibling names like wait_for_process_output and kill_process.

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%: device, command, and timeout_ms are each documented in the schema (including the 1000 ms default). The description adds no parameter-level detail such as command syntax, shell used, or working-directory behavior, so the baseline 3 applies.

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

Purpose5/5

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

The description states a specific action (run a shell command, build, test suite, script, or terminal server) and explicitly frames it as the fallback tool for command execution when no narrower semantic tool applies. An agent can distinguish it from all eight named alternatives without opening another schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-to-use condition plus a one-to-one routing map for every competing tool (launch_app for GUI, service for service manager, power_action for power, network, event_log, installed_apps, environment, open_path/reveal_path). Nothing is left to inference.

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

take_screenshotTake screenshotAInspect

Use this when the user needs pixels for the entire desktop. Prefer ui_snapshot or browser_snapshot for semantic inspection, and screenshot_region for one window, monitor, or rectangle.

NameRequiredDescriptionDefault
keepNoKeep the PNG on disk instead of deleting it after it is returned. Default false.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
directoryNoAbsolute directory to write the temporary PNG into. Defaults to the system temp directory.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false, idempotentHint=false). The description adds that the output is raster pixels rather than a semantic tree, which is meaningful context, but it says nothing about the temp-file lifecycle (the PNG is deleted after return unless keep is set) or that each call is a fresh non-idempotent capture. With annotations carrying safety, this is adequate but not rich.

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 sentences with zero filler, and the primary use case is front-loaded ahead of the alternative routing. Every clause earns its place.

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?

An output schema exists, so return values need not be explained, and the sibling routing handles the main ambiguity. The one gap is the side effect of writing and then deleting a temporary PNG, which is neither in the description nor obvious from the annotations.

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%, so device, keep, and directory are already fully documented in the schema. The description adds no parameter-level detail (e.g., what device ids look like or the interaction between keep and directory), so the baseline 3 applies.

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

Purpose5/5

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

States a specific action (capture pixels) and its exact scope (the entire desktop), which is more precise than the tool name alone. It explicitly distinguishes itself from three named siblings, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger condition (user needs pixels for the whole desktop) and names the alternatives for adjacent cases: ui_snapshot/browser_snapshot for semantic inspection, screenshot_region for a single window, monitor, or rectangle. Both when-to-use and when-not-to-use are covered.

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

type_textType textA
Destructive
Inspect

Use this when the task calls for reliable Unicode text entry into a native semantic target or focused native control. Prefer method=auto so Accessibility is used when the target supports verified semantic editing. For Chromium page DOM, use browser_action instead of forcing desktop accessibility text input; auto fails safely when a semantic element rejects the write rather than claiming an unverified paste. Use method=keys only for deliberate physical key-by-key input, and keyboard for shortcuts/navigation/control keys.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
textYesText to enter.
clearNoReplace existing text for semantic/window-scoped accessibility input, or clear it before keyboard/paste fallback.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
titleNoOptional target window title substring. With auto/accessibility + clear=true, a unique editable control may be updated semantically without compositor focus.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
methodNoDefault auto prefers verified accessibility editing and falls back to clipboard paste. keys sends physical key events and therefore follows the active keyboard layout.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.
delay_msNoPer-key delay for method=keys.
window_idNoOptional target window id. With auto/accessibility + clear=true, a unique editable control may be updated semantically without focus; keyboard/clipboard fallbacks verify focus before dispatch.
press_enterNoPress Enter after typing; physical Enter delivery requires verified window focus.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.
caret_positionNoWhere text insertion should occur when the semantic editor supports caret placement.

Output Schema

NameRequiredDescription
dataNoType text structured result for type_text. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses fallback behavior (accessibility → clipboard), failure semantics (auto fails safely instead of claiming an unverified paste), and the physical-key implication of method=keys. This goes beyond the annotations, which already mark the operation as destructive, without contradicting them.

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?

Four dense, purposeful sentences front-load the main use case and then method and sibling routing. There is no filler or repetition of schema content.

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 18 parameters, an existing output schema, and a fully described input schema, the description covers the critical route/branch decisions and failure modes. It does not walk through every parameter, but the schema and annotations fill those gaps; the only minor omission is not explicitly calling out the destructive clear behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds real meaning beyond the schema by explaining method selection rationale and when method=keys is appropriate, which helps an agent pick values correctly.

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

Purpose5/5

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

The description names a specific verb and resource ('reliable Unicode text entry into a native semantic target or focused native control') and distinguishes itself from browser_action and keyboard. This makes the tool's scope clear without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool, when to prefer method=auto, when to use browser_action for Chromium DOM instead, and when to fall back to method=keys or the keyboard sibling. This is concrete routing guidance rather than vague context.

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

ui_add_to_selectionUi Add To SelectionB
Destructive
Inspect

Use this to add an identified native UI item to the existing selection through Accessibility/UI Automation without clearing other selected items.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, non-idempotent, and openWorld, so the safety profile is covered elsewhere. The description adds the meaningful behavioral trait that existing selection is preserved, but says nothing about what happens on repeated calls, whether the container must already support multi-select, or what failure looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the key semantic (additive, non-clearing) placed at the end where it matters. No wasted clauses, though the mechanism mention ('Accessibility/UI Automation') is somewhat redundant given the tool family.

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

Completeness3/5

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

An output schema exists and annotations carry the risk profile, so the description need not explain returns. Still, for a destructive, non-idempotent multi-select mutation it omits preconditions and sibling disambiguation, leaving real gaps for an agent choosing between ui_add_to_selection and ui_select.

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 coverage is 100%, so all nine parameters including id, label, and device are documented in the schema itself. The description only echoes that the item must be 'identified' and adds no format, precedence, or matching guidance beyond the schema.

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?

States a specific verb (add) and resource (native UI item to the existing selection) and names the underlying mechanism (Accessibility/UI Automation). The phrase 'without clearing other selected items' implicitly distinguishes it from ui_select, though it never names that sibling outright.

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?

'Use this to...' gives an intended context, and the additive qualifier hints at when it beats a plain select. But no alternative is named explicitly (ui_select, computer_add_to_selection) and no precondition is given, such as the element needing to be selectable or already in a multi-select container.

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

ui_clickUi ClickA
Destructive
Inspect

Use this to activate an identified native Accessibility/UI Automation element, such as a button or menu item, after ui_snapshot or ui_find. Clicking can submit data or execute destructive application actions.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false; the description reinforces this with 'Clicking can submit data or execute destructive application actions,' adding concrete consequence context beyond the flag. It does not describe side effects on app state or failure behavior, so it falls short of a 5 given the annotation baseline.

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 sentences, front-loaded with the action and target, then the risk warning. No filler; every clause earns its place.

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?

Output schema exists and annotations cover the safety profile, and the description supplies the workflow prerequisite and consequence warning. Missing sibling differentiation (ui_invoke vs ui_click vs computer_click) is a minor gap for a 9-parameter tool with many overlapping siblings, so a 4 rather than 5.

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 all 9 parameters documented, so the schema carries parameter semantics. The description only implies that `id` comes from ui_snapshot/ui_find, adding no format or targeting guidance (e.g., id vs label vs name precedence) beyond the schema, so baseline 3 applies.

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?

States a specific verb ('activate'/'click') and resource ('native Accessibility/UI Automation element, such as a button or menu item'), which distinguishes it from ui_snapshot and ui_find. It does not explicitly differentiate from near-siblings like ui_invoke, ui_focus, or computer_click, so the purpose is clear but sibling disambiguation is incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'after ui_snapshot or ui_find' gives a clear prerequisite workflow and implied when-to-use. There's no explicit when-not-to-use or named alternative (e.g., use ui_invoke for pattern invocation, computer_click for coordinate clicks), which keeps it from a 5.

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

ui_collapseUi CollapseA
Destructive
Inspect

Use this to collapse an identified native Accessibility/UI Automation tree node or disclosure control. It changes visible UI state without deleting child items.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=true, idempotent=false, and openWorld=true. The description usefully clarifies that the tool changes visible UI state without deleting child items, which softens the destructiveHint concern, but it does not explain repeated-collapse behavior, prerequisites, or effects on selection/focus.

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?

The description is two front-loaded sentences with no wasted language. The first sentence states purpose and usage, and the second adds a key behavioral caveat.

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?

Given that annotations cover the safety profile, the schema fully documents parameters, and an output schema exists, the description is largely complete. It explains what the tool does and that it does not delete children, though it could mention prerequisites such as requiring an expanded node.

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%, so all nine parameters are already documented in the schema. The description adds no parameter-specific guidance beyond the schema and relies entirely on structured fields for id, app, pid, name, role, label, device, window_title, and automation_id.

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?

The description states a specific verb and resource: collapse an identified native Accessibility/UI Automation tree node or disclosure control. It is clear and concrete, though it does not name the sibling tool ui_expand or otherwise differentiate from nearby collapse/expand operations.

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?

The phrase 'Use this to collapse...' gives an implied usage context, and 'identified' signals that a target reference is required. However, it does not state when not to use it, nor does it route the agent to alternatives such as ui_expand or computer_collapse.

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

ui_expandUi ExpandA
Destructive
Inspect

Use this to expand an identified native Accessibility/UI Automation tree node or disclosure control to reveal its children. Inspect the current element first.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the full behavioral profile (destructiveHint=true, idempotentHint=false, openWorldHint=true), so the bar is lower. The description adds only that the result is revealing children, and does not explain why a merely expanding action is flagged destructive or what happens if the node is already expanded.

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 tight sentences; the action and its target are front-loaded and the prerequisite follows immediately. Nothing is wasted.

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 a full schema, output schema, and rich annotations, the description covers what is needed to call it correctly. Minor gaps remain around pre-expanded state behavior and locator precedence, but nothing blocking.

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 9 documented locator parameters (id, name, role, label, etc.), so the schema carries the semantics. The phrase 'an identified ... node' hints that identification is a prerequisite but adds no detail about which locator takes precedence.

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?

States a specific verb (expand) on a specific resource (native Accessibility/UI Automation tree node or disclosure control) plus the outcome (reveal its children). An agent can immediately distinguish it from ui_collapse, though the sibling is never named explicitly.

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?

'Use this to expand...' plus 'Inspect the current element first' gives a precondition but no explicit when-not guidance or named alternative (e.g. ui_collapse, or ui_find when the element isn't yet identified). Usage is implied rather than spelled out.

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

ui_findFind UI elementsA
Read-onlyIdempotent
Inspect

Use this when you need a small set of native UI elements by role/name/label/AutomationId after ui_snapshot. It requires an element criterion; use ui_snapshot, not an empty ui_find, to enumerate UI. Prefer returned id or compact label for subsequent ui_action; refresh only when the UI has changed.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
limitNoMaximum matches; default 20.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
refreshNoForce a fresh accessibility capture instead of the short-lived snapshot cache.
max_depthNoMaximum accessibility tree depth to traverse.
max_nodesNoMaximum accessibility nodes to inspect or return; keep this bounded and raise it only when the target is missing.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoFind UI elements structured result for ui_find. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context: ui_find requires an element criterion, operates over a snapshot cache, and should only be refreshed when the UI has changed, which goes beyond what the annotations state.

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?

Three short sentences, front-loaded with the primary use case, and every sentence earns its place by either stating scope, giving an exclusion, or providing downstream guidance. No filler.

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

Completeness5/5

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

Given the rich schema, output schema, and safety annotations, the description is complete enough for an agent to select and invoke the tool correctly. It covers scope, required criterion, relationship to sibling tools, and refresh behavior.

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%, so the baseline is 3. The description adds cross-tool guidance about preferring returned ids/labels for ui_action, but it does not meaningfully explain individual parameter semantics beyond the already-rich schema.

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

Purpose5/5

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

The description states a specific verb and resource: finding a small set of native UI elements by role/name/label/AutomationId. It also clearly differentiates this from ui_snapshot by emphasizing targeted lookup rather than enumeration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance ('when you need a small set... after ui_snapshot'), an explicit exclusion ('use ui_snapshot, not an empty ui_find'), and cross-tool guidance for the next step ('prefer returned id or compact label for subsequent ui_action').

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

ui_focusUi FocusAInspect

Use this to focus an identified native Accessibility/UI Automation field or control prior to keyboard input. It does not insert text; identify the element from a recent snapshot.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=false and openWorldHint=true, so the safety burden is lighter; the description still adds real value by framing this as a focus-only setup step that never types, and by flagging the snapshot-staleness dependency. It omits behavior on lookup failure (no match, multiple matches) and whether focus raises the window, which the false idempotentHint makes relevant.

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 sentences, front-loaded with the action and immediately followed by the key exclusion and prerequisite. Nothing is wasted and the ordering puts the differentiator before the caveat.

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 an output schema present and annotations covering safety, the description need only cover intent and preconditions, which it does. The remaining gap is selector-precedence and failure-mode behavior across nine matching parameters, but that is a minor omission for a focus primitive.

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%, so all nine selectors (id, label, role, app, pid, automation_id, window_title) are self-documenting; baseline 3 applies. The description adds only the provenance hint that the element should be identified from a recent snapshot, with no guidance on precedence among the many optional selectors.

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

Purpose5/5

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

States a specific verb (focus) and resource (native Accessibility/UI Automation field or control), and explicitly scopes it away from text entry with 'It does not insert text.' The word 'native' distinguishes it from browser_focus, computer_focus, and window_focus siblings without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear usage condition — call it 'prior to keyboard input' — and a prerequisite that the element come 'from a recent snapshot.' It stops short of naming the actual follow-up tools (type_text, keyboard) or stating what to do when the target is ambiguous, so no explicit alternative routing.

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

ui_invokeUi InvokeA
Destructive
Inspect

Use this when the user asks to invoke one identified native Accessibility/UI Automation element, such as a button or menu command, by its element ID or a specific role/name selector on a paired computer. Find the control with ui_snapshot or ui_find first. Invoking a control can submit data or cause destructive application actions.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered. The description adds meaningful context beyond that ('can submit data or cause destructive application actions'), clarifying what the destruction actually entails. A 4 is appropriate given the lower bar set by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the usage trigger, followed by the prerequisite and a destructuring warning. Every sentence earns its place, though the piece is slightly terse on selector disambiguation.

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?

An output schema exists, so return values need not be explained, and the schema fully documents parameters. The description covers usage, prerequisite discovery, and the destructive side effect, leaving little an agent needs missing before invoking.

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%, so all nine parameters are already documented in the schema. The description only echoes 'element ID or a specific role/name selector,' adding no syntax or format detail beyond the schema. Baseline 3 is correct.

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?

States a specific verb and resource: 'invoke one identified native Accessibility/UI Automation element, such as a button or menu command.' The scope (single element, by id or role/name selector) is clear. It does not explicitly distinguish itself from the close sibling ui_click, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with an explicit trigger ('Use this when the user asks to invoke...') and gives the prerequisite workflow ('Find the control with ui_snapshot or ui_find first'), naming the alternative tools. It lacks an explicit when-not-to-use vs ui_click/computer_invoke, so not a 5.

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

ui_remove_from_selectionUi Remove From SelectionA
Destructive
Inspect

Use this to deselect one identified native UI item through Accessibility/UI Automation without removing the underlying data or clearing all selections.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and openWorldHint=true, which would otherwise read as a high-blast-radius operation; the description usefully narrows that by stating it does not remove the underlying data and does not clear other selections. It still omits failure conditions (e.g. what happens if the item is not currently selected), which matters given idempotentHint=false.

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?

One sentence that front-loads the action and then the two scope limits, with no restatement of the title or the schema. Every clause carries information.

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 an output schema and fully documented parameters, the description only needs to convey purpose and blast radius, which it does. The remaining gap is behavioral: how to recover when no match is found or when the element is not selected.

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?

All nine parameters carry schema descriptions at 100% coverage, so the schema already explains id, app, pid, role, label and device semantics. The description adds no targeting guidance of its own (e.g. preferring label over name for repeats), so the baseline 3 applies.

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?

The description gives a specific verb ('deselect') and resource ('one identified native UI item through Accessibility/UI Automation'), which clearly separates it from ui_select and ui_add_to_selection. However, it never names those sibling tools explicitly, so the agent must infer the routing from the verb alone.

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?

'Use this to deselect one identified native UI item' establishes when to reach for the tool, and the trailing clause implies it is the single-item variant rather than a bulk clear. There is no explicit when-not guidance and no named alternative (e.g. ui_add_to_selection for the inverse, or computer_remove_from_selection for the coordinate path).

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

ui_scroll_into_viewUi Scroll Into ViewAInspect

Use this to bring an identified native Accessibility/UI Automation element into view before interacting with it. Prefer semantic targeting over blind pointer scrolling.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description only adds that the operation changes visibility before a subsequent interaction; it says nothing about failure behavior when the element cannot be found or is not inside a scrollable region, nor about whether focus moves. Adequate but thin for a state-changing tool.

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 sentences, front-loaded with the action and followed by the targeting preference. No filler, no repetition of schema or annotation data.

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 a full input schema, a complete output schema, and annotations covering safety, the description is sufficient to call the tool correctly. The remaining gap is not distinguishing itself from the three other scroll_into_view siblings, which matters given the crowded namespace.

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 all nine targeting parameters (id, app, pid, name, role, label, device, window_title, automation_id) fully documented in the schema. The description adds no resolution-order or precedence guidance (e.g. id vs label vs name/role combination), so it does not exceed the baseline.

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?

States a concrete verb and resource: bring a specific native Accessibility/UI Automation element into view, scoped to semantic (not coordinate) targeting. It implicitly separates itself from blind pointer/scroll tools, but never names scroll, computer_scroll_into_view, or browser_scroll_into_view, so an agent must infer which of the near-identical siblings applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'before interacting with it' and 'Prefer semantic targeting over blind pointer scrolling' give a clear usage condition and an implied alternative approach. What is missing is the explicit exclusion case, i.e. when blind scrolling is actually correct or when this tool fails (element not in a scrollable container).

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

ui_selectUi SelectA
Destructive
Inspect

Use this to select an option in an identified native Accessibility/UI Automation list or selection control. Verify available options first; selection may change application state.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
valueNoNew text or numeric range value.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already disclose that the tool is not read-only, is destructive, is non-idempotent, and has open-world behavior. The description reinforces this with 'selection may change application state' and adds a verification instruction, but it does not add details about reversibility, permissions, or other side effects beyond the annotations.

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?

The description is two tightly written sentences with no waste. It is front-loaded with the action and scope, followed by the important verification and state-change warning.

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?

Given the output schema, rich annotations, and fully documented input schema, the description provides enough context to call the tool safely. It could still be stronger by clarifying how this selection tool relates to nearby alternatives and by saying more about how the target option is specified.

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%, so all ten parameters are already documented in the schema. The description does not add parameter-specific guidance, such as how id, label, name, role, or value should be used to identify and select an option, so the baseline score of 3 is appropriate.

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?

The description states a specific verb and resource: selecting an option in a native Accessibility/UI Automation list or selection control. It distinguishes this from browser or general computer interaction by specifying native accessibility controls, though it does not explicitly name sibling tools such as ui_toggle or ui_set_value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context ('Use this to select an option...') and a useful precondition ('Verify available options first'). It does not, however, explain when to prefer alternatives such as ui_click, ui_toggle, ui_set_value, browser_select, or computer_select.

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

ui_set_range_valueUi Set Range ValueA
Destructive
Inspect

Use this to assign a supported value to an identified native slider or range widget through Accessibility/UI Automation. Inspect allowed bounds first; changes can take effect immediately.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
valueNoNew text or numeric range value.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

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, idempotentHint=false, and openWorldHint=true, so the agent knows this is a mutating, non-repeatable operation. The description adds only 'changes can take effect immediately' and the bounds-check warning, which supplements but does not substantially deepen the annotation picture; it says nothing about validation failures or out-of-range behavior.

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 target, followed by the critical precondition. No filler or redundant restatement of the tool name.

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 a rich 10-parameter schema at 100% coverage, full annotations, and an output schema, the description only needs to convey the widget class and the bounds precondition, which it does. Slightly incomplete in not explaining what happens when the value is out of range or how element identification interacts with the many selector parameters.

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 coverage is 100%, so every parameter including the polymorphic 'value' field is already documented in the schema. The description reinforces that the value must be 'supported' and within inspected bounds, but contributes no syntax, format, or selector-precedence detail beyond the schema.

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?

The description gives a specific verb and resource: assign a value to a native slider or range widget via Accessibility/UI Automation. This clearly separates it from generic setters like ui_set_value or computer_set_value, but it never names those siblings explicitly, so the distinction requires inference from the 'slider or range widget' phrasing.

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?

'Inspect allowed bounds first' is a useful prerequisite, and 'identified' implies the element must already be located via ui_snapshot/ui_find. However, there is no explicit guidance on when to prefer ui_set_value or computer_set_range_value, and no stated exclusion or failure condition beyond the bounds warning.

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

ui_set_valueUi Set ValueA
Destructive
Inspect

Use this to replace the value of a native accessible text field or editable control by element ID or semantic selector. Check the target before writing; it may update application data.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
valueNoNew text or numeric range value.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.9/5.0
Behavior4/5

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

The description enhances the annotations by adding a proactive safety warning: 'it may update application data.' This explicitly states the functional risk beyond the 'destructiveHint: true' annotation, framing the necessary verification step for the agent.

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?

The description is an extremely efficient single sentence. It is front-loaded with the core function and ends with a vital operational caveat, demonstrating zero wasted words.

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?

Given the high complexity (10 parameters) and the presence of detailed annotations and an exhaustive schema, the description is highly effective at giving the agent the necessary 'why' and 'how' context, even if it doesn't list every possible input parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema coverage is 100%, the description does not need to explain parameter values. Instead, it provides semantic context by explaining that the parameters serve as 'element ID or semantic selectors,' guiding the agent on the functional purpose of the inputs (e.g., they are pointers to UI elements, not just strings).

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?

The description clearly states the function: to replace the value of native accessible text fields or editable controls. It specifies the methods of addressing these controls (element ID or semantic selector), providing sufficient clarity while allowing the agent to use the rich input schema to differentiate targeting methods.

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?

The description provides a crucial operational guideline ('Check the target before writing'). However, it does not explicitly state when to use this tool versus similar siblings like 'browser_type' (which simulates keystrokes) or 'ui_set_range_value,' relying on the agent's ability to infer the difference between setting a value and typing.

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

ui_snapshotUI accessibility snapshotA
Read-onlyIdempotent
Inspect

Use this when the user needs to inspect native desktop Accessibility/UI Automation semantics for the active app before clicking or typing. Prefer scope=active; use scope=desktop only for cross-application discovery. For a Chromium web page with CDP available, prefer browser_snapshot for page DOM semantics.

NameRequiredDescriptionDefault
appNoOptional application/process name substring scope.
pidNoOptional owning process id scope.
scopeNoDefault active. Use desktop only when cross-application discovery is required.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
max_depthNoMaximum traversal depth; default 8, maximum 32.
max_nodesNoMaximum nodes; default 500, maximum 5000.
browser_domNoPrefer the native browser document accessibility subtree instead of browser chrome when supported.
window_titleNoOptional top-level accessibility window/frame title scope.
semantic_treeNoInclude compact semantic hierarchy text; default true.

Output Schema

NameRequiredDescription
dataNoUI accessibility snapshot structured result for ui_snapshot. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds behavioral context about the semantic (non-visual) nature of the snapshot and the scope preference, which helps the agent understand what the tool will actually return and how traversal is constrained.

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?

Three sentences with zero filler. The purpose is front-loaded, the primary scope constraint follows immediately, and the alternative routing is saved for the end. Every sentence earns its place.

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

Completeness5/5

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

For a moderately complex 9-parameter tool with a full schema and an output schema, the description covers the essential usage context: when to invoke, how to choose scope, and which sibling to prefer for web pages. The output schema handles return-shape details, so nothing an agent needs to call this correctly is missing.

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%, so the schema already documents all nine parameters. The description adds a brief scope recommendation ('Prefer scope=active; use scope=desktop only for cross-application discovery'), but this largely mirrors the schema's own scope description. It adds no deeper parameter meaning beyond what the schema already provides.

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

Purpose5/5

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

The description names a specific verb ('inspect'), a resource ('native desktop Accessibility/UI Automation semantics'), and a contextual trigger ('before clicking or typing'). It explicitly differentiates itself from browser_snapshot, so an agent can distinguish it from a key sibling without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance, prescribes scope=active as the default, limits scope=desktop to cross-application discovery, and names browser_snapshot as the preferred alternative for Chromium page DOM semantics. This is direct, action-oriented routing with no inference required.

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

ui_toggleUi ToggleA
Destructive
Inspect

Use this to activate an identified native checkbox or switch using its accessibility semantics. Check the present state before toggling; this can change saved settings.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoAct on UI element structured result for ui_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior3/5

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

It adds valuable context that this action 'can change saved settings.' While the annotation confirms it is not read-only, this description adds the crucial behavioral detail that the action is persistent and meaningful beyond just the immediate UI state.

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?

The definition is extremely brief and highly efficient, front-loading the core functionality and the most critical warning about state change in a single, focused statement.

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?

Given the rich input schema and annotations, the description is quite complete. It covers the core function, the 'why' (native/accessibility), and the consequence of the action (saved settings), leaving no major gaps.

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?

With 100% schema description coverage, the baseline for this dimension is 3. The description does not add significant semantic value to the 9 parameters, relying on the input schema for detailed definitions.

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?

It clearly states the tool's purpose: activating a native checkbox or switch using its accessibility semantics. The use of 'native' and 'accessibility semantics' distinguishes it from more generic interaction tools like ui_click.

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?

The description includes a helpful guideline to 'check the present state before toggling,' which informs the user workflow. However, it does not explicitly state when to use this tool over alternatives like ui_set_value or ui_click.

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

wait_for_process_outputWait for process outputA
Read-only
Inspect

Use this when you need to wait until a running command prints something specific, such as a readiness line or a failing test name.

NameRequiredDescriptionDefault
pidYesSession pid returned by start_process.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
patternYesRegular expression or literal text to wait for.
timeout_msNoHow long to wait before returning the output collected so far, in milliseconds. Default 10000.

Output Schema

NameRequiredDescription
dataNo
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that this is a blocking wait for a pattern, but does not disclose timeout/partial-output semantics (left to the schema) or how it differs behaviorally from a plain read. With annotations carrying the safety load, this is adequate but not rich.

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?

A single front-loaded sentence with two illustrative examples and zero filler. Every clause earns its place and the usage trigger comes first.

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?

Return values need not be explained since an output schema exists, and annotations cover safety, so the remaining burden is routing and blocking semantics. The description conveys the core intent well but leaves the read-vs-wait sibling distinction implicit, a minor gap for a 4-param tool with full schema coverage.

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%, so pid, device, pattern and timeout_ms are all documented in the schema, including the 10000ms default and the partial-output-on-timeout behavior. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the heavy lifting.

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?

The description states a specific verb+resource+scope: wait until a running command prints a specific pattern. It is clear what the tool does, but it never names or contrasts with the nearest siblings read_process_output (non-blocking read) or wait_for_ui, so an agent must infer the distinction from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear when-to-use condition ('wait until a running command prints something specific') with concrete examples (readiness line, failing test name). There is no explicit when-not guidance or named alternative for the immediate-read case, so it stops short of the top score.

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

wait_for_uiWait for UIA
Read-onlyIdempotent
Inspect

Use this when a desktop action must be followed by proof of an explicit native UI state or condition instead of sleeping or polling screenshots. Presence/absence waits need a semantic target; use state=changed for a broad tree change and set a bounded timeout.

NameRequiredDescriptionDefault
idNoElement id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.
appNoLimit matching to an application/process name substring when available.
pidNoLimit matching to one owning process id when available.
nameNoAccessible name/title substring.
roleNoAccessible role such as Button, Edit, textbox or AXButton.
textNoText used by text_exists or active_window.
labelNoCompact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.
stateNochanged captures the first matching semantic state and waits until it differs.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
poll_msNoPolling interval, 50..5000 ms.
conditionNoSemantic condition to wait for; choose the condition that directly proves the requested state transition.
timeout_msNoMaximum wait, capped at 120000 ms.
browser_domNoUse native browser document accessibility where supported.
window_titleNoLimit matching to a top-level accessibility window/frame title substring when available.
automation_idNoWindows AutomationId when available.

Output Schema

NameRequiredDescription
dataNoWait for UI structured result for wait_for_ui. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds behavioral context by explaining that this is a semantic wait rather than a blind sleep or screenshot poll, and that state=changed waits for a semantic state to differ. It doesn't mention timeout failure behavior, but the bounded-timeout guidance and output schema cover the main behavioral contract.

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 sentences deliver the core purpose, the avoidance guidance, and the key condition/state/timeout rules. No filler, front-loaded with the main use case, and every clause earns its place.

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?

For a tool with 15 parameters and conditional requirements, the description plus 100% schema coverage and an output schema provide enough context for correct invocation. The description covers the high-level decision logic (when, which condition, which state, timeout), while the schema handles the mechanical param details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds decision-level meaning beyond the schema: choosing a semantic target for presence/absence, using state=changed for broad tree changes, and setting a bounded timeout. This helps an agent select among condition/state/timeout_ms without restating field syntax.

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

Purpose5/5

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

The description states a specific purpose: wait for proof of an explicit native UI state after a desktop action, and differentiates itself from sleeping or polling screenshots. It also identifies the tool as the semantic wait for desktop UI, distinguishing it from browser_wait and wait_for_process_output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use the tool (after a desktop action requiring proof of a native UI state) and what not to do instead (sleeping or polling screenshots). It further guides condition selection by stating presence/absence waits need a semantic target, recommending state=changed for broad tree changes, and requiring a bounded timeout.

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

who_am_iWho am IA
Read-onlyIdempotent
Inspect

Use this when the person asks which ReMCP account they are signed in as, how many machines are paired and online, or how many tool calls they have made lately.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataYes
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already cover read-only and idempotent behavior. The description adds that it returns account, machine, and tool-call-count information, which is useful context but does not go beyond what is implied. No contradiction with annotations.

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?

A single sentence that is front-loaded with usage triggers and provides all necessary information without any filler. Highly efficient.

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

Completeness5/5

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

With zero parameters, an output schema present, and annotations covering safety, the description fully equips an agent to decide when to invoke it and what to expect. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema fully covers them. The description adds no parameter details, but baseline is 4 for parameterless tools.

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

Purpose5/5

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

The description clearly specifies the exact scenarios: identifying the signed-in ReMCP account, paired/online machine count, and recent tool call count. It uses a specific verb ('Use this when') and names the resource, distinguishing it from siblings like get_recent_tool_calls or get_usage_statistics by its summary-level nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit trigger conditions ('when the person asks...') for three distinct use cases, which is strong guidance. However, it does not explicitly mention alternatives or when not to use it, leaving slight ambiguity about overlap with more detailed tools like get_recent_tool_calls.

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

window_closeWindow CloseA
Destructive
Inspect

Use this to close a specific application window on the paired computer. Closing may discard unsaved changes or quit an application; confirm the intended window and save work first.

NameRequiredDescriptionDefault
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

The description adds significant behavioral context by noting that 'closing may discard unsaved changes or quit an application.' This complements the `destructiveHint: true` annotation by providing the specific risks and consequences of the action.

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?

The definition is highly concise, using two efficient sentences. The first sentence defines the scope and action, and the second provides the essential warning, maximizing information density.

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?

The description is very complete for a destructive operation. It covers the 'how' (closing the window), the 'where' (paired computer), and the critical 'what if' (loss of unsaved data/quitting the app). With 100% schema coverage, this risk disclosure is highly valuable.

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?

Given that schema description coverage is 100%, the baseline score is 3. The description reinforces the intent of the parameters, specifically that they are used to identify a 'specific application window,' adding semantic clarity to the required identification process.

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

Purpose5/5

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

The description clearly states the exact action ('close a specific application window') and the target environment ('on the paired computer'). It is specific and unambiguous, making its function immediately apparent.

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?

While it does not explicitly compare itself to alternatives (e.g., minimizing), it provides critical usage guidance by warning the user to 'confirm the intended window and save work first.' This guides the agent on the required caution.

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

window_focusWindow FocusAInspect

Use this to activate an existing application window on the paired desktop, identified by a current window ID, process or title. This only changes the active window; use list_windows if the target is unknown.

NameRequiredDescriptionDefault
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false; the description adds useful scoping context that no longer activation happens ('This only changes the active window'), which rules out resizing or raising side effects an agent might otherwise assume from the non-read-only annotation. It doesn't cover failure behavior when the ID is stale, which prevents a 5.

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 sentences, both loaded: the capability statement first, then the routing constraint. No filler, no repetition of the tool name or title.

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 an output schema, full annotation coverage, and 100% schema descriptions, the description only needs to frame the operation and the identifier alternatives, which it does. The required device parameter and the multi-device pairing model are left entirely to the schema, which is the only remaining gap.

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%, so the schema already documents id, app, pid, title, device, and the backend enum; baseline is 3. The description does add one semantic fact not in the schema — that id, process, and title are alternative identification paths — but it never mentions that device is required or what backend selection implies.

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

Purpose5/5

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

States a specific verb ('activate') plus resource ('an existing application window on the paired desktop') and enumerates the accepted identifiers (window ID, process, title). An agent can distinguish it from window_close, window_restore, or ui_focus without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to the alternative: 'use list_windows if the target is unknown', which gives the precondition for choosing that sibling instead. It does not address when to prefer it over ui_focus/browser_focus or what to do if the window no longer exists, so it falls short of full when/when-not coverage.

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

window_maximizeWindow MaximizeAInspect

Use this to maximize an identified application window on the paired desktop. Confirm the target window first; it changes window layout without modifying application files.

NameRequiredDescriptionDefault
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4.3/5.0
Behavior4/5

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

The description includes valuable behavioral context regarding the nature of the change ('changes window layout without modifying application files'), which is helpful for safety and user expectations, especially since the annotations only specify it is not destructive. It also details the complex 'backend' parameter logic, which provides specific behavioral constraints on how the action is performed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, leading with the core function before adding critical warnings/technical details. It is concise but robust.

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?

Given the 100% parameter description coverage and the functional intent, the description is quite complete. It clarifies that the operation is non-file-modifying, which is important for user trust.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is high. The description adds semantic value by describing the required 'device' context and explaining the nuanced choices available for the 'backend' parameter (auto, x11, portal).

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

Purpose5/5

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

The description clearly states the action (maximize) and the target (an identified application window on the paired desktop). It distinguishes this operation from file modification operations by specifying it changes 'window layout without modifying application files.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a necessary pre-requisite/caution: 'Confirm the target window first,' which is crucial when dealing with window management. It does not explicitly mention alternatives for 'move' or 'resize' operations, but its singular focus on maximization is clear.

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

window_minimizeWindow MinimizeAInspect

Use this to minimize a selected application window while leaving the application running. Identify the window first; it does not close the window or terminate its process.

NameRequiredDescriptionDefault
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the bar is lower, and the description adds real value by clarifying that the process keeps running and nothing is terminated. It does not cover what happens if the window handle is stale or whether repeated calls are safe (idempotentHint=false), which leaves a small gap.

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 tight sentences, with the primary action and its non-destructive scope front-loaded and the disambiguation clause second. No filler or restatement of the title.

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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. Purpose, effect scope, and the prerequisite are all stated; only the selector-combination semantics are left unaddressed for a 6-parameter 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%, including a detailed backend enum explanation, so the baseline is 3. The description only hints that a window must be selected first; it adds nothing about how the id/app/pid/title selectors combine (AND vs OR) or which is preferred, which is the one thing the schema does not resolve.

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

Purpose5/5

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

States a specific verb and resource ('minimize a selected application window') plus the scope of the effect ('while leaving the application running'). It also explicitly distinguishes itself from window_close/force_terminate by saying it 'does not close the window or terminate its process', so an agent can pick it apart from its nearest siblings without opening a schema.

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?

It gives a precondition ('Identify the window first'), which signals that a window must be located before calling, but it never names the alternative tools (list_windows, window_restore, window_maximize) or states when to prefer restoring versus minimizing. Usage is implied rather than explicit.

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

window_moveWindow MoveAInspect

Use this to reposition an identified desktop window to specified screen coordinates. Confirm monitor geometry before moving; the application continues running.

NameRequiredDescriptionDefault
xYesVirtual-desktop X coordinate in pixels.
yYesVirtual-desktop Y coordinate in pixels.
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent, so the safety profile is partly covered; the description still adds real context: the target application keeps running after the move, and geometry should be verified first. It doesn't mention failure modes (off-screen coordinates, backend consent) or what happens on invalid ids.

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, action first and caution second, with zero filler. Nothing redundant is repeated from the schema or annotations.

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?

An output schema exists and the 8-parameter schema is fully annotated, so the description needn't explain returns or parameters. What's missing is sibling differentiation against window_move_resize, which for a 150-plus tool surface is a real agent-facing gap.

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%, so x, y, id/app/pid/title, device and backend are all documented in the schema. The description adds only the notion of 'screen coordinates' and nothing about coordinate system origin, multi-monitor negative coords, or backend selection tradeoffs. Baseline 3 applies.

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?

States a specific verb (reposition) and resource (an identified desktop window) with the target (screen coordinates). However, it never distinguishes itself from the closely-named sibling window_move_resize, which an agent would likely confuse it with.

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?

Includes a prerequisite-style caution ('Confirm monitor geometry before moving') and implies usage by 'identified desktop window' (i.e. one must first resolve a window via list_windows). But there is no explicit when-not guidance and no routing to window_move_resize or window_resize, which are the obvious alternatives.

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

window_move_resizeWindow Move ResizeBInspect

Use this to reposition and resize a specific desktop window in one action with explicit coordinates and dimensions. Verify its identity and monitor bounds beforehand.

NameRequiredDescriptionDefault
xYesVirtual-desktop X coordinate in pixels.
yYesVirtual-desktop Y coordinate in pixels.
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
widthYesWidth in pixels.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
heightYesHeight in pixels.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the mutation profile is known. The description adds that move+resize are applied atomically in one call and that identity/bounds should be checked first; it does not say what happens on invalid coordinates, out-of-bounds values, or a missing window.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, with purpose front-loaded and the precondition second. No filler, though the second sentence is advisory and slightly under-specified ('monitor bounds' assumes the agent knows how).

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

Completeness3/5

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

An output schema and full schema descriptions carry most of the load, so the description needn't explain returns. However, for a 10-parameter mutation tool it says nothing about window-selector precedence (id vs app vs pid vs title) or failure behavior, leaving gaps the structured fields don't fill.

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 coverage is 100%, so the schema already documents all 10 parameters including the backend enum and the id/app/pid/title selectors. The description only echoes 'explicit coordinates and dimensions' without adding format or unit detail beyond what the schema supplies.

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?

States a specific verb pair and resource: 'reposition and resize a specific desktop window.' The phrase 'in one action' distinguishes it from the separate window_move and window_resize siblings, though it never names them explicitly.

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?

'Use this to...' plus 'verify its identity and monitor bounds beforehand' gives an implied precondition, but it never says when to prefer this over window_move / window_resize or what to do if the target is ambiguous. Usage is implied rather than routed.

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

window_resizeWindow ResizeAInspect

Use this to resize an identified desktop window to the requested width and height. Inspect display limits first; it does not change the content of files in the application.

NameRequiredDescriptionDefault
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
widthYesWidth in pixels.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
heightYesHeight in pixels.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so safety is partly covered. The description still adds value by scoping the side effect ("does not change the content of files in the application") and by warning that display limits should be checked first, preempting an obvious failure mode. It does not say what happens when the requested size exceeds the display.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, with the core action front-loaded ahead of the caveats. The second sentence bundles two unrelated points (display limits, file content) a bit awkwardly but nothing is wasted.

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

Completeness3/5

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

With full schema coverage and an output schema, the description needn't document parameters or return values. Its remaining gap is disambiguation from window_move_resize and window_maximize in a crowded window-management sibling group, which the description never addresses.

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 8 well-documented parameters including the backend enum, so the schema carries parameter meaning. The description adds nothing about the identifier alternatives (id vs app vs pid vs title) or the backend choice, leaving it at the baseline for full coverage.

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?

States a specific verb and resource (resize an identified desktop window to a given width and height), which is concrete and unambiguous. It does not distinguish itself from the closely related sibling window_move_resize or window_maximize, so an agent must infer the boundary itself.

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?

"Inspect display limits first" gives one useful precondition before calling. However, no guidance is offered on when to prefer this over window_move_resize (position + size in one call) or window_maximize, which are the two most plausible alternatives in the sibling list.

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

window_restoreWindow RestoreAInspect

Use this to restore an identified minimized or maximized application window to its normal state. It changes window state but does not restore deleted data.

NameRequiredDescriptionDefault
idNoWindow id returned by list_windows.
appNoApplication/process name substring.
pidNoOwning process id.
titleNoWindow title substring.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
backendNoInput backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.

Output Schema

NameRequiredDescription
dataNoWindow action structured result for window_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare destructiveHint=false and readOnlyHint=false, and the description usefully adds the disambiguation 'does not restore deleted data', which prevents a dangerous misreading of the word 'restore'. However it says nothing about what happens if the identified window no longer exists, whether the operation errors or no-ops, or any permission/consent requirements.

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 with no filler; the purpose comes first and the clarifying caveat second. Nothing redundant or padded.

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?

An output schema exists, so return values need not be explained, and the parameter schema is fully documented. The description covers purpose and the key semantic caveat; the only real gap is failure behavior when the target window is gone, which is minor for a low-risk state toggle.

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 coverage is 100% with each of the six parameters individually documented, including the backend enum's full semantics, so the schema carries the burden. The description adds nothing about how to combine id/app/pid/title for identification, which is the one thing the schema does not clarify.

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?

States a specific verb ('restore') and resource ('application window') plus the source states (minimized or maximized) and target state (normal). It is clearly separable from siblings like window_minimize and window_maximize, though it does not name those siblings explicitly.

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?

'Use this to restore...' gives an implied trigger condition, and the phrase 'identified ... window' hints that a window must first be located. There is no explicit when-not guidance, no mention of list_windows as the prerequisite for obtaining an id, and no named alternatives.

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

write_binaryWrite binary chunkA
Destructive
Inspect

Use this when the user needs base64 data written to a file on a paired computer byte for byte, including files too large for a single call.

NameRequiredDescriptionDefault
dataYesBase64-encoded content.
modeNorewrite replaces the file, append adds to the end. Default rewrite.
pathYesAbsolute path of the file to write.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag destructiveness (destructiveHint=true). The description adds useful behavioral context: it writes byte-for-byte and supports large files, implying chunking or multiple calls. It does not contradict annotations and provides extra detail about operation characteristics 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the primary use case and includes key differentiators (binary, byte-for-byte, large file support). It is concise with no redundant wording, and every clause adds value.

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?

The description covers the main use case and notes large-file support, but does not explain the chunking protocol (e.g., whether to call multiple times or how to use mode for appending). The presence of an output schema and the schema's mode parameter partially mitigate this gap, but some ambiguity remains for complex scenarios.

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%, so all parameters (path, data, device, mode) are already documented. The tool description does not add any additional parameter-specific meaning, so a baseline of 3 is appropriate given the high schema coverage.

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

Purpose5/5

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

The description states a specific action (writing base64 data to a file) with clear scope (on a paired computer, byte for byte, including large files). It distinguishes from siblings like write_file and write_files by emphasizing binary content and chunking for large files, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear trigger condition ('when the user needs base64 data written...') and mentions handling files too large for a single call, which guides when to select this tool. However, it does not explicitly mention alternatives or when not to use it (e.g., for text files), leaving some inference to the agent.

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

write_fileWrite fileA
Destructive
Inspect

Use this when the user asks to create or replace the complete contents of exactly one text file. For a small exact-block edit use edit_block, for a known line range use replace_lines, and when you already have a unified diff use apply_patch. For two or more independent complete files use write_files; use write_binary for binary bytes.

NameRequiredDescriptionDefault
modeNorewrite replaces the file content, append adds to the end. Default rewrite.
pathYesAbsolute path of the file to write.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
contentYesFull file content, or the text to append.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the description doesn't need to restate that. It adds useful context by clarifying the 'rewrite' vs 'append' modes and the 'exactly one file' scope. It doesn't mention side effects like overwriting existing content, but the destructiveHint annotation covers that, and the description's mode explanation is sufficient.

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?

The description is a single, dense sentence that front-loads the primary use case and then lists alternatives. Every clause earns its place, and there is no filler or repetition of the title.

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?

For a write tool with destructiveHint=true and a complete schema, the description covers the main decision points: when to use it, what it does, and which siblings to use instead. It doesn't mention return values, but the output schema exists, so that's not required. The only minor gap is not explicitly warning about data loss, but the destructiveHint annotation covers that.

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%, so the schema already documents all four parameters. The description adds the 'exactly one file' constraint and the mode distinction, but doesn't add much beyond the schema. Baseline 3 is appropriate when the schema carries the parameter documentation.

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

Purpose5/5

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

The description states a specific verb ('create or replace'), a precise resource ('complete contents of exactly one text file'), and explicitly distinguishes itself from sibling tools (edit_block, replace_lines, apply_patch, write_files, write_binary). An agent can immediately tell what this tool does and what it is not for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance ('Use this when the user asks to create or replace the complete contents of exactly one text file') and names the alternatives for other cases (edit_block, replace_lines, apply_patch, write_files, write_binary). This is exactly the kind of routing an agent needs.

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

write_filesWrite multiple filesA
Destructive
Inspect

Use this when the user asks to create or replace the complete contents of two or more independent text files in one batch. For one path use write_file; for partial edits use edit_block, replace_lines, replace_in_files, or apply_patch instead of rewriting whole files.

NameRequiredDescriptionDefault
filesYesFiles to write, at most 200 per call.
deviceYesReMCP device id returned by list_devices. Required for every device operation.

Output Schema

NameRequiredDescription
dataNoOptional structured result data for follow-up reasoning and tool calls.
textYesConcise human-readable result of the tool call.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, and the description adds meaningful context by clarifying that the operation replaces complete file contents rather than performing a partial mutation. It also emphasizes batching of independent files and contrasts with rewrite-avoiding alternatives, which is useful beyond the raw boolean hints.

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 sentences, front-loaded with the primary use case, followed by precise routing to alternatives. Every sentence earns its place with no repetition of schema details.

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

Completeness5/5

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

For a batch-write tool with full schema documentation and an output schema, the description fully covers selection criteria and alternative routing. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds semantic value by constraining files to 'two or more' and 'independent' text files and by describing the operation as a single batch, which is not captured in the schema.

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

Purpose5/5

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

The description states a specific verb and resource: create or replace the complete contents of two or more independent text files in one batch. It also distinguishes this from write_file and partial-edit tools by naming them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance ('two or more independent text files in one batch') and clear alternatives for other cases ('For one path use write_file; for partial edits use edit_block...'). This directly helps the agent route to the correct sibling tool.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedread_process_output4 fields changed
      • changedInput schema / properties / length / description
        Previous value: -"Maximum number of lines to return."New value: +"Maximum number of lines to return per call (default 200). Without offset, unreturned lines remain available; use hasMore to fetch the next page."
      • changedInput schema / properties / timeout_ms / description
        Previous value: -"How long to wait for new output when no offset is given, in milliseconds."New value: +"With no offset, wait up to this many milliseconds for output/exit; 0 returns immediately (default). Use 1000–2000 to avoid repeated remote polls when output is expected."
      • addedOutput schema / properties / data / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / required
        Previous value: -[
        -  "pid",
        -  "status",
        -  "runtimeMs",
        -  "lines",
        -  "exited",
        -  "exitCode",
        -  "signal",
        -  "range",
        -  "output",
        -  "explicitOffset"
        -]New value: +[
        +  "pid",
        +  "status",
        +  "runtimeMs",
        +  "lines",
        +  "exited",
        +  "exitCode",
        +  "signal",
        +  "range",
        +  "output",
        +  "explicitOffset",
        +  "hasMore"
        +]
  2. 2 tool updates
    • Changedbrowser_fill_form2 fields changed
      • addedInput schema / properties / fields / items / properties / expected_tag
        Added value: +{
        +  "description": "Expected tag from the native form map; stale selectors fail without writes.",
        +  "enum": [
        +    "input",
        +    "select",
        +    "textarea"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / fields / items / properties / expected_type
        Added value: +{
        +  "description": "Expected field type from the native form map; stale selectors fail without writes.",
        +  "enum": [
        +    "text",
        +    "email",
        +    "password",
        +    "tel",
        +    "url",
        +    "search",
        +    "number",
        +    "date",
        +    "time",
        +    "datetime-local",
        +    "month",
        +    "week",
        +    "color",
        +    "range",
        +    "checkbox",
        +    "radio",
        +    "file",
        +    "hidden",
        +    "submit",
        +    "reset",
        +    "button",
        +    "select",
        +    "textarea"
        +  ],
        +  "type": "string"
        +}
    • Changedbrowser_workflow2 fields changed
      • addedInput schema / properties / steps / items / properties / fields / items / properties / expected_tag
        Added value: +{
        +  "description": "Optional HTML tag from Forms; rejects stale selector mismatches.",
        +  "enum": [
        +    "input",
        +    "select",
        +    "textarea"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / steps / items / properties / fields / items / properties / expected_type
        Added value: +{
        +  "description": "Optional field type from Forms; checked immediately before batch writes.",
        +  "enum": [
        +    "text",
        +    "email",
        +    "password",
        +    "tel",
        +    "url",
        +    "search",
        +    "number",
        +    "date",
        +    "time",
        +    "datetime-local",
        +    "month",
        +    "week",
        +    "color",
        +    "range",
        +    "checkbox",
        +    "radio",
        +    "file",
        +    "hidden",
        +    "submit",
        +    "reset",
        +    "button",
        +    "select",
        +    "textarea"
        +  ],
        +  "type": "string"
        +}
  3. 1 tool update
    • Addedbrowser_workflow

Publisher details

Operator
ReMCP · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Requires signing in to ReMCP and pairing at least one device. Desktop and browser-control features depend on the paired device's OS permissions and advertised capabilities. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants like Claude, Codex and ChatGPT to actually operate a computer — finding files, running commands, taking screenshots and driving a browser — and, after a one-time pairing, to help on family members' computers anywhere. Connections between machines are end-to-end encrypted through a relay, requiring no VPN, port forwarding or router setup.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI clients to securely control trusted devices and perform filesystem, terminal, process, and document operations through a self-hosted remote service.
    640,833 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Pre-alpha P2P remote-control app with a local stdio MCP bridge for paired computers. Users build from source; platform support and host-side approvals apply.
    2
    1
    AGPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI services like Claude and Cursor to remotely control a Mac by executing shell commands, managing files, and running AppleScript for UI automation. Access is secured through OAuth 2.0 authentication and encrypted tunnels to protect remote interactions.
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources