Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Browser Use Cloud API key from https://cloud.browser-use.com/settings
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.
Get current status and output of a session. Call this repeatedly to poll for task completion. Returns status (created, idle, running, stopped, timed_out, error), step count, output, cost breakdown, and live URL.
UUID of the session to check.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Get current status and output of a session. Call this repeatedly to poll for task completion. Returns status (created, idle, running, stopped, timed_out, error), step count, output, cost breakdown, and live URL.
| Argument | Type | Description |
|---|---|---|
| session_id* | string | UUID of the session to check. |
{
"type": "object",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"description": "UUID of the session to check."
}
}
}Get the agent messages/steps for a session. Shows what the agent is doing including browser actions, reasoning, and results. Use after= parameter for pagination to get new messages since your last check.
| Argument | Type | Description |
|---|---|---|
| after | string | Return messages after this message ID (cursor-based pagination). Omit for initial fetch. |
| limit | integer | Max number of messages to return. |
| session_id* | string | UUID of the session. |
{
"type": "object",
"required": [
"session_id"
],
"properties": {
"after": {
"type": "string",
"description": "Return messages after this message ID (cursor-based pagination). Omit for initial fetch."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Max number of messages to return."
},
"session_id": {
"type": "string",
"description": "UUID of the session."
}
}
}List all available cloud browser profiles for the authenticated project. Profiles store persistent authentication (cookies, sessions) for websites requiring login. Use this BEFORE attempting any authenticated tasks. Show profiles to the user and let them choose, then pass the selected profile_id to run_session.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}List recent sessions for the authenticated project, with status and cost info.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed). |
| page_size | integer | Results per page. |
{
"type": "object",
"required": [],
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number (1-indexed)."
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Results per page."
}
}
}Create a new browser agent session and run a task. This uses the v3 sandbox-based agent that supports long-running sessions, workspaces, and keep-alive. After creating a session, call get_session to poll for status and output. For tasks requiring authentication, use list_browser_profiles first to get a profile_id.
| Argument | Type | Description |
|---|---|---|
| task* | string | Detailed instructions for what you want the browser agent to do. |
| model | string | Agent model to use. When omitted, an account-appropriate default is selected. Available: gemini-3-flash, claude-sonnet-5, claude-opus-4.6, claude-opus-4.7, claude-opus-4.8, gpt-5.4-mini, glm-5.2, minimax-m3, grok-4.6, glm-5.3-flash, deepseek-v4-flash-vision. |
| keep_alive | boolean | If true, the session stays idle after the task finishes, ready for follow-up tasks via send_task. Default is false (session auto-stops). |
| profile_id | string | UUID of the cloud profile to use for authenticated tasks. Get this from list_browser_profiles. |
| workspace_id | string | UUID of the workspace for file persistence across sessions. |
| output_schema | object | JSON schema for structured output. The agent will return data matching this schema. |
| proxy_country | any | ISO 3166-1 alpha-2 country code for the proxy location (e.g. "us", "gb", "de", "jp", "br"). Defaults to "us" if not specified. Set to null to disable the proxy. |
Send a follow-up task to an existing keep-alive session. The session must be in idle status. Use this for multi-turn interactions where you want to reuse the same browser context.
| Argument | Type | Description |
|---|---|---|
| task* | string | The follow-up task instructions. |
| keep_alive | boolean | If true, session stays idle after this task too. Default is false. |
| session_id* | string | UUID of an existing idle session (from run_session with keep_alive=true). |
| output_schema | object | JSON schema for structured output. |
{
"type": "object",
"required": [
"session_id",
"task"
],
"properties": {
"task": {
"type": "string",
"maxLength": 50000,
"minLength": 1,
"description": "The follow-up task instructions."
},
"keep_alive": {
"type": "boolean",
"default": false,
"description": "If true, session stays idle after this task too. Default is false."
},
"session_id": {
"type": "string",
"description": "UUID of an existing idle session (from run_session with keep_alive=true)."
},
"output_schema": {
"type": "object",
"description": "JSON schema for structured output."
}
}
}Stop a running session. Use strategy "task" to stop only the current task (session stays idle for follow-ups), or "session" (default) to destroy the sandbox entirely.
| Argument | Type | Description |
|---|---|---|
| strategy | string | Stop strategy: "task" stops the current task only, "session" destroys the sandbox. |
| session_id* | string | UUID of the session to stop. |
{
"type": "object",
"required": [
"session_id"
],
"properties": {
"strategy": {
"enum": [
"task",
"session"
],
"type": "string",
"default": "session",
"description": "Stop strategy: \"task\" stops the current task only, \"session\" destroys the sandbox."
},
"session_id": {
"type": "string",
"description": "UUID of the session to stop."
}
}
}{
"type": "object",
"required": [
"task"
],
"properties": {
"task": {
"type": "string",
"maxLength": 50000,
"minLength": 1,
"description": "Detailed instructions for what you want the browser agent to do."
},
"model": {
"enum": [
"gemini-3-flash",
"claude-sonnet-5",
"claude-opus-4.6",
"claude-opus-4.7",
"claude-opus-4.8",
"gpt-5.4-mini",
"glm-5.2",
"minimax-m3",
"grok-4.6",
"glm-5.3-flash",
"deepseek-v4-flash-vision"
],
"type": "string",
"description": "Agent model to use. When omitted, an account-appropriate default is selected. Available: gemini-3-flash, claude-sonnet-5, claude-opus-4.6, claude-opus-4.7, claude-opus-4.8, gpt-5.4-mini, glm-5.2, minimax-m3, grok-4.6, glm-5.3-flash, deepseek-v4-flash-vision."
},
"keep_alive": {
"type": "boolean",
"default": false,
"description": "If true, the session stays idle after the task finishes, ready for follow-up tasks via send_task. Default is false (session auto-stops)."
},
"profile_id": {
"type": "string",
"description": "UUID of the cloud profile to use for authenticated tasks. Get this from list_browser_profiles."
},
"workspace_id": {
"type": "string",
"description": "UUID of the workspace for file persistence across sessions."
},
"output_schema": {
"type": "object",
"description": "JSON schema for structured output. The agent will return data matching this schema."
},
"proxy_country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "us",
"description": "ISO 3166-1 alpha-2 country code for the proxy location (e.g. \"us\", \"gb\", \"de\", \"jp\", \"br\"). Defaults to \"us\" if not specified. Set to null to disable the proxy."
}
}
}