Skip to main content
Glama

bwb-browser

Browser Without Bloat — 136KB source. 26 tools. Static-first. Runs on your phone, survives it too.

A lightweight MCP server that gives any AI agent browser superpowers. Written by a guy in India on Termux because the existing tools were 200MB of "why" — then rewritten when Android kept killing those tools mid-run.


v4: The Browser Starts Only When It Must

v1–v3 made the server light but spawned Chromium for everything — including reading a README. Android's out-of-memory killer ate whole Termux sessions for that. v4 inverts the default:

  • Static-first fetch ladder — plain pages are fetched + extracted with zero Chromium. browser_goto returns mode: "static" in milliseconds. JS pages escalate to CDP automatically (mode: "browser" + reason). Dead URLs error without spawning anything.

  • Vigilance system — every tool response carries a [bwb resources] footer. On critical pressure bwb hibernates tabs itself, tears down at one tab, journals everything, and tells the agent what it did.

  • Survival profile--lean auto-enables on Termux (capped renderers, 3-tab cap, 5-minute mayfly teardown, 256MB JS heap). Runs on a 1GB VPS. Your tabs resurrect from the journal after any kill.

  • On-demand capabilitiesbrowser_download / browser_export ship as verbs, not weight. Missing backends (yt-dlp, reportlab) prompt for consent install. Nothing heavy is ever bundled.

Measured on-device: a single YouTube tab costs 746MB of Chromium tree. That's why the ladder exists.


Related MCP server: Browser-MCP Navigator

The Pitch (60 seconds)

Every other MCP browser tool ships a full browser binary. Playwright MCP? ~250MB. Puppeteer MCP? ~400MB. Chrome DevTools MCP? ~350MB.

bwb uses raw Chrome DevTools Protocol (CDP) — the same protocol Chrome speaks natively. It auto-detects the browser already on your system. No downloads. No binary mismatches. No "why is my disk full" panic.

Factor

bwb v4

Playwright MCP

Puppeteer MCP

Source size

~136KB

~50MB+

~100MB+

Published tarball

38.8 kB

Total install (npm)

~62MB, zero browsers

~250MB

~400MB

Bundled browser

None

Chromium (~200MB)

Chromium (~300MB)

Chromium spawns for plain pages

Never (static-first)

Always

Always

Works on Termux/Android

✅ Yes

Survives 1GB RAM / phone OOM

✅ Lean profile + vigilance

Zero native deps

✅ Yes

Live event streaming

Natural language interaction

Persistent sessions

CPU profile at idle

Mayfly teardown (Termux)

🐌

🐌


🔥 The Features That Actually Matter

1. browser_act — Talk to the Browser Like a Human

browser_act({instruction: "search for laptops under a thousand dollars"})

No findElement hell. No chaining 10 calls. bwb parses what you want, finds the right elements, interacts, and returns the result. Pure DOM heuristics — no LLM dependency, no API costs, no "the AI is thinking..." spinner.

2. browser_watch — See What the Page Is Doing

This is the one feature nobody else has. Your agent can listen to the page:

browser_watch({action: "start", events: ["console", "network"]})
// ... do stuff ...
const events = browser_watch({action: "poll"})
// → [{type: "console", text: "React mounted"}, {type: "network", url: "https://api.example.com/data", status: 200}]

Console logs. Network requests. JS exceptions. Page navigations. Your agent isn't flying blind anymore.

3. "Login Once, Agent Works for Days"

// Monday: Login
browser_saveCookies({name: "gmail"})

// Wednesday: Still logged in. Fresh browser. Zero fuss.
browser_loadCookies({name: "gmail"})
browser_goto({url: "https://gmail.com"})  // Already authenticated

Sessions persist across agent restarts, server restarts, even across different machines.

4. browser_diagnose — Lighthouse for Your AI Agent

One call gets you: performance metrics, console errors, broken images, meta tags, interaction count, and a health score. Your agent can self-diagnose instead of guessing.

5. Multi-Tab & Sessions

Create tabs, close them, switch between them, save cookies, load them back. Like a real browser. Because it is one.

6. Realistic Browser Profile

Normalizes navigator.webdriver, plugins, languages, and user-agent for testing environments. Not "stealth mode" — just honest fingerprint normalization so your tests actually match real user conditions.

7. Element Screenshots

Capture just one element — a login form, a chart, a product card — not the whole page:

browser_screenshot({selector: "#price-chart"})
browser_screenshot({selector: "h1"})           // The headline, cropped
browser_screenshot({fullPage: true})            // The whole page
browser_screenshot({})                          // Just the viewport

Every screenshot is saved to disk (Android: /storage/emulated/0/Download/bwb-screenshots/, desktop: ~/bwb-screenshots/) and returned to your agent as a base64 image.


What's New in 4.0.0 — "Lightweight Like Air"

Static-first fetch ladder

  • browser_goto no longer spawns Chromium for plain pages — fetch + extract in milliseconds (mode: "static"). JS pages escalate automatically (mode: "browser" + reason). Dead URLs error without spawning anything.

  • On-demand capabilitiesbrowser_download / browser_export ship as verbs, not weight. Missing backends prompt for consent install. Nothing heavy is ever bundled.

Vigilance system

  • Every tool response carries a [bwb resources] footer — MCP + Chromium MB, tabs, ok/watch/critical. browser_watch streams memory samples on its existing poll rhythm.

  • Thresholds act, then report — critical pressure hibernates tabs, tears down at one tab, journals everything. The agent reads about the save, never discovers the OOM.

Survival profile

  • --lean auto-enables on Termux — capped renderers, silenced background services, 3-tab cap, 5-minute mayfly teardown, 256MB JS heap. --nuclear opts into --single-process.

  • Tab journal + lazy restore — kills become resume points, not disasters. bwb --setup prints a survival guide.

