A real Chromium browser agents pay for per action in USDC via x402 — hosted MCP, free local stdio.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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).
The interaction to perform on the target element.
CSS selector of the target element.
Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser.
Value for fill/type/select, or key name for press (default Enter).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
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).
| Argument | Type | Description |
|---|---|---|
| value | string | Value for fill/type/select, or key name for press (default Enter). |
| action* | string | The interaction to perform on the target element. |
| selector* | string | CSS selector of the target element. |
| session_id* | string | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_id",
"action",
"selector"
],
"properties": {
"value": {
"type": "string",
"description": "Value for fill/type/select, or key name for press (default Enter)."
},
"action": {
"enum": [
"click",
"fill",
"type",
"select",
"submit",
"press"
],
"type": "string",
"description": "The interaction to perform on the target element."
},
"selector": {
"type": "string",
"description": "CSS selector of the target element."
},
"session_id": {
"type": "string",
"minLength": 1,
"description": "Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| session_id* | string | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"minLength": 1,
"description": "Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| selector | string | CSS selector to extract. Omit for full page text. |
| attribute | string | Attribute to read instead of text, e.g. href or src. |
| session_id* | string | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_id"
],
"properties": {
"selector": {
"type": "string",
"description": "CSS selector to extract. Omit for full page text."
},
"attribute": {
"type": "string",
"description": "Attribute to read instead of text, e.g. href or src."
},
"session_id": {
"type": "string",
"minLength": 1,
"description": "Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser."
}
},
"additionalProperties": false
}Use for: loading a web page in a real Chromium browser and reading it. Returns the page title, final URL and a clean text extract (up to 8000 chars). Don't use when: you only need raw HTML or an API response — a plain HTTP fetch is cheaper. Errors are structured: NAV_TIMEOUT, NAV_FAILED, INVALID_URL.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute http(s) URL to load. |
| wait_for | string | Optional CSS selector to wait for after load (max 10s). |
| session_id* | string | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_id",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Absolute http(s) URL to load."
},
"wait_for": {
"type": "string",
"description": "Optional CSS selector to wait for after load (max 10s)."
},
"session_id": {
"type": "string",
"minLength": 1,
"description": "Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| full_page | boolean | Capture the full scrollable page instead of the viewport. |
| session_id* | string | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_id"
],
"properties": {
"full_page": {
"type": "boolean",
"description": "Capture the full scrollable page instead of the viewport."
},
"session_id": {
"type": "string",
"minLength": 1,
"description": "Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| session_id* | string | Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"minLength": 1,
"description": "Session ID. Reuse the same ID to keep cookies, login state and page position across calls; a new ID starts a fresh browser."
}
},
"additionalProperties": false
}