Skip to main content
Glama

Click on the page

cotlet_browser_click
Destructive

Clicks element element, or point x, y of the screenshot; double double-clicks, button: right right-clicks. Answers the page after it: the elements and text in view, with the same numbers. Says when nothing changed. A link that would open a new tab opens in this one. Buttons that pay or buy, and sign-in and account pages, are refused.

Input Schema

NameRequiredDescriptionDefault
xNoInstead of `element`: pixels from the left of the screenshot.
yNoWith `x`: pixels from the top of the screenshot.
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.
buttonNoright opens the page's own context menu. Default: left.
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.
doubleNoDouble-click.
elementNoThe element's number from the last read or step answer.
dialog_textNoText for a prompt dialog this step opens; implies accept.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 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."
    • addedInput schema / properties / button
      Added value: +{
      +  "description": "right opens the page's own context menu. Default: left.",
      +  "enum": [
      +    "left",
      +    "right"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / element / description
      Previous value: -"The element's number in the element list of the current page."New value: +"The element's number from the last read or step answer."
    • changedInput schema / properties / x / description
      Previous value: -"Instead of `element`: pixels from the left of the screenshot (boards, canvases, maps)."New value: +"Instead of `element`: pixels from the left of the screenshot."
  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 / double
      Added value: +{
      +  "description": "Double-click.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / x
      Added value: +{
      +  "description": "Instead of `element`: pixels from the left of the screenshot (boards, canvases, maps).",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / y
      Added value: +{
      +  "description": "With `x`: pixels from the top of the screenshot.",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "element"
      -]
  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. Changed1 schema field changed
    • addedInput schema / properties / app
      Added value: +{
      +  "description": "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.",
      +  "pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
      +  "type": "string"
      +}
  7. Added

TDQS

A4.1/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: the tool answers with the page after the click (elements and text in view, same numbering), reports when nothing changed, and redirects new-tab links into the current tab. It also discloses a refusal policy for payment and sign-in targets. It does not say what the refusal looks like (error vs. message), which is the main remaining gap for a destructive, open-world action.

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 action and its two targeting modes, then the post-click answer, then the safety constraints. The telegraphic style is dense but every clause carries information; a slightly clearer phrasing of 'with the same numbers' would help, but no sentence is waste.

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 eight optional parameters and no output schema, the description covers the essentials: how to target, what modifiers exist, what comes back, and what is refused. It leaves dialog/dialog_text/app handling entirely to the schema and does not describe how a refusal is surfaced to the caller.

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 parameter already carries its own explanation, so the schema does the heavy lifting. The description restates the element-vs-coordinates targeting and the double/right modifiers but adds no syntax or constraint detail 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.

Purpose5/5

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

States a specific verb (clicks) plus both targeting modes (element number or x/y pixel point) and names the modifiers (double, button: right). It is clearly distinguishable from siblings like cotlet_browser_hover, cotlet_browser_drag, cotlet_browser_press and cotlet_browser_select, which cover other interactions.

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 when-not: buttons that pay or buy, and sign-in/account pages, are refused, which warns the agent away from those targets before it calls. It also states that links meant for a new tab open in this one, so the agent knows not to follow up with tab management. It stops short of naming sibling alternatives (e.g. hover vs click, press vs click) explicitly.

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.