Skip to main content
Glama
ricardochen1996

browser-use-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TEXT_MODELNoChat model name when using the chat Jev decider.
HTTPS_PROXYNoProxy used by the process that runs the server when installing the engine.
JEV_DECIDERNoPolicy decider for Jev: typesafe or chat.typesafe
TYPESAFE_MODELNoOptional model name for the TypeSafe policy endpoint.
TYPESAFE_API_KEYNoAPI key for the default TypeSafe Jev policy; required only for browser_goal or browser_act intents.
TYPESAFE_BASE_URLNoOptional base URL for the TypeSafe policy endpoint.
TEXT_MODEL_API_KEYNoOptional API key for the chat model endpoint.
TEXT_MODEL_BASE_URLNoBase URL of a chat model endpoint when using the chat Jev decider.
BROWSER_USE_MCP_HOMENoState root containing the managed Python environment, profiles, and locks.~/.browser-use-mcp
BROWSER_USE_MCP_HOSTNoHost for the Streamable HTTP transport.127.0.0.1
BROWSER_USE_MCP_MODENoBrowser mode: attach to an existing Chrome or launch a dedicated browser.attach
BROWSER_USE_MCP_PATHNoPath for the Streamable HTTP transport endpoint./mcp
BROWSER_USE_MCP_PORTNoPort for the Streamable HTTP transport.7331
TYPESAFE_FALLBACK_URLNoOptional fallback URL for the TypeSafe policy endpoint.
BROWSER_USE_MCP_NO_JEVNoWithdraw browser_goal and the browser_act intent parameter when enabled.false
BROWSER_USE_MCP_PYTHONNoPython interpreter path; defaults to the managed environment.
BROWSER_USE_MCP_NO_EVALNoWithdraw the browser_eval tool when enabled.false
BROWSER_USE_MCP_PROFILENoBrowser profile name under the state root.default
BROWSER_USE_MCP_HEADLESSNoRun launch-mode Chrome without a visible window.false
BROWSER_USE_MCP_LOG_LEVELNoLog level; logs always go to stderr.info
BROWSER_USE_MCP_TRANSPORTNoMCP transport to use: stdio or http.stdio
BROWSER_USE_MCP_CDP_ENDPOINTNoSpecific Chrome DevTools endpoint to drive, such as http://127.0.0.1:9333 or a ws:// endpoint.
BROWSER_USE_MCP_HTTP_IDLE_MSNoHTTP session idle timeout in milliseconds before its browser is closed.900000
BROWSER_USE_MCP_USER_DATA_DIRNoExplicit browser user data directory.
BROWSER_USE_MCP_ATTACH_SHARINGNoAttach-mode sharing policy: shared or exclusive.shared
BROWSER_USE_MCP_NO_SCREENSHOTSNoWithdraw the browser_screenshot tool when enabled.false
BROWSER_USE_MCP_REQUEST_TIMEOUT_MSNoPer-browser-request timeout in milliseconds.180000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
browser_openA

Open a page in the browser this MCP session owns and return its indexed action space. The session reuses that browser and its logins across calls; the previous tab is closed first.

browser_pageA

Read the current page again: the same indexed action space under a new observation number. Use it after the page changes on its own, or after a refused action.

browser_actA

Run one operation on one target from an observation: CLICK, TYPE_TEXT, SELECT, SCROLL_UP, SCROLL_DOWN, WAIT. CLICK, TYPE_TEXT, and SELECT take a target index from that observation; TYPE_TEXT also takes the text. SCROLL_UP, SCROLL_DOWN, and WAIT take no target. You may instead omit operation and target and give an intent: the policy chooses the operation and target on that observation and runs it. A TYPE_TEXT with an intent and no text gets its value from the text model. Both spend model quota; --jev-decider says whether Jev or the text model answers.

browser_evalA

Evaluate one JavaScript expression in the page this session owns and return what it produced: a string as itself, any other value as JSON, capped so one dump cannot crowd out the conversation. Use it for a programmatic read the indexed action space cannot express, or a one-off DOM operation. It runs on this session's one CDP connection: never start a second client — a raw websocket, a puppeteer/playwright script, another browser-harness daemon — because Chrome 144+ asks "Allow remote debugging?" once per connection and two drivers race each other on the same page. The expression gets no user gesture, a thrown error comes back as text, and it produces no observation: call browser_page before the next browser_act.

browser_screenshotA

Capture the visible viewport as an image. Target boxes and page structure are not drawn into it.

browser_consoleA

Read what the page reported since the last read: console messages, uncaught exceptions, and failed or 4xx/5xx requests. Each read drains the buffer, so read it after reproducing a problem.

browser_goalA

Hand one goal to the browser policy in its own tab and return the trace it produced. The policy chooses operations and targets by itself and spends model quota — --jev-decider says whether Jev or the text model answers; the page this session already has open is left untouched.

browser_closeA

Close the tab this session owns and stop its daemon. The browser this session attached to is never closed: other sessions may still be driving it.

browser_doctorA

Report what the browser tools need and whether it is there: the Python interpreter, the engine and browser-harness versions, the managed environment, the browser that would be launched, the attach target, the configuration in use, and the fix for anything missing. Call it first when browser work fails. With install: true it builds a missing engine environment first and waits for that install.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 9 tools

Disambiguation4/5

Tools mostly target distinct browser operations: open, re-observe, act, evaluate, screenshot, console, goal, close, and doctor are separable. The main overlap is browser_act's intent mode versus browser_goal, both policy-driven model actions, though goal is scoped to its own tab and an overall objective.

Naming Consistency4/5

All tools use a consistent browser_ prefix, making them easy to recognize as one family. Suffixes mix nouns (browser_page, browser_screenshot, browser_console) and verbs (browser_open, browser_close, browser_act), which is a minor deviation but still readable and predictable.

Tool Count5/5

Nine tools is well-scoped for a browser automation server. Each tool covers a meaningful part of the browser-control lifecycle without obvious redundancy or filler.

Completeness4/5

The surface covers opening, observing, acting, evaluating JavaScript, screenshotting, console inspection, autonomous goals, closing, and diagnostics. Minor gaps exist around explicit navigation/history controls such as back, forward, or direct URL navigation separate from browser_open, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues