Skip to main content
Glama

Drag on the page

cotlet_browser_drag
Destructive

Drags from one element or point to another: a card between columns, a piece on a board, a slider's handle. Answers the page after it: the elements and text in view, with the same numbers.

Input Schema

NameRequiredDescriptionDefault
toYesAn element number, or x and y 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.
fromYesAn element number, or x and y of the screenshot.
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.
dialog_textNoText for a prompt dialog this step opens; implies accept.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 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 / from / 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 / from / 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."
    • changedInput schema / properties / to / 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 / to / 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. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true, and non-idempotent, so the safety profile is covered. The description adds real value beyond that by stating the post-action observation ("Answers the page after it: the elements and text in view, with the same numbers"), which tells the agent it gets a fresh numbered snapshot for follow-up steps. It says nothing about the dialog/dialog_text behavior or irreversibility of drag outcomes, keeping it from a 5.

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?

Two short sentences, zero filler. The action and its endpoints come first, the return behavior second, and the illustrative examples are embedded rather than listed separately.

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 five-parameter tool with nested from/to objects and no output schema, the description covers the action, the endpoint duality, and the return snapshot, which is what an agent needs to chain steps. The omission of dialog handling is a minor gap since the schema documents those fields fully.

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 each nested coordinate/element field, the app slug, and the dialog enum are documented in-schema. The description adds no semantics beyond the schema, so the baseline 3 applies.

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?

The description gives a specific verb and mechanics: "Drags from one element or point to another," and concretizes it with three recognizable scenarios (card between columns, piece on a board, slider handle). It is unmistakably distinct from cotlet_browser_click or cotlet_browser_hover by name and by the two-endpoint structure, though it does not explicitly name those siblings.

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 example scenarios implicitly tell an agent when this tool is the right choice: drag-and-drop reordering, board moves, slider manipulation. There is no explicit "do not use this for X, use click instead" exclusion or precondition guidance, so it falls short of the 5 bar.

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.