Breaking

  • browser_title + browser_url folded into browser_status.targets. Still 26 tools — that's now a release gate.

Full story in the changelog. Older releases documented there too.


Quick Install

npm install -g bwb-browser
bwb --version
# → bwb-browser 4.0.0

Done. If you have Chrome/Chromium anywhere on your system, bwb finds it. No config files. No environment variables. Just works.

On Termux/Android:

pkg install chromium      # One-time
npm install -g bwb-browser
bwb

Yes, this runs on a phone. Yes, it's fully functional. Yes, I built it this way on purpose.


All 26 Tools

Tool

Description

browser_act

🔥 Natural language — "search for X", "click the button", "what's on this page"

browser_watch

🔥 Live event capture — console, network, errors, navigation

browser_diagnose

🔥 Full page health check — perf, errors, broken images, score

browser_fingerprint

🔥 Realistic browser profile for testing

browser_goto

Navigate — static-first, escalates to browser with reason

browser_screenshot

Take a screenshot — whole page, viewport, or a single element via selector

browser_html

Get page/selector HTML

browser_text

Get page/selector text

browser_back

Go back in history

browser_click

Click an element (native CDP)

browser_fill

Fill an input field (native CDP)

browser_elements

List interactive elements

browser_eval

Execute JavaScript

browser_setViewport

Change viewport size

browser_waitForSelector

Wait for element to appear/disappear

browser_newTab

Create new tab

browser_closeTab

Close a tab

browser_switchTab

Switch to a tab

browser_listTabs

List all tabs

browser_saveCookies

Save session to disk

browser_loadCookies

Load session from disk

browser_listSessions

List saved sessions

browser_download

Download media (needs system yt-dlp, consent-gated)

browser_export

Export md/txt/html (pdf/docx/pptx need pip libs, consent-gated)

browser_status

Status + live resources + active profile

browser_restart

Restart the browser


Where It Runs

Platform

Status

Notes

Termux/Android

Verified

pkg install chromium, that's it

Linux

Verified

Auto-detects Chrome/Chromium

macOS

Verified

Auto-detects Chrome.app

Windows

Verified

Auto-detects Chrome.exe

CI (GitHub Actions)

Verified

Uses system Chrome

Docker

Verified

Just need Chrome in container

Your Raspberry Pi

✅ Why not

Same npm install


MCP Agent Integration

Add this to any MCP-compatible agent's config:

{
  "mcpServers": {
    "bwb": {
      "command": "bwb"
    }
  }
}

Works with: Claude Code, OpenCode, Antigravity CLI, Cline, Continue.dev, Aider, Codex CLI, Cody, Windsurf, Cursor — literally anything that speaks MCP.

See AGENTS.md for copy-paste configs for each one.


The Backstory

Every browser automation tool assumes you have 400MB to spare and a desktop-class machine. That assumption excludes phones, cheap VPS boxes, Raspberry Pis, and CI runners — most of the world's computers.

bwb is engineered against the hardest constraint first: a memory-pressured device where every megabyte is contested. No bundled browser. No wrapper frameworks. Just raw CDP — the protocol Chrome speaks natively — plus a static-fetch ladder so Chromium only starts when JavaScript demands it. Mobile-first isn't a feature here. It's the design spec everything else has to survive.

The result is ~136KB of source that does what 400MB of dependencies do. Not better code — less code, held to budgets: 26 tools max, 60 kB tarball max, zero native modules. Constraints are features.

— Krish Tiwari (@krshforever)


Roadmap

  • bwb Cloud — hosted browser instances so your agent has a browser even when your laptop's asleep

  • browser_act v2 — multi-step with feedback loops (not just "search for X" but "research this topic and summarize")

  • Recording & Replay — record sessions, replay them, debug them

  • Browser pool — multiple isolated instances for CI parallelization


Support

If bwb saves you time, money, or a few brain cells:

No gating. No "pro" tier. No bait-and-switch. The code is MIT forever. If you can't or won't pay, that's genuinely fine — I built this because I wanted it to exist.


License

MIT — Krish Tiwari (@krshforever)

Available Tools

26 tools
browser_actA

GROUNDBREAKING: Natural language page interaction. One tool call does what normally takes 5-10. Examples: 'search for laptops under $1000', 'click the login button', 'go to google.com', 'fill email with test@test.com', 'extract the prices', 'scroll down'. Uses rule-based DOM heuristics — no LLM dependency.

ParametersJSON Schema
NameRequiredDescriptionDefault
instructionYesNatural language instruction for what to do on the page

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It reveals the implementation approach ('rule-based DOM heuristics — no LLM dependency'), which is useful, but omits caveats about failure modes, side effects of actions, or whether actions are irreversible. This leaves the agent with incomplete safety awareness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably sized but contains promotional fluff ('GROUNDBREAKING', 'One tool call does what normally takes 5-10') that does not add operational value. The examples are useful but could be trimmed. Front-loaded enough, but not every sentence earns its place.

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

Completeness3/5

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

The tool has a single parameter, no output schema, and no annotations. The description explains the interaction model and lists varied examples, giving a general sense of capability. However, it does not mention return values, error handling, or limitations (e.g., unsupported page states), which is needed for reliable use in complex browser automation contexts.

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

Parameters4/5

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

Schema coverage is 100% with one instruction parameter, so baseline is 3. The description adds value through concrete examples of acceptable instructions, clarifying the natural language format and range of intents beyond the schema's minimal 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?

Clearly states it performs natural language page interaction, a distinct capability from sibling tools like browser_click, browser_fill, and browser_goto. The examples ('search for laptops under $1000', 'click the login button', 'fill email') concretely illustrate the scope.

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?

Implies use as a higher-level alternative to multiple discrete tool calls ('One tool call does what normally takes 5-10'). Provides examples across navigation, clicking, filling, extraction, and scrolling, which signal when it applies, but does not explicitly say when to prefer sibling tools like browser_eval or browser_waitForSelector.

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

