Agent Browser
Server Details
A real Chromium browser agents can pay for per action over x402 (USDC on Base): navigate $0.005, extract $0.005, accessibility snapshot $0.005, act $0.01, screenshot $0.02, close free. Also runs free self-hosted over stdio via npx @scriptmasterlabs/agent-browser. Six tools with structured error codes and a public receipts log. Source: https://gitlab.com/timothy.walton45/agent-browser
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool has a clearly distinct role: navigate loads pages, act mutates/interacts, extract pulls repeated data or text, snapshot returns accessibility structure, screenshot captures pixels, and close ends sessions. The only potential overlap is extract vs. snapshot, but the descriptions explicitly separate their use cases by cost and output shape.
All tools consistently use the browser_ verb pattern in snake_case: browser_act, browser_close, browser_extract, browser_navigate, browser_screenshot, browser_snapshot. This is predictable and easy to scan.
Six tools is well-scoped for a browser automation agent, covering navigation, interaction, extraction, structure inspection, visual inspection, and session cleanup. Each tool earns its place without bloat.
The surface covers the core browser lifecycle: navigate, inspect structurally, inspect visually, interact, extract data, and close. Minor gaps like explicit back/forward, waiting, or tab management exist, but the current tools can handle most workflows with workarounds.
Available Tools
6 toolsbrowser_actAct on the current pageADestructiveInspect
Use for: interacting with the page — click, fill, type, select, submit, press. Returns the resulting page title, URL and text so you can verify the action landed. Don't use when: the target element is not on the current page — navigate or snapshot first. This tool can change remote state (it can submit forms).
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Value for fill/type/select, or key name for press (default Enter). | |
| action | Yes | The interaction to perform on the target element. | |
| selector | Yes | CSS selector of the target element. | |
| session_id | Yes | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| text | Yes | |
| title | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, so the safety profile is known; the description adds the concrete reason ('it can submit forms') and states what comes back (title, URL, text) for verification. What's missing is failure behavior or what happens on a stale/absent selector, which is relevant for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the positive case front-loaded, followed by the exclusion and the state-change caveat. Every sentence carries distinct information and nothing is repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still helpfully signals that the response lets you verify the action landed. Combined with the exclusion rule and state-change warning, an agent has enough to invoke it correctly; only error/retry behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the enum values, selector semantics and value/key default are all documented in the schema. The description's verb list mirrors the enum rather than adding syntax, ordering or constraint detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource ('the page') and enumerates concrete verbs (click, fill, type, select, submit, press), so an agent knows exactly what class of operation this is. It also distinguishes itself from siblings by pointing to navigate/snapshot when the target isn't on the current page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use for:' and 'Don't use when:' framing with named alternative tools (navigate, snapshot) for the excluded case. There is no ambiguity about when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_closeClose a browser sessionADestructiveInspect
Use for: ending a session and freeing its browser. Sessions also expire automatically after 10 idle minutes. Free on every door — closing is never charged.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
Output Schema
| Name | Required | Description |
|---|---|---|
| closed | Yes | |
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds genuinely non-annotation information: idle auto-expiry and that closing is never billed ('Free on every door — closing is never charged'). However, it omits the key destructive consequence — that closing discards cookies, login state and page position, which the session_id schema hints at but the description never states. With destructiveHint=true already flagged, this is a partial but not complete disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with 'Use for:', and every sentence carries information (purpose, idle expiry, cost). The phrasing 'Free on every door' is slightly idiosyncratic but still parses as a cost statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations already declare destructiveness and non-read-only behavior. Combined with clear purpose, idle-expiry and billing notes, the description is sufficient to call the tool correctly; only the state-loss implication is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and there is only one parameter, whose schema description already explains ID reuse and state persistence. The tool description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'ending a session and freeing its browser.' That is unambiguous and clearly distinct from the navigation/extraction siblings. It doesn't explicitly name a sibling to contrast with, which keeps it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use for: ending a session' gives the triggering condition directly, and the note that sessions expire automatically after 10 idle minutes helps an agent decide whether an explicit close is even necessary. There are no explicit 'when not to use' exclusions, but the primary guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_extractExtract data from the current pageARead-onlyInspect
Use for: pulling repeated elements (prices, titles, links) from the page a session is on, via a CSS selector, or the full page text when no selector is given. Returns one string per matched element. Don't use when: the page has not been loaded yet — call browser_navigate first.
| Name | Required | Description | Default |
|---|---|---|---|
| selector | No | CSS selector to extract. Omit for full page text. | |
| attribute | No | Attribute to read instead of text, e.g. href or src. | |
| session_id | Yes | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuinely useful behavior: one string per matched element and the no-selector fallback to full page text. It stops short of noting large-page cost or truncation behavior, but nothing is misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, scope first and exclusion second, with zero filler. Every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema is present so return values need not be explained, and the prerequisite sequencing is covered. The only gap is the attribute-reading capability, which an agent would have to discover from the schema rather than the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 selector, attribute and session_id with meaning. The description reinforces the selector/omission semantics but never mentions the attribute parameter or what omitting a selector does to the return shape across matched elements, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (extract) and resource (repeated elements — prices, titles, links — or full page text) plus the mechanism (CSS selector). This clearly separates it from siblings like browser_snapshot and browser_screenshot, which capture rather than extract structured values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly framed as 'Use for:' and 'Don't use when:', naming the prerequisite failure and the exact alternative (call browser_navigate first). An agent knows both when to reach for it and what to do instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_screenshotScreenshot the current pageARead-onlyInspect
Use for: visual verification — layout, images, charts, CAPTCHA presence, or evidence of page state. Returns a PNG image (JPEG if the PNG exceeds 2.5MB). Don't use when: you only need the page's content or structure — browser_extract and browser_snapshot are far cheaper in tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| full_page | No | Capture the full scrollable page instead of the viewport. | |
| session_id | Yes | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| bytes | Yes | |
| mime_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, and the description adds genuinely new behavioral context: return format is PNG, with automatic JPEG fallback above 2.5MB. It omits session-state implications (cookies, page position persisting across calls), but that is documented in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the decision rules, and every clause earns its place — the format threshold and the sibling routing guidance are both actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value structure needn't be spelled out, yet the description still flags the PNG/JPEG format detail an agent may care about. Combined with 100% schema coverage and clear annotations, nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters — including the session_id reuse semantics and full_page viewport-vs-scroll behavior — are fully documented in the schema. The description adds nothing parameter-specific, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (visual verification of page state) and immediately names the sibling tools it is not — browser_extract and browser_snapshot — so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly structured as 'Use for:' (layout, images, charts, CAPTCHA, evidence) and 'Don't use when:' (content/structure needed) with named alternatives and a token-cost rationale. Both the positive and negative conditions are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_snapshotAccessibility snapshot of the current pageARead-onlyInspect
Use for: understanding page structure cheaply and deterministically — returns the accessibility tree (roles, names, states) as compact YAML instead of pixels or raw HTML. This is the lowest-token way to decide what to click or fill next. Don't use when: you need visual layout or images — use browser_screenshot.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| snapshot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description adds valuable behavioral context beyond annotations: deterministic output, compact YAML format, low token cost, and suitability for deciding what to click or fill next. It stops short of describing pagination or size limits, but with an output schema present that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with zero waste, front-loading the primary use case before stating the exclusion. Every sentence contributes directly to correct tool selection or invocation context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only inspection tool with an output schema, the description provides everything needed: purpose, return format, cost characteristics, and the alternative to use for visual needs. No critical decision information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole session_id parameter is already well documented in the schema, including reuse semantics for cookies, login state, and page position. The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific capability: returning the accessibility tree (roles, names, states) as compact YAML for understanding page structure. It clearly distinguishes this from browser_screenshot by contrasting semantic structure with visual layout/images, allowing an agent to choose without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit 'Use for' guidance and an explicit 'Don't use when' condition, naming browser_screenshot as the alternative for visual layout or images. The decision boundary between cheap structural inspection and visual inspection is unambiguous.
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.
6 tool updates
- First observed
browser_act - First observed
browser_close - First observed
browser_extract - First observed
browser_navigate - First observed
browser_screenshot - First observed
browser_snapshot
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.