press_keys
Fallback: press one key or a key chord such as ["CTRL", "L"].
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | ||
| job_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Fallback: press one key or a key chord such as ["CTRL", "L"].
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | ||
| job_id | Yes |
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Changes observed during successful MCP inspections.
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 structurally. The description adds that this is a fallback, but says nothing about what state is affected, whether the key press is reversible, or what the job_id controls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no filler, and the key format example is efficiently embedded. The terse 'Fallback:' label is the only structural weakness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, job-scoped mutation tool with 0% schema description coverage and two required parameters, the description is far too thin. It does not explain job_id, side effects, or alternatives, even though the output schema means return values need not be covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does give a helpful format example for the 'keys' parameter (e.g. ["CTRL", "L"]), but the required 'job_id' parameter is never explained, leaving half of the parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear verb (press) and resource (one key or key chord), and gives a concrete example of the chord format. The word 'Fallback' hints at the relationship with sibling press_element, but does not explicitly distinguish the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Fallback' implies this tool is secondary and should be used when a primary key-pressing route is unavailable or fails, which is useful implied context. However, it never names the primary alternative or states explicit when-to-use/when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.