browser_backA

Go back in browser history (like clicking the browser back button).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description bears the burden. It analogizes to a browser back button, which conveys typical behavior but does not specify effects if there is no history, or whether it waits for page load. It is adequate but not detailed.

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 a single, front-loaded sentence that directly conveys the purpose with no extraneous words. Every word earns its place.

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 the tool has no parameters, no output schema, and no annotations, the description is largely complete for the action. It could mention additional behavioral details (e.g., no history leads to no action), but the current description is sufficient for a simple navigation tool.

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

Parameters4/5

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

The input schema has no parameters, so the description does not need to supplement parameter information. The analogy adds context beyond the empty schema, making the action clear. With 0 parameters, the baseline is 4.

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's function: 'Go back in browser history (like clicking the browser back button).' It uses a specific verb and resource, and the analogy distinguishes it from sibling tools like browser_goto or browser_click.

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

Usage Guidelines3/5

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

The description implies the use case (navigating back in history) but does not explicitly state when to use it or when not to, nor does it mention alternatives or conditions like requiring a history entry. It is minimal but adequate for a simple action.

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

browser_clickB

Click an element by CSS selector. Uses CDP Input.dispatchMouseEvent for native events.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector

TDQS

B3.3/5.0
Behavior2/5

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

The description mentions using CDP Input.dispatchMouseEvent for native events, but does not disclose other important behaviors such as scrolling into view, waiting for element, or error handling. Since annotations are absent, more transparency is needed.

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 concise with two sentences, no redundant information, and front-loads the main purpose.

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

Completeness3/5

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

Given the simplicity of a click action and no output schema, the description is somewhat complete but lacks details on return value, error scenarios, and coordinate behavior.

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?

The sole parameter 'selector' is fully described in the schema with 'CSS selector'. The tool description adds no extra meaning beyond that, so baseline score 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?

The description clearly states the tool clicks an element by CSS selector, using a specific verb and resource. It distinguishes from sibling tools like browser_goto, browser_fill, and browser_elements.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, scenarios, or exclusions.

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

browser_closeTabA

Close a browser tab by targetId. If no targetId provided, closes the active tab. Cannot close the last remaining tab — use browser_restart instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdNoTarget tab ID to close (optional, defaults to active tab)

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description must carry the behavioral burden. It discloses the default behavior, the limitation on closing the last tab, and the suggested alternative. Could be slightly richer (e.g., what happens to page state), but it is largely transparent for a simple close action.

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 deliver the core action, default, and a key exception. Every word earns its place; no redundancy or fluff.

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?

The tool is simple with one optional parameter and no output schema. The description covers the action, default, and edge case, and provides an alternative for the one forbidden scenario. It is fully self-contained for the given complexity.

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?

The schema already provides 100% coverage for the single parameter, including the optional default behavior. The description adds no new parameter-specific meaning beyond what the schema states, so the baseline of 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?

The description clearly states the action ('Close a browser tab'), the target ('by targetId'), and the default behavior when no ID is given. It distinguishes itself from sibling tools like browser_restart and browser_newTab by specifying exactly what it does.

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 explains the default behavior (closes active tab if no targetId) and provides an exclusion: cannot close the last tab, directing the user to 'browser_restart' as an alternative. This is precise when-to-use guidance.

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

browser_diagnoseA

Full page health diagnostic. Returns performance metrics, console errors, broken images, meta tags, and a health score. Like Lighthouse for your agent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions what the tool returns but not whether it is read-only, whether it executes scripts, or any potential side effects like modifying page state or requiring network requests. The absence of safety and side-effect disclosure is a significant gap for a diagnostic tool that could be heavy.

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 two sentences, front-loaded with the core purpose and immediately informative. The first sentence gives a crisp summary, the second adds a helpful analogy. No waste or redundancy, making it exceptionally concise.

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?

The tool is complex with multiple return types and no output schema. The description enumerates key return categories (performance metrics, console errors, broken images, meta tags, health score), which is a solid summary. However, it lacks details on how the health score is defined or any prerequisites (e.g., requiring a loaded page), leaving some gaps given the richness of the tool.

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

Parameters4/5

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

The input schema has zero parameters and 100% schema description coverage (empty). With no parameters to explain, the description adds no parameter-specific value, but the baseline 4 applies because there is nothing missing in that regard.

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 does a 'Full page health diagnostic' and lists specific outputs (performance metrics, console errors, broken images, meta tags, health score). This distinguishes it from sibling tools like browser_text or browser_html, which are focused on content retrieval rather than health assessment.

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

Usage Guidelines3/5

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

The description provides the analogy 'Like Lighthouse for your agent' which suggests a comprehensive audit use case, but it does not explicitly state when to use this tool versus alternatives (e.g., using browser_title for a quick check). There are no exclusions or direct comparisons to siblings, leaving usage guidance implied rather than explicit.

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

browser_downloadA

Download media from a URL (video, audio, subtitles, thumbnail). Requires yt-dlp on the system — if missing, returns install instructions instead of failing silently. No silent installs, ever.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesMedia URL
formatNoWhat to download
qualityNoQuality tier

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a good job exposing non-obvious behavior: it requires yt-dlp, returns install instructions instead of failing silently if it is missing, and never performs silent installs. It does not describe return values or file effects, but the most surprising behavioral traits are disclosed.

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 two efficient sentences: the primary action is front-loaded and the dependency caveat follows immediately. There is no filler, duplication of schema fields, or unnecessary detail.

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 three parameters, no annotations, and no output schema, the description covers the main invocation concern: the external dependency and what happens when it is absent. It does not specify the return value or the download destination, but an agent can still select and call the tool correctly from the schema plus this context.

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 coverage is 100% and each parameter already has clear descriptions and enums. The description adds little semantic value beyond restating the artifact types that already appear in the format enum, so the baseline score of 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?

