Skip to main content
Glama

input.send_keys

Destructive

Send a key or chord to the focused window (e.g. enter, tab, ctrl+s, alt+f4, win). Side effect: real key events on the remote desktop. Prefer bundling into input.send_actions when the shortcut follows a click/type in the same planned sequence. Use input.type_text for literal strings, not this tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keysYesKey or combo, e.g. enter, tab, ctrl+s, alt+f4, win
session_idYesActive session id

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYesFalse when the tool failed
messageYesHuman-readable result for the agent

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already set destructiveHint=true and openWorldHint=true. The description adds a key behavioral trait: 'Side effect: real key events on the remote desktop.' While this is good context, it doesn't elaborate on the nature of the destruction (e.g., irreversible, system-level impact). Still, the side effect note provides meaningful transparency 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 extremely concise: three sentences that front-load the essential action and examples. Every sentence serves a distinct purpose (definition, side effect, usage guidance), with no wasted words. Ideal for quick agent comprehension.

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 simplicity of the tool (2 parameters, no enums, output schema exists, sibling context clear), the description covers all needed aspects: purpose, side effect, and when to use alternatives. It leaves no gaps for an agent to misinterpret how or when to invoke this tool.

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% with descriptions for both parameters (keys and session_id). The description adds value by listing concrete examples for the keys parameter ('enter, tab, ctrl+s, alt+f4, win'), which helps the agent understand valid inputs. It does not add further detail to session_id, but the schema already suffices.

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 'Send' and the resource 'a key or chord to the focused window', with illustrative examples like 'enter, tab, ctrl+s'. It effectively distinguishes from siblings by naming alternatives (input.send_actions, input.type_text), making the tool's 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?

Explicit guidance is provided: 'Prefer bundling into input.send_actions when the shortcut follows a click/type in the same planned sequence. Use input.type_text for literal strings, not this tool.' This tells the agent when to use this tool versus alternatives, directly supporting correct selection.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: session management, input methods, screen observation, demo retrieval, and rig listing. Descriptions explicitly state when to prefer one over another (e.g., click_target over click_xy, send_actions over chaining). No two tools overlap in functionality.

Naming Consistency5/5

All tools follow the domain.verb_noun pattern (e.g., app.launch, input.click_target, session.start) with consistent snake_case. Verbs like launch, list, get, click, send, type, observe are clear actions, and the naming is predictable across the entire set.

Tool Count5/5

16 tools cover the full spectrum of remote desktop control: 2 for demos, 1 for rigs, 4 for sessions, 1 for screen, 7 for input, and 1 for app launching. Each tool is necessary and there is no redundancy; the count is well-scoped for the domain.

Completeness5/5

The tool set provides a complete lifecycle for remote desktop interaction: rig selection, session start/end, screen observation, all common input actions (click, type, scroll, drag, multi-step sequences), app launching, and demo retrieval. There are no obvious gaps for typical UI automation tasks.