Skip to main content
Glama

Press a key

cotlet_browser_press
Destructive

Presses a key on the focused element: Enter to send, Tab to the next field, Escape to close a pop-up, arrows in a list or slider, or one character (a site's shortcut). Answers the page after it: the elements and text in view, with the same numbers.

Input Schema

NameRequiredDescriptionDefault
appNoLeave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote.
keyYesOne of Enter, Tab, Shift+Tab, Escape, Backspace, Delete, Space, ArrowDown, ArrowUp, ArrowLeft, ArrowRight, PageDown, PageUp, Home, End, or one character such as a or 5.
dialogNoHow to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog.
repeatNoTimes to press it. Default 1.
dialog_textNoText for a prompt dialog this step opens; implies accept.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / app / description
      Previous value: -"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser, also for an app without its own Cloud Browser."New value: +"Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
    • changedInput schema / properties / key / description
      Previous value: -"One of Enter, Tab, Shift+Tab, Escape, Backspace, Delete, Space, ArrowDown, ArrowUp, ArrowLeft, ArrowRight, PageDown, PageUp, Home, End, or a single character such as a or 5."New value: +"One of Enter, Tab, Shift+Tab, Escape, Backspace, Delete, Space, ArrowDown, ArrowUp, ArrowLeft, ArrowRight, PageDown, PageUp, Home, End, or one character such as a or 5."
    • changedInput schema / properties / repeat / description
      Previous value: -"Press it this many times, e.g. ArrowDown 3 times. Default 1."New value: +"Times to press it. Default 1."
  2. Changed2 schema fields changed
    • addedInput schema / properties / dialog
      Added value: +{
      +  "description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog.",
      +  "enum": [
      +    "accept",
      +    "dismiss"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / dialog_text
      Added value: +{
      +  "description": "Text for a prompt dialog this step opens; implies accept.",
      +  "maxLength": 1000,
      +  "type": "string"
      +}
  3. Changed4 schema fields changed
    • addedInput schema / properties / key / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "Enter",
      +      "Tab",
      +      "Shift+Tab",
      +      "Escape",
      +      "Backspace",
      +      "Delete",
      +      "Space",
      +      "ArrowDown",
      +      "ArrowUp",
      +      "ArrowLeft",
      +      "ArrowRight",
      +      "PageDown",
      +      "PageUp",
      +      "Home",
      +      "End"
      +    ]
      +  },
      +  {
      +    "pattern": "^[ -~]$"
      +  }
      +]
    • changedInput schema / properties / key / description
      Previous value: -"The key."New value: +"One of Enter, Tab, Shift+Tab, Escape, Backspace, Delete, Space, ArrowDown, ArrowUp, ArrowLeft, ArrowRight, PageDown, PageUp, Home, End, or a single character such as a or 5."
    • removedInput schema / properties / key / enum
      Removed value: -[
      -  "Enter",
      -  "Tab",
      -  "Shift+Tab",
      -  "Escape",
      -  "Backspace",
      -  "Delete",
      -  "Space",
      -  "ArrowDown",
      -  "ArrowUp",
      -  "ArrowLeft",
      -  "ArrowRight",
      -  "PageDown",
      -  "PageUp",
      -  "Home",
      -  "End"
      -]
    • addedInput schema / properties / repeat
      Added value: +{
      +  "description": "Press it this many times, e.g. ArrowDown 3 times. Default 1.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / app / description
      Previous value: -"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."New value: +"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser, also for an app without its own Cloud Browser."
  5. Changed1 schema field changed
    • changedInput schema / properties / app / description
      Previous value: -"Slug of an app the user enabled for agents, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."New value: +"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."
  6. Added

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already flag destructiveHint=true, openWorldHint=true, and non-idempotency, so the safety profile is covered structurally. The description adds two genuinely new facts: the keystroke goes to the currently focused element, and the tool returns a post-action snapshot of elements and text, so no follow-up read is needed. It does not explain why the action is destructive (submitting forms, confirming dialogs, triggering shortcuts), which is the one behavior an agent most needs warned about.

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 core action and then the return behavior; the key list earns its space because it doubles as usage guidance. The trailing phrase "with the same numbers" is slightly cryptic, but nothing is redundant.

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 five parameters at full schema coverage, rich annotations, and no output schema, the description covers the missing piece — what comes back after the press. It is complete enough to invoke correctly; only the destructive consequences of a keystroke are left 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%, so every parameter including dialog, dialog_text, and repeat is already documented, which sets the baseline at 3. The description only adds a gloss — "one character (a site's shortcut)" — for the single-character case; it adds nothing about app, dialog, or repeat semantics.

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?

"Presses a key on the focused element" names a specific verb and resource, and the key examples (Enter to send, Tab to next field, Escape to close a pop-up) make the effect concrete. It never names a sibling, so the boundary with cotlet_browser_type (text entry) or cotlet_browser_select (option choice) is left to 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 Guidelines4/5

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

The description supplies clear context for which key to choose in which situation, and "Answers the page after it" signals that a separate read step is unnecessary. It stops short of explicit alternatives or exclusions — nothing says to use cotlet_browser_type instead when the goal is entering a string.

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.