The description names a specific verb and resource: 'Download media from a URL' with the artifact types enumerated (video, audio, subtitles, thumbnail). This clearly differentiates it from the sibling browser_* tools that deal with navigation, clicking, screenshots, or page content.

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

Usage Guidelines3/5

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

The intended use is implied clearly: use this when you need to download media from a URL. However, it does not explicitly say when to prefer this tool over a sibling or when not to use it, and the yt-dlp requirement reads as a prerequisite rather than comparative usage routing.

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

browser_elementsB

List interactive elements by kind: links, buttons, inputs, headings.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesElement kind

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It only says 'list' but does not clarify if elements must be visible, what happens if none match, or any side effects. Minimal behavioral context.

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?

The description is a single concise sentence that clearly conveys the purpose. However, it could be more structured (e.g., listing return type) without losing conciseness.

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

Completeness2/5

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

For a tool that returns a list of elements, the description lacks details about the output format, attributes returned, or any filtering behavior. Given no output schema, more information is needed for full completeness.

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 coverage is 100% and the parameter has an enum with descriptions. The description echoes the enum values, adding no new meaning beyond what the schema already provides. 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?

The description states exactly what the tool does: list interactive elements by kind, specifying the four kinds (links, buttons, inputs, headings). It uses a specific verb 'list' and distinct resource 'interactive elements', clearly differentiating from sibling tools like browser_click or browser_goto.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not inform the agent when to use this tool (e.g., before interacting with page) or when not to (e.g., if only text needed). No alternatives are mentioned.

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

browser_evalC

Execute JavaScript in the page context.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesJavaScript expression

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states 'execute JavaScript'. It fails to mention whether the execution is synchronous, what happens to return values, security implications, or potential side effects (e.g., DOM modifications). This is insufficient for safe and effective use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence), but conciseness comes at the cost of informativeness. It is front-loaded and efficient, yet it sacrifices necessary detail, earning a middle score.

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

Completeness2/5

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

Given the tool's potential for arbitrary execution (no output schema, no annotations), the description is incomplete. It omits return behavior, error handling, and scope of execution. The single parameter is documented only minimally, leaving critical gaps for an AI agent.

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 coverage is 100%, and the description adds no extra meaning beyond the schema's 'JavaScript expression' description. The value conveyed is identical, so it meets the baseline of 3 for high coverage without adding new insight.

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 clearly identifies the action (execute JavaScript) and the context (page context), distinguishing it from sibling tools like browser_click or browser_goto which perform specific UI actions. However, it lacks specificity about the execution environment or return value, making it slightly less than exemplary.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., browser_watch or other interaction tools). There are no prerequisites, exclusions, or context hints, leaving the agent to infer appropriate usage from the name alone.

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

browser_exportA

Export findings/text to a file. md/txt/html always work (zero deps). docx/pdf/pptx need python libs — if missing, returns install instructions. No silent installs.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesContent to export (markdown accepted)
titleNoDocument title
formatNoOutput format
output_pathNoWhere to write the file

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states dependency behavior, the return of install instructions on missing libraries, and the 'no silent installs' policy. It omits details like success return value or overwrite behavior, but the core side effects and failure paths are well covered.

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 a tight two-sentence structure. The first sentence front-loads the primary purpose ('Export findings/text to a file'), and the second delivers dependency and policy information. Every word earns its place, with no filler or repetition of schema fields.

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 tool with a simple four-parameter schema and no output schema, the description covers the critical nuance: which formats work out of the box and what happens when dependencies are missing. It does not describe the success return value (e.g., written file path), but an agent can reasonably infer the action's outcome. The main missing piece is a note on whether an existing output file is overwritten.

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

Parameters4/5

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

The schema already covers all four parameters with 100% description coverage, so the baseline is 3. The description adds meaningful extra context by clarifying format-specific dependencies (md/txt/html vs docx/pdf/pptx), which is not present in the format property's schema description. This helps the agent understand why certain enum values may trigger install instructions.

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 starts with a clear verb and resource: 'Export findings/text to a file.' It also lists supported formatscars, which adds specificity. However, it does not explicitly distinguish itself from the sibling tool browser_download, leaving the agent to infer that 'export' means writing provided content to a file rather than downloading from a webpage.

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 gives actionable dependency guidance: md/txt/html always work, while docx/pdf/pptx need python libs and fall back to install instructions. It also states a clear policy ('No silent installs'). It does not name alternatives or explicitly state when not to use this tool, but the context strongly implies it is for writing content to a file.

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

browser_fillB

Clear and fill an input field with text using native CDP Input.insertText.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to fill
selectorYesCSS selector for input

TDQS

B3.4/5.0
Behavior3/5

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

Discloses the method ('CDP Input.insertText') and mentions clearing the field, but does not elaborate on side effects (e.g., event triggering, hidden inputs). Annotations are absent, so the description carries full burden but leaves gaps.

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?

Single sentence of 14 words, front-loaded with key action. Efficient but could benefit from a brief usage note without becoming verbose.

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

Completeness3/5

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

No output schema, so description should hint at return value or success/failure. Lacks details on error handling, focus requirements, or what happens after fill. Adequate for a simple tool but not fully complete.

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 covers both parameters with descriptions. Description adds no extra meaning beyond schema – it reiterates the action but does not clarify formatting, escape rules, or behavior for special characters.

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?

Description clearly states the action: 'Clear and fill an input field with text'. It specifies the resource ('input field') and the verb ('fill'), and distinguishes from sibling tools like browser_click or browser_text.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like browser_eval or browser_click for filling forms. No mention of prerequisites (e.g., page must be loaded, input must be visible) or when not to use.

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

browser_fingerprintA

