mcp-server-browserbase
browserbase/mcp-server-browserbase
- Type
- MCP server
- Scanned
- Oct 29, 2026
- Version
- 3e6f53461949
- Files read
- 50
This MCP server provides cloud browser automation powered by Browserbase and Stagehand, allowing an AI agent to navigate websites, interact with elements, and extract page content. Its biggest risk is that running it in HTTP mode (--port) without specifying --host binds an unauthenticated server to all network interfaces (0.0.0.0 / ::), exposing the browser sessions and API keys to the local network.
What it can reach
- Network
- Connects to Browserbase cloud APIs and LLM provider APIs (Google Gemini or custom models), and optionally listens on a TCP port when
--portis specified. - Browser
- Creates and controls remote cloud browser sessions in Browserbase, including navigating to arbitrary URLs, interacting with page elements, and extracting page data.
- Secrets
- Reads
BROWSERBASE_API_KEY,BROWSERBASE_PROJECT_ID,GEMINI_API_KEY, andGOOGLE_API_KEYfrom environment variables,.envfiles, or CLI arguments. - Files
- Reads local
.envconfiguration files andpackage.jsonon startup.
Findings
-
MediumHTTP transport binds to all network interfaces without authentication by default
Although the CLI help text and documentation state that
--hostdefaults tolocalhost, no default value is set insrc/program.tsorsrc/config.ts. When--portis used without--host,hostnameisundefined, causing Node'shttpServer.listento bind to all network interfaces (0.0.0.0/::) while misleadingly printinglocalhostin the startup log. Because the/mcpendpoint has no authentication orOriginheader check, anyone on the local network (or a malicious webpage via cross-origin requests or DNS rebinding) can connect, control browser sessions, and use the configured Browserbase and LLM API keys.Fix: Default
hostnameto"127.0.0.1"when--hostis not provided, validate theOriginheader to prevent DNS rebinding, and require authentication on the/mcpendpoint. -
LowCustom model API keys must be passed via CLI arguments, exposing them in process listings
When resolving
modelApiKey, the code only checksGEMINI_API_KEYandGOOGLE_API_KEYin the environment (even though a warning message later mentionsMODEL_API_KEY,process.env.MODEL_API_KEYis never read). Consequently, users configuring a non-Google model must pass--modelApiKey <key>as a command-line argument as shown in the README, which exposes the secret key in the system process table (ps) to other users on the machine.Fix: Read
process.env.MODEL_API_KEYinresolveConfigbefore falling back toGEMINI_API_KEYorGOOGLE_API_KEY, and recommend environment variables instead of CLI arguments for secrets.