Skip to main content
Glama
yogesh-joshi-0333

browser-control-mcp-server

Browser Frames

browser_frames

List all iframes on the current page with their index, url, and name, then pass that index as frameIndex to browser_click, browser_type, or browser_get_dom to target content inside a specific frame.

Instructions

List all frames (iframes) on the current page, each with an index, url, and name. Pass that index as frameIndex to browser_click, browser_type, or browser_get_dom to target content inside that iframe — the main document is not part of this list navigation-wise, but IS included as index 0 if it has children. Note: shadow DOM (unlike iframes) needs no special tool — prefix any selector with "pierce/" (e.g. "pierce/.my-shadow-element") in browser_click/type/get_dom/hover/select_option to reach into shadow roots.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoForce a specific mode. Defaults to extension.
sessionIdNoPuppeteer session ID for headless mode. Skips mode selection.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.5.0

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden and does substantial work: it clarifies the main-document edge case (included as index 0 if it has children) and distinguishes iframe handling from shadow DOM handling. It doesn't cover error cases (e.g., what happens if no frames exist) or whether frames from cross-origin iframes are reachable, which slightly limits it.

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-loaded with purpose, then routing guidance, then a shadow-DOM caveat. The shadow DOM note, while helpful, is somewhat tangential for a tool whose job is listing frames, and adds length. Still tight and each sentence conveys actionable information.

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 no output schema and no annotations, the description adequately describes what's returned and how to use it. The missing piece is error/empty-state behavior and cross-origin frame reachability, which would help an agent know when this tool won't be useful.

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 mode and sessionId are already fully documented in the schema, and neither is mentioned in the description. The description references frameIndex — a parameter of sibling tools, not this one — which is useful routing context but doesn't add semantics to this tool's own parameters. Baseline 3 applies.

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 and resource ('List all frames (iframes) on the current page') and enumerates the returned fields (index, url, name). It distinguishes itself from DOM-focused siblings like browser_get_dom by scoping explicitly to frame enumeration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicitly tells the agent what to do next: 'Pass that index as frameIndex to browser_click, browser_type, or browser_get_dom.' Also handles the special case that the main document is index 0 only when it has children, and routes shadow DOM work to the pierce/ prefix instead.

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