Apply a realistic browser fingerprint to reduce false-positive automation detection in CI/testing. Normalizes navigator.webdriver, plugins, languages, chrome.runtime, and user-agent for more realistic test conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the full burden. It discloses the specific properties modified (navigator.webdriver, plugins, languages, chrome.runtime, user-agent), which is solid behavioral insight. It does not mention persistence or reversibility, so it isn't fully comprehensive.

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 concise sentences with no redundancy; the first gives the purpose and the second elaborates on the mechanism. Highly front-loaded and efficient.

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 zero-parameter tool with no output schema, the description covers the action, rationale, and specific behaviors. Minor gaps include not noting session persistence or interaction with other tools, but for the simplicity, it's nearly complete.

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

Parameters4/5

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

The input schema is empty (0 parameters), so there's nothing to explain. The description appropriately focuses on behavior. With no parameters, the baseline is 4.

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 uses the specific verb 'Apply' and names the resource 'browser fingerprint,' clearly distinguishing it from navigation and DOM manipulation tools like browser_goto and browser_click. It also enumerates the exact properties normalized, leaving no ambiguity about the tool's scope.

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?

It explicitly states the intended context: 'in CI/testing' and the goal 'to reduce false-positive automation detection.' While it doesn't list alternatives or exclusions, the stated use case is enough for an agent to decide when to invoke it.

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

browser_gotoA

Navigate to a URL. Returns page title and URL. v4: static-first — plain pages are fetched + extracted with zero Chromium; JS pages escalate to CDP automatically (see mode field).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to navigate to

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It usefully explains the static-first fetch strategy, automatic escalation to CDP for JavaScript-heavy pages, and that the result includes title and URL. It does not mention side effects such as replacing the current page state or wait-for-load behavior.

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 front-load the core purpose and return values, then add a compact, relevant note about static-first behavior. Every sentence earns its place with no filler or repetition.

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 one-parameter navigation tool, the description covers the essential inputs, outputs, and the static-vs-JS handling strategy. The main gap is the reference to a 'mode field' without explaining its possible values, especially since no output schema is provided to fill that in.

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?

The single parameter is already fully described in the schema ('URL to navigate to'), and the description only repeats the notion of a URL. Since schema coverage is 100%, the baseline of 3 applies; the description adds no extra guidance about URL formats or edge cases.

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 clearly states a specific action ('Navigate to a URL') and identifies key return values ('Returns page title and URL'). It is easy to tell this is the core navigation tool, but it does not explicitly differentiate itself from sibling navigation-related tools such as browser_newTab or browser_back.

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

Usage Guidelines3/5

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

The intended use is implied: an agent should call this when it needs to navigate to a URL. However, the description gives no explicit guidance on when to prefer browser_goto over alternatives like browser_newTab, nor does it mention exclusions or prerequisites.

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

browser_htmlB

Get HTML source of the page or a CSS selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoOptional CSS selector

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description carries full responsibility. It fails to disclose behavioral traits such as whether it modifies state, requires permissions, or handles errors. It simply states the function without additional context.

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?

The description is a single sentence without fluff. It is front-loaded with the action. However, it could be slightly more informative without losing conciseness.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is adequate but incomplete. It doesn't clarify behavior when selector is omitted (full page) or when selector matches multiple elements.

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% (single parameter 'selector' described as 'Optional CSS selector'). The description adds no new meaning beyond the schema, so baseline score of 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?

The description clearly states the verb 'Get' and the resource 'HTML source', with an optional CSS selector. It distinguishes from sibling tools like browser_text (which gets text) and browser_screenshot (which gets images).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. While the description implies it's for HTML, it doesn't mention scenarios or exclusions (e.g., use browser_text for visible text). The sibling list provides context but no direct direction.

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

browser_listSessionsA

List all saved browser sessions with cookie counts and save dates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It accurately describes the read-only listing behavior and output fields, but does not disclose additional traits such as return format or potential side effects, though none are expected for a list operation.

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 a single, well-structured sentence that conveys all essential information without any unnecessary words.

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 no parameters and no output schema, the description adequately explains what the tool does and partially describes the return values. It does not specify the structure or format of the returned list, but given the simplicity, it is nearly complete.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds value by indicating the output content (cookie counts and save dates), which provides meaning beyond the empty 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 lists all saved browser sessions and specifies the included data (cookie counts, save dates). It uses a specific verb and resource, distinguishing it from sibling tools like browser_listTabs.

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

Usage Guidelines3/5

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

Usage is implied by the listing nature of the tool, but the description does not explicitly state when to use it or contrast it with alternatives. No exclusions are mentioned, so it is adequate but lacks explicit guidance.

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

browser_listTabsA

List all open browser tabs with their IDs, titles, URLs, and active status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are present, so the description must convey safety and behavior. The verb 'List' strongly implies a read-only operation, and the description discloses the exact output fields, providing reasonable transparency for a simple query tool. It lacks explicit statements about side effects or browser requirements, but none are strongly expected for a list operation.

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?

A single sentence with no filler; the tool's action and output contents are specified immediately. Every phrase adds value.

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 simple list operation with no output schema, the description adequately covers return content (IDs, titles, URLs, active status). Minor omissions like empty-tab-list behavior or error conditions prevent a perfect score.

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

Parameters4/5

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

The tool has zero parameters, so the input schema carries no burden. The description correctly implies that no arguments are needed, meeting the baseline for a parameterless tool.

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 uses a specific verb ('List') with a clear resource ('all open browser tabs') and enumerates the returned fields (IDs, titles, URLs, active status). This clearly distinguishes it from sibling tools like browser_newTab or browser_closeTab, which modify tabs, and from browser_status, which likely reports a single tab or browser state.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool over alternatives such as browser_status or browser_listSessions. The description only states what it does, leaving the agent to infer the appropriate context from the tool name and sibling set.

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

browser_loadCookiesA

