Skip to main content
Glama
obra

superpowers-chrome

by obra

use_browser

Control a Chrome browser to perform DOM actions: navigate, click, type, and more. Each action automatically saves screenshots and page content.

Instructions

Control persistent Chrome browser with automatic page capture.

Every DOM action (navigate, click, type, select, eval) auto-captures to the session dir:

  • {prefix}.png — viewport screenshot

  • {prefix}.md — page content as structured markdown

  • {prefix}.html — full rendered DOM

  • {prefix}-console.txt — browser console messages

Prefer reading these files to using 'extract' or 'screenshot' whenever possible.

Schema: 4 parameters — action, selector (CSS/XPath or null), payload (string or object), timeout (ms). selector targets a DOM element (null/omit for navigation, eval, tab management, etc.). payload is a string for simple actions (navigate=URL, type=text, eval=JS, keyboard_press=key). payload is an object for structured actions (set_viewport={width,height}, drag_drop={target}, etc.). Tabs are tracked as sticky state; use switch_tab to change the active tab. Use action='help' for full per-action payload shapes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform. action='help' lists all actions with payload shapes.
selectorNoCSS or XPath selector — what to act on. Null/omitted for actions that don't target an element (navigate, eval, list_tabs, etc.). XPath must start with / or //. dialog::accept and dialog::dismiss are special selectors for handling open dialogs.
payloadNoExtra data for the action. String for simple cases (navigate=URL, type=text, eval=JS, keyboard_press=key, set_profile=name, new_tab=URL). Object for structured cases (set_viewport={width,height,mobile?}, keyboard_press={key,modifiers:{shift?,ctrl?,alt?,meta?}}, extract={format:'text'|'html'|'markdown'}, screenshot={path?,fullpage?}, scroll={deltaX?,deltaY?} or direction string, drag_drop={x,y} or selector string for target, mouse_move={x,y,steps?,fromX?,fromY?}, file_upload={files:[...]}, get_console_messages={since:epochMs}, await_text=text string or {text,timeout?}, switch_tab=tab index/url-substring/title-substring). See action='help' for per-action payload shapes.
timeoutNoTimeout in ms for await_element / await_text actions.
tab_indexNoLegacy: behaves like switch_tab. Sets the active tab to this index before running the action. Prefer the switch_tab action.
Behavior5/5

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

Discloses automatic capture of screenshot, markdown, HTML, and console messages per action. Explains tab sticky state. Annotations do not provide these details, so the description adds significant behavioral context without contradiction.

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?

Well-structured with bullet points for capture files. Every sentence adds useful information. Concise without being terse; front-loaded with core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all key aspects: automatic captures, parameter usage, tab management, and hints for deeper documentation. Despite no output schema, the description is self-contained and provides sufficient context for correct tool invocation.

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

Parameters5/5

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

Schema coverage is 100%, but the description enhances understanding by clarifying when selector is null (navigation, eval, etc.), payload formats per action (string vs object), and legacy tab_index behavior. Adds value beyond schema.

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 description clearly states the tool controls a persistent Chrome browser with automatic page capture. It lists the actions and captures, making the purpose unmistakable. With no siblings listed, it stands alone as a comprehensive browser automation tool.

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?

Provides explicit guidance: prefer reading captured files over 'extract' or 'screenshot', use 'switch_tab' for tab changes, and use action='help' for full payload details. This tells the agent when to use specific features.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/obra/superpowers-chrome'

If you have feedback or need assistance with the MCP directory API, please join our Discord server