Skip to main content
Glama
Intrect-io

lyra-browser

Official
by Intrect-io

press_key

Sends a keyboard key to the active browser page, including Enter, Escape, or Control+a, and reports triggered navigation, new tabs, downloads, or dialogs.

Instructions

Press a keyboard key (e.g. 'Enter', 'Escape', 'Control+a') on the page.

No key is treated as special: Enter, Space and anything else all send whatever the page decides to send, and that is judged when it happens. Set submits=true if you are deliberately sending a form. A key that makes the page navigate where no approval reaches is answered blocked_by_policy and the tab has not moved (see click); one that opens a tab answers new_tab: true and tab_count.

Set download=true if the key is meant to save a file: that asks for permission to write one, and the reply carries download once it is saved. A key that starts a download without it is cancelled and answered download_blocked; repeat it with download=true.

A native dialog the page raised is answered at once and listed under dialogs in the reply.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes
reasonNo
confirmNo
submitsNo
downloadNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so richly: it discloses blocked_by_policy for navigating keys, new_tab/tab_count for tab-opening keys, the download permission flow with download_blocked, and that native dialogs are answered under 'dialogs'. This is well beyond what any structured field provides.

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 core action is front-loaded and each paragraph adds distinct behavioral information rather than restating the schema. Some phrasing is dense and slightly redundant (e.g. 'that is judged when it happens'), keeping it from a 5.

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 5-parameter interaction tool with no annotations, the description covers the critical edge-case behaviors thoroughly, and an output schema exists so return values need not be spelled out. The remaining gap is the undocumented reason and confirm 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 0%, so the description must compensate. It explains submits and download in detail and gives key format examples ('Control+a'), but leaves two of five parameters (reason, confirm) entirely unexplained, so compensation is partial.

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 ('Press a keyboard key ... on the page') with concrete examples like 'Enter', 'Escape', 'Control+a'. It clearly conveys the action, but does not explicitly distinguish itself from siblings like type_text or click, only cross-referencing click for related behavior.

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 gives conditions for the flags ('Set submits=true if you are deliberately sending a form', 'Set download=true if the key is meant to save a file'), which is useful implied usage. However, it never states when to choose press_key over type_text or click, nor any prerequisite context for invoking the tool.

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