Load a saved browser session (cookies) from disk. Navigate to the target domain after loading for the cookies to take effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSession name to load (e.g., 'twitter-login')

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that navigation is required for cookies to take effect, which is valuable, but it does not explain whether loading overwrites or merges existing cookies or what happens if the session name doesn't exist. This is some but not rich context.

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 two sentences with no redundant wording. The first sentence states the purpose, and the second adds a critical usage note, making it efficient and well-structured.

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 the tool's simplicity (one parameter, no output schema), the description adequately covers the essential information for correct invocation: what it does and the required post-step. It lacks explicit error behavior or cookie-overwrite semantics, but these are not critical for a single-parameter load tool.

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?

The input schema has 100% coverage with a clear description for the 'name' parameter, so the baseline is 3. The tool description adds no additional semantic detail about the parameter beyond what the schema already provides.

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 action ('Load') and the resource ('saved browser session (cookies) from disk'), making it distinct from sibling tools like browser_saveCookies and browser_listSessions. It also includes the important follow-up requirement to navigate to the target domain, which fully clarifies its scope.

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 provides clear context on how to use the tool by instructing the user to navigate after loading, but it does not explicitly mention when not to use it or name alternatives. This is a minor gap, so it earns a 4 rather than a 5.

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

browser_newTabA

Create a new browser tab, optionally navigate to a URL. Automatically switches to the new tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to navigate to in the new tab (optional)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosure. It reveals the important behavioral detail that the new tab is automatically switched to, which is not inferable from the schema. It does not, however, mention any potential side effects (e.g., if the URL is invalid or if a blank tab is opened). For a low-complexity tool, this is good but not exhaustive, hence a 4.

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 two sentences long, front-loaded with the core action, and every word adds value. It states the primary function, the optional behavior, and the automatic switching without any redundancy or filler.

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?

For its simplicity (1 optional parameter, no output schema, no annotations), the description provides complete information: what the tool does, the optional navigation, and the automatic switching. There are no hidden complexities requiring further explanation, making this a fully complete description.

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%, with the 'url' parameter described as 'URL to navigate to in the new tab (optional)'. The tool description adds no further meaning beyond restating this in prose ('optionally navigate to a URL'). Since the schema already fully documents the parameter, a baseline score of 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?

The description clearly identifies the action: 'Create a new browser tab' with an optional navigation step, and distinguishes itself from siblings like browser_goto (which navigates the current tab) and browser_switchTab (which switches to an existing tab) by explicitly mentioning the automatic switch. This is a specific verb+resource+scope statement.

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 implies when to use the tool: when a new tab is needed, optionally with a URL, and notes that it automatically becomes the active tab. It does not explicitly name alternatives or state exclusions, but the context is clear for a simple browser operation. A score of 4 is appropriate for clear context without explicit exclusions.

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

browser_restartA

Cleanly restart the browser process. Useful for freeing memory, clearing state, or recovering from issues during long-running sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the restart is 'clean' and useful for 'clearing state', which hints at side effects like losing session data. However, it does not explicitly warn that all tabs and sessions will be closed or that cookies/saved state may be lost, which are important for a restart operation. It is not misleading but is not fully transparent about the full extent of state reset.

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 concise, with two sentences that lead with the action and immediately follow with concrete use cases. Every word adds value — there is no fluff or repetition. It is well-structured and front-loaded.

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

Completeness3/5

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

For a parameterless tool, the description covers the core purpose and usage scenarios. However, given the surrounding context (browser session management, cookies, multiple tabs), it omits important caveats like the loss of open tabs and saved sessions. This is a gap that could lead an agent to invoke it without understanding how disruptive a restart is. The description is adequate but not fully complete.

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

Parameters4/5

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

The tool has zero parameters, so per the rubric the baseline is 4. The description does not need to add parameter semantics, and it does not attempt to. This score reflects the simplicity of the parameterless input 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's purpose: to cleanly restart the browser process. It specifies the resource (browser process) and the action (restart), and distinguishes from siblings like browser_closeTab or browser_newTab by targeting the entire process rather than individual tabs. The additional context about freeing memory and recovering from issues reinforces the specific use case.

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 gives clear context for when to use the tool: freeing memory, clearing state, or recovering from issues during long-running sessions. It does not explicitly mention when not to use it or alternative tools, but the provided scenarios are specific and actionable, placing it just below the highest bar.

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

browser_saveCookiesA

Save the current browser session (cookies) to disk. 'Login once, agent works for days.' Sessions persist across agent and server restarts.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for this session (e.g., 'twitter-login', 'gmail')

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that sessions persist across agent and server restarts, a key non-obvious behavioral trait. It also implies persistence via the phrase 'works for days,' but it doesn't address overwrite behavior or failure modes.

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 only two sentences and front-loads the purpose. The quoted tagline and persistence statement are meaningful and concise, with no wasted words.

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 the tool's simplicity (one parameter, no output schema), the description covers the core action and persistence, which is sufficient. It could mention behavior for duplicate names, but that's a minor gap.

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?

The input schema already fully describes the 'name' parameter with examples, so the description adds no extra parameter semantics. Per the baseline rule for high schema coverage, this scores 3.

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 uses a specific verb ('Save') and resource ('current browser session (cookies)'), clearly distinguishing it from sibling tools like browser_loadCookies or browser_listSessions.

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 tagline 'Login once, agent works for days' implies the primary use case is saving an authenticated session after login, giving clear contextual guidance. It does not explicitly mention alternatives or when not to use, but the context is strong enough.

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

browser_screenshotB

Take a screenshot of the current page. Pass a CSS selector to capture just that element.

ParametersJSON Schema
NameRequiredDescriptionDefault
qualityNoJPEG quality 0-100 (default 80)
fullPageNoFull page screenshot (default false)
selectorNoCSS selector to capture only that element (optional)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only restates the selector behavior already present in the schema, and omits critical details such as the output format (e.g., base64 vs. file path) or whether the operation is non-mutating, leaving the agent uncertain about return values and side effects.

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 a single, efficient sentence that front-loads the core action. It is compact and every word contributes to understanding, with no redundancy or filler.

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

