Skip to main content
Glama
feder-cr

invisible-playwright-mcp

by feder-cr

browser_snapshot

Capture a page's visible title, URL, and interactive elements, each with a precise selector or click coordinates, enabling reliable next actions without ambiguity.

Instructions

Title, url, and the interactive elements that are actually visible.

Each element carries a selector when one can reach it: pass that string to browser_click or browser_type VERBATIM. It is built to match exactly one element, which the obvious selector often does not - measured across 958 elements on real pages, 88% could be addressed but only 48% unambiguously, and Playwright acts on the first match, so a caller aiming at the third of five identical links would silently hit the first.

Elements with no selector carry at, the centre coordinates, for browser_click_at.

Not the accessibility tree: on a real sign-up page a single country <select> contributes about two hundred <option> nodes, which fill the character cap before the form the caller was looking for appears at all.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
max_charsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.8.1
    • changedInput schema / properties / max_chars / default
      Previous value: -6000New value: +0
  2. First observedv0.1.0

TDQS

A4.3/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 burden, and it is unusually rich: it discloses the unique-selector guarantee, the 88%/48% real-world measurement, Playwright's first-match behavior, coordinate fallback for elements without selectors, and the character-cap rationale for excluding options. This lets an agent anticipate silent wrong-click failures.

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 dense but every sentence earns its place: the first line front-loads the output, the second paragraph gives selector safety guidance, and the third justifies the filtering behavior. No filler or restatement of the tool name.

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?

Given complexity and no annotations, the description covers output structure, selector semantics, coordinate fallback, and interaction routing impressively well. It falls just short of completeness by leaving the max_chars parameter unexplained and not explicitly distinguishing this tool from sibling read tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only max_chars with a default and no description, so schema coverage is 0%. The description mentions a 'character cap' but never says that max_chars controls it, how values behave, or what the default means; an agent cannot determine how to set this parameter from the description.

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 first sentence names exactly what is returned — title, url, and actually visible interactive elements — so an agent knows the resource and output. It also distinguishes itself from 'the accessibility tree' and explains why, which prevents confusing it with a DOM dump.

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 explains how to consume its output: pass selector VERBATIM to browser_click/browser_type, or use at coordinates with browser_click_at. It gives clear context for choosing the tool (visible interactive elements for interaction) but does not explicitly say when to prefer it over sibling read tools like browser_read_text or browser_read_html.

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