Control your Chrome from chat: open websites, read what's on the page, click buttons, and fill in f…
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.
Low-level action batch (JSON array string). Pass tab_id when batch includes switch_tab, close_tab, mouse_click, scroll, or keys.
Control context tab; required for switch_tab/close_tab batches
Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mcp-browsergpt-browser-control https://nova.civai.co/mcp/agents/mcp-browsergpt-browser-control
Low-level action batch (JSON array string). Pass tab_id when batch includes switch_tab, close_tab, mouse_click, scroll, or keys.
| Argument | Type | Description |
|---|---|---|
| tab_id | string | Control context tab; required for switch_tab/close_tab batches |
| timeout_ms | integer | |
| actions_json* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"actions_json"
],
"properties": {
"tab_id": {
"type": "string",
"description": "Control context tab; required for switch_tab/close_tab batches"
},
"timeout_ms": {
"type": "integer"
},
"actions_json": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Click by snapshot ref (Cursor parity). Snapshot first.
| Argument | Type | Description |
|---|---|---|
| ref* | string | |
| tab_id* | string | |
| element | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"ref"
],
"properties": {
"ref": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"element": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Run dom input method chain (e.g. 2,7,0); use after list_input_methods on stubborn fields.
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| method | string | |
| tab_id* | string | |
| selector | string | |
| input_method | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"text"
],
"properties": {
"text": {
"type": "string"
},
"method": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"selector": {
"type": "string"
},
"input_method": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Drag between viewport coordinates.
| Argument | Type | Description |
|---|---|---|
| endX* | number | |
| endY* | number | |
| startX* | number | |
| startY* | number | |
| tab_id* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"startX",
"startY",
"endX",
"endY"
],
"properties": {
"endX": {
"type": "number"
},
"endY": {
"type": "number"
},
"startX": {
"type": "number"
},
"startY": {
"type": "number"
},
"tab_id": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Run JavaScript on a target tab (same CDP evaluate path as BrowserGPT Quick Task exec_js). Requires tab_id from browser_tabs. Returns ok, value, logs, metrics.
| Argument | Type | Description |
|---|---|---|
| tab_id* | string | browser_tabs targetId |
| javascript* | string | JavaScript source to evaluate |
| timeout_ms | integer | Default 15000, max 120000 |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"javascript"
],
"properties": {
"tab_id": {
"type": "string",
"description": "browser_tabs targetId"
},
"javascript": {
"type": "string",
"description": "JavaScript source to evaluate"
},
"timeout_ms": {
"type": "integer",
"description": "Default 15000, max 120000"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Fill field by ref.
| Argument | Type | Description |
|---|---|---|
| ref* | string | |
| value* | string | |
| tab_id* | string | |
| input_method | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"ref",
"value"
],
"properties": {
"ref": {
"type": "string"
},
"value": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"input_method": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Get ref bounding box from last snapshot.
| Argument | Type | Description |
|---|---|---|
| ref* | string | |
| tab_id* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"ref"
],
"properties": {
"ref": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Read cookies for a tab via BrowserGPT extension (chrome.cookies, includes HttpOnly). Operator must approve the in-tab permission prompt. Use for session export / porting auth; do not paste cookie values into chat.
| Argument | Type | Description |
|---|---|---|
| tab_id* | string | browser_tabs targetId |
| cookie_names | array | Optional name filter |
| cookie_domains* | array | Domains for chrome.cookies.getAll (e.g. [".x.com", "x.com"]). Required. |
| confirmation_message* | string | Plain-language permission prompt for the operator (no secrets or template syntax). |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"cookie_domains",
"confirmation_message"
],
"properties": {
"tab_id": {
"type": "string",
"description": "browser_tabs targetId"
},
"cookie_names": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional name filter"
},
"cookie_domains": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Domains for chrome.cookies.getAll (e.g. [\".x.com\", \"x.com\"]). Required."
},
"confirmation_message": {
"type": "string",
"minLength": 1,
"description": "Plain-language permission prompt for the operator (no secrets or template syntax)."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Briefly outline ref on page.
| Argument | Type | Description |
|---|---|---|
| ref* | string | |
| tab_id* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"ref"
],
"properties": {
"ref": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Interact via snapshot ref.
| Argument | Type | Description |
|---|---|---|
| op* | string | |
| key | string | |
| ref* | string | |
| code | string | |
| text | string | |
| tab_id* | string | |
| input_method | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"op",
"ref"
],
"properties": {
"op": {
"type": "string"
},
"key": {
"type": "string"
},
"ref": {
"type": "string"
},
"code": {
"type": "string"
},
"text": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"input_method": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Click at viewport x/y when snapshot refs are empty.
| Argument | Type | Description |
|---|---|---|
| x* | number | |
| y* | number | |
| tab_id* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"x",
"y"
],
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"tab_id": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Navigate a tab to URL. Pass tab_id from browser_tabs to reuse an existing tab; omit or leave empty to use the active control tab. Returns tab_id in results[0].tab_id.
| Argument | Type | Description |
|---|---|---|
| url* | string | |
| tab_id | string | Optional. browser_tabs targetId to navigate in place. |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
},
"tab_id": {
"type": "string",
"description": "Optional. browser_tabs targetId to navigate in place."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Press keyboard key in tab.
| Argument | Type | Description |
|---|---|---|
| key* | string | |
| code | string | |
| tab_id* | string | |
| modifiers_json | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"key"
],
"properties": {
"key": {
"type": "string"
},
"code": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"modifiers_json": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}JPEG screenshot of the session viewport.
| Argument | Type | Description |
|---|---|---|
| tab_id* | string | From browser_navigate or browser_tabs |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id"
],
"properties": {
"tab_id": {
"type": "string",
"description": "From browser_navigate or browser_tabs"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Scroll wheel; optional ref scrolls element into view first.
| Argument | Type | Description |
|---|---|---|
| ref | string | |
| amount | number | |
| deltaX | number | |
| deltaY | number | |
| tab_id* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id"
],
"properties": {
"ref": {
"type": "string"
},
"amount": {
"type": "number"
},
"deltaX": {
"type": "number"
},
"deltaY": {
"type": "number"
},
"tab_id": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Select options on a select ref.
| Argument | Type | Description |
|---|---|---|
| ref* | string | |
| tab_id* | string | |
| values_json* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"ref",
"values_json"
],
"properties": {
"ref": {
"type": "string"
},
"tab_id": {
"type": "string"
},
"values_json": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Accessibility snapshot with refs.
| Argument | Type | Description |
|---|---|---|
| tab_id* | string | From browser_navigate or browser_tabs |
| interactive_only | boolean | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id"
],
"properties": {
"tab_id": {
"type": "string",
"description": "From browser_navigate or browser_tabs"
},
"interactive_only": {
"type": "boolean"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}List tabs in the open control session.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Type into field by ref.
| Argument | Type | Description |
|---|---|---|
| ref* | string | |
| text* | string | |
| slowly | boolean | |
| tab_id* | string | |
| input_method | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"tab_id",
"ref",
"text"
],
"properties": {
"ref": {
"type": "string"
},
"text": {
"type": "string"
},
"slowly": {
"type": "boolean"
},
"tab_id": {
"type": "string"
},
"input_method": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Start/prepare Nova remote BrowserGPT runner (ensure-remote-browser). Call when list_browsers shows no online+ready remote node; then list_browsers again.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}List BrowserGPT browser nodes (local + remote) for the configured license.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}List BrowserGPT dom input method ids; optional page_url for domain-specific hint.
| Argument | Type | Description |
|---|---|---|
| page_url | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"page_url": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Open MCP control session on target browser node_id.
| Argument | Type | Description |
|---|---|---|
| target* | string | node_id from list_browsers |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"target"
],
"properties": {
"target": {
"type": "string",
"description": "node_id from list_browsers"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Save BrowserGPT license when MCP headers did not already provide it (Authorization Bearer license). Optional when Nova/SecOps derived license from auth. Call before list_browsers only if license_not_set.
| Argument | Type | Description |
|---|---|---|
| license_key* | string | BrowserGPT license key |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"license_key"
],
"properties": {
"license_key": {
"type": "string",
"description": "BrowserGPT license key"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.