Completeness3/5

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

The tool has no output schema, so the description should explain what the screenshot returns, but it does not. However, the tool is simple with all optional parameters, and the purpose is clear. The missing return format and lack of explicit confirmation that it is a read-only operation create a moderate gap.

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 all three parameters already have descriptive text. The description adds no new semantic information, merely echoing the selector parameter's purpose. The baseline of 3 is appropriate because the schema handles parameter documentation.

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 uses a specific verb ('Take a screenshot') and identifies the resource ('current page'), with an optional CSS selector for element capture. This clearly distinguishes the tool from sibling browser tools like browser_html or browser_click.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention situations where a screenshot is preferred over textual tools, nor does it state any prerequisites or exclusions.

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

browser_setViewportA

Change the viewport size (width × height). Useful for responsive testing.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYesViewport width in pixels (default: 1280)
heightYesViewport height in pixels (default: 720)

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action and a use case, but does not explain whether the change applies to the current tab, whether it causes a reload, or how it affects subsequent operations. This is minimal information.

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, no filler. The first sentence states the action, the second gives the use case. Very efficient.

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

Completeness3/5

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

For a simple setter with two parameters and no output schema, the description is adequate but could mention the scope (current tab) and that the change applies to subsequent browser interactions. Given the minimal complexity, a score of 3 is appropriate.

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?

The schema already provides complete descriptions for both parameters (width and height with units and defaults). The description 'width × height' adds no new meaning, so it meets the baseline of 3.

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 uses a specific verb 'Change' and identifies the resource 'viewport size' with dimensions. It clearly distinguishes from sibling tools like browser_goto or browser_screenshot by focusing on viewport configuration.

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 phrase 'Useful for responsive testing' provides a clear context for when to use the tool, though it does not explicitly exclude alternatives. There is no competing viewport tool among siblings, so this guidance is sufficient.

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

browser_statusA

Get browser and page status including opened tabs and connection info. v4: includes live resource readings (MCP + Chromium MB, budgets) so the agent sees pressure before Android does.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It communicates that this is a read-only status snapshot and adds non-obvious detail about live MCP/Chromium memory readings and budgets. It does not describe the exact response format or failure behavior, but it is reasonably transparent for a status getter.

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 two compact sentences with no filler. It front-loads the core purpose, then adds a version note that provides genuinely useful behavioral context about resource readings.

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 parameterless status tool with no annotations and no output schema, the description covers the key bases: purpose, included data, and practical rationale. It does not define the return shape, but that is a minor gap for this simple getter.

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

Parameters4/5

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

The tool has zero parameters and the schema coverage is 100%, so there is no parameter semantics burden on the description. Per the baseline for zero-parameter tools, this dimension is well satisfied.

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 names a specific operation, 'Get browser and page status', and enumerates its contents: opened tabs, connection info, and live resource readings. This clearly distinguishes it from navigation and interaction siblings, though it does not explicitly differentiate it from browser_diagnose or browser_listTabs, which could partially overlap.

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

Usage Guidelines3/5

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

The phrase 'so the agent sees pressure before Android does' implies the tool is useful for proactive resource monitoring, but there is no explicit when-to-use or when-not-to-use guidance. It does not name alternatives such as browser_diagnose or browser_listTabs or explain when one should be preferred.

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

browser_switchTabA

Switch to a different browser tab by targetId.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget tab ID to switch to

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the action and parameter, with no mention of side effects, error handling, or return value, leaving the agent without insight into what happens after switching.

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 a single sentence with no redundant words. It is concise and to the point, earning its place without unnecessary elaboration.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema, so the description and schema provide a basic understanding. However, it lacks guidance on how to obtain targetId (e.g., via browser_listTabs) and what happens after switching, making it minimally sufficient but not fully complete.

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?

The input schema fully describes targetId as 'Target tab ID to switch to' (100% coverage). The description adds no new semantic detail beyond restating that switching is done 'by targetId', so the baseline of 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?

The description clearly states the verb 'Switch' and the resource 'browser tab' with the mechanism 'by targetId'. It is distinct from sibling tools like browser_newTab, browser_closeTab, and browser_goto.

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 usage context is clear: you need a targetId (likely from browser_listTabs) to switch to an existing tab. It does not explicitly mention alternatives or prerequisites, but the purpose is unambiguous and distinct from other tab-related tools.

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

browser_textB

Get visible text content of the page or a CSS selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoOptional CSS selector

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It mentions 'visible text content' but does not clarify what 'visible' entails (e.g., hidden elements, scripts), nor does it specify if the tool waits for page load or returns whitespace-trimmed text.

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 a single sentence that efficiently communicates the tool's function with no unnecessary words. It is front-loaded and concise.

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

Completeness2/5

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

Given the lack of an output schema and the presence of many sibling tools (e.g., browser_eval), the description is too brief. It does not specify the format of the returned text (e.g., plain string, lines), what happens when no selector is provided, or any side effects.

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% for the only parameter 'selector', which is described as 'Optional CSS selector'. The tool description adds that it retrieves text content from that selector, providing minimal additional context beyond the 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 retrieves visible text content from a page or a specific CSS selector. It distinguishes from sibling tools like browser_html (HTML content) and browser_title (page title).

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not specify when to use this tool versus alternatives like browser_elements or browser_eval, nor does it mention prerequisites or limitations.

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

browser_waitForSelectorA

Wait for a CSS selector to appear (visible) or disappear from the DOM. Polls every 200ms until found or timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoMax wait time in ms (default: 10000)
visibleNoRequire element to be visible (non-zero dimensions, default: true)
selectorYesCSS selector to wait for
disappearNoWait for element to disappear instead of appear (default: false)

TDQS

A3.6/5.0
Behavior3/5

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

Without annotations, the description carries the full burden. It discloses polling interval (200ms) and timeout behavior, but does not mention what happens on timeout (error? return null?) or whether the tool returns the element. The return value is unspecified.

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?

The description is a single clear sentence that immediately conveys the purpose. It is efficient and front-loaded, though it could include additional details without becoming verbose.

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

Completeness3/5

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

The description covers the core waiting behavior and polling, but lacks details on return value, error handling, or performance implications. For a tool with no output schema, more context on outputs would be beneficial.

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 the schema already documents all parameters. The description does not add extra meaning beyond confirming the overall behavior. Baseline of 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?

The description clearly states the tool waits for a CSS selector to appear or disappear, with polling details. It distinguishes from sibling tools like browser_click or browser_fill by focusing on waiting rather than action.

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

Usage Guidelines3/5

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

The description implies usage for waiting on DOM conditions but does not explicitly state when to use this tool over alternatives or provide usage boundaries. It lacks guidance on prerequisites or when not to use.

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

browser_watchA

GROUNDBREAKING: Live capture of page events (console, network, navigation, exceptions). Start recording, browse around, then poll to see everything that happened.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesstart=begin recording, poll=get events since last poll, stop=cleanup
eventsNoEvent types to capture (default: all)

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It transparently explains the recording-polling model, indicating that events are captured asynchronously and retrieved via polling. It also lists the event types. It does not mention resource limits or automatic cleanup, but the schema's 'stop' action covers cleanup, and the overall behavior is well conveyed.

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?

The description is concise, using two sentences to convey the core behavior and workflow. The 'GROUNDBREAKING:' prefix is unnecessary hype and slightly detracts, but overall the description is well-structured and appropriately sized.

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 the tool's moderate complexity (two parameters, no nested objects) and no output schema, the description provides sufficient context: what events are captured, the start-poll-stop workflow, and the fact that events are collected over time. It could be more specific about the return format, but this is not critical for basic usage.

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 the schema already fully documents the 'action' and 'events' parameters. The description enumerates event types but adds no additional semantic value beyond what the schema provides. Baseline score of 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?

The description clearly states the tool's purpose: 'Live capture of page events (console, network, navigation, exceptions).' It uses a specific verb 'capture' with a resource, and the focus on page events distinguishes it from sibling navigation and interaction tools.

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 provides a clear usage pattern: 'Start recording, browse around, then poll to see everything that happened.' This implies when to use the tool, though it does not explicitly discuss alternatives or when not to use it. The workflow guidance is strong enough to guide an agent.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv4.0.0
    • Addedbrowser_download
    • Addedbrowser_export
    • Removedbrowser_title
    • Removedbrowser_url
  2. 12 tool updatesv3.2.0
    • Addedbrowser_act
    • Addedbrowser_closeTab
    • Addedbrowser_diagnose
    • Addedbrowser_fingerprint
    • Addedbrowser_listSessions
    • Addedbrowser_listTabs
    • Addedbrowser_loadCookies
    • Addedbrowser_newTab
    • Addedbrowser_restart
    • Addedbrowser_saveCookies
    • Changedbrowser_screenshot1 field changed
      • addedInput schema / properties / selector
        Added value: +{
        +  "description": "CSS selector to capture only that element (optional)",
        +  "type": "string"
        +}
    • Addedbrowser_switchTab
  3. 15 tool updatesv2.0.4
    • First observedbrowser_back
    • First observedbrowser_click
    • First observedbrowser_elements
    • First observedbrowser_eval
    • First observedbrowser_fill
    • First observedbrowser_goto
    • First observedbrowser_html
    • First observedbrowser_screenshot
    • First observedbrowser_setViewport
    • First observedbrowser_status
    • First observedbrowser_text
    • First observedbrowser_title
    • First observedbrowser_url
    • First observedbrowser_waitForSelector
    • First observedbrowser_watch

TDQS

B3.4/5.0

Scored across 26 tools

Disambiguation4/5

Most tools have clearly distinct purposes: navigation, DOM extraction, tab management, cookies, sessions, and utility actions are clearly separated. Minor overlap exists between browser_status and browser_listTabs (both report on open tabs) and between browser_text and browser_html (both retrieve page content), but these are distinguishable by their output types.

Naming Consistency3/5

The browser_ prefix provides a consistent namespace, but the action portion mixes conventions: standalone verbs (click, fill, goto, watch), nouns (text, html, status), and camelCase compounds (setViewport, waitForSelector, listTabs, saveCookies). This is readable but lacks the uniform verb_noun pattern seen in the highest-coherence servers.

Tool Count3/5

At 26 tools, the server technically crosses the 25-tool 'too many' threshold, but the count is justified by the broad scope of browser automation (navigation, DOM, tabs, cookies, download/export, diagnostics). It feels heavy rather than bloated, with only a few niche tools like browser_fingerprint and browser_export being arguably optional.

Completeness4/5

The domain is well covered: navigation, interaction, DOM extraction, tab management, sessions, waiting, and diagnostics all have dedicated tools. Minor gaps exist—there is no explicit browser_forward, browser_reload, or browser_scroll—but these can be worked around with browser_eval or browser_act, so agents won't hit dead ends.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    single-binary MCP server that gives AI agents a browser. 66 tools for navigation, form filling, data extraction, screenshots, and DOM diffing — built on pure Chrome DevTools Protocol.
    13
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects AI agents to browser DevTools via CDP, enabling real-time access to console logs, network requests, and page state.
    -
  • A
    license
    A
    quality
    A
    maintenance
    MCP server that lets AI agents drive your real Chromium browser with your existing signed-in sessions, providing visible, local, and inspectable automation for tasks like navigation, clicking, typing, and form filling.
    25
    1
    Apache 2.0