Browserbase

io.github.mindstonePublished by GitHub account mindstonev0.1.1Updated Oct 25, 2026

Browserbase MCP server: cloud browser sessions, agents, contexts, fetch, search, functions

Overview

AI-generated overview

A local connector that exposes the Browserbase cloud browser API, letting an assistant run cloud browser sessions, AI web agents, fetches, searches and server-

What you can do
Create, inspect and end cloud browser sessions, including live-view and debugger URLs, logs, replays and recording downloads, and upload files into a session. Manage persistent contexts that keep cookies and storage across sessions. Create, update and run AI web agents, poll runs to completion and read their step-by-step messages. Fetch a URL as raw body, markdown or schema-driven JSON, and run ranked web searches. List, inspect and invoke deployed serverless browser functions, and manage downloads, extensions and certificates.
When to use it
Use it when an assistant should drive a real cloud browser or delegate extraction tasks to Browserbase AI agents, for example pulling structured data such as pricing tiers from a page. It suits hosts that want one local connector covering the whole Browserbase API rather than a single-purpose tool.
Requirements
Runs locally over stdio via npx, so Node.js 20+ and npm are needed. A Browserbase API key is required in the BROWSERBASE_API_KEY environment variable. Optional settings: BROWSERBASE_REQUEST_TIMEOUT_MS for per-request timeouts and MCP_WORKSPACE_PATH for the directory that local uploads are read from. Network access to the Browserbase API is required.
Before you install
Sessions are billed per minute with a one-minute minimum, so end them promptly; exceeding concurrency limits returns rate-limit errors. Live-view and connect URLs grant control of the browser to anyone holding them. Delete, stop, invoke and create/upload tools are marked destructive, and deletes are permanent. Uploaded files are read from the workspace directory, and fetched or agent-produced web content is passed to the model as untrusted data.

Installation

In SourceWeft

  1. Open Browserbase in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@mindstone/mcp-server-browserbase

[npm version] [License: FSL-1.1-MIT]

Cloud browser automation via the Browserbase API: sessions with live-view debugging, AI web agents, persistent contexts, downloads, fetch/search, and serverless functions.

Best for MCP hosts that want a local browser-automation connector covering the entire Browserbase API — from "open a browser and show me" to "run an agent that extracts pricing data".

Status

  • Version: 0.1.1 · npm
  • Auth: API key (BROWSERBASE_API_KEY)
  • Tools: 53 (projects, sessions, contexts, agents, agent runs, downloads, extensions, certificates, fetch/search, functions)
  • Surface: cloud-api
  • Machine-readable: STATUS.json

Why this exists

Browserbase's API spans everything from raw CDP sessions to fully-managed AI agents. This package exposes all of it to local stdio MCP hosts as a single connector with deliberate guardrails: session billing is called out in tool descriptions, destructive actions are annotated, external web content is always wrapped as untrusted data, and long-running work is polled (Browserbase has no webhooks).

Example interaction

"Extract the pricing tiers from example.com and give them to me as JSON."

Tools the host calls:

  1. create_agent_run — starts a run with the task and a result_schema for the JSON shape.
  2. wait_for_agent_run — polls until the run completes and returns the structured result.
  3. get_agent_run_messages — (optional) shows what the agent did, step by step.

Response (trimmed):

json
{  "ok": true,  "runId": "r0a0b0c0-…",  "status": "COMPLETED",  "result": { "plans": [ { "name": "…", "price": 0 } ] },  "waited_seconds": 47}

Requirements

One-click install

[Add to Cursor] [Add to VS Code] [Add to VS Code Insiders]

After clicking the button, your host will prompt you to fill: BROWSERBASE_API_KEY.

Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (Browserbase)
json
{  "mcpServers": {    "Browserbase": {      "command": "npx",      "args": [        "-y",        "@mindstone/mcp-server-browserbase"      ],      "env": {        "BROWSERBASE_API_KEY": ""      }    }  }}

Quick Start

Install & build

bash
cd <path-to-repo>/connectors/browserbasenpm installnpm run build

npx

bash
npx -y @mindstone/mcp-server-browserbase

Local

bash
node dist/index.js

Configuration

VariableRequiredDescription
BROWSERBASE_API_KEYYesBrowserbase API key. Get one at browserbase.com/settings
BROWSERBASE_REQUEST_TIMEOUT_MSNoPer-request timeout for Browserbase API calls in milliseconds (default 30000)
MCP_WORKSPACE_PATHNoWorkspace directory for local files uploaded by upload_session_file, upload_extension, and upload_certificate. File reads are sandboxed to this directory; defaults to the system temp directory.

When running inside a host that provides the credential bridge, configure_browserbase_api_key persists the key through the host instead of the environment.

MCP Host Configuration

json
{  "mcpServers": {    "browserbase": {      "command": "npx",      "args": ["-y", "@mindstone/mcp-server-browserbase"],      "env": {        "BROWSERBASE_API_KEY": "your-api-key"      }    }  }}

Security notes

Sessions are billed — release them

Every create_session starts a billable browser (per-minute, 1-minute minimum). The create_session and end_session descriptions tell the agent this explicitly, and end_session should be called as soon as automation finishes. Exceeding the project's concurrency limit returns 429 with a retry-after window that the error resolution surfaces verbatim.

Live-view URLs grant control

get_session returns a credentialed connectUrl and get_session_debug_urls returns debugger/live-view URLs. Anyone with these URLs can watch AND drive the browser — they are for sharing with the session's owner, never publicly.

External content is always enveloped

Anything authored outside your account — fetched page content, search results, page titles in debug URLs, agent run tasks/results/messages, CDP log bodies, replay playlists, download filenames, function output, error details — is wrapped in <untrusted-content source="browserbase:…"> envelopes with close-tag breakout escaping before it reaches the model. CDP log rawBody values are additionally truncated beyond ~4KB with a truncation note.

File uploads are workspace-sandboxed

upload_session_file, upload_extension, and upload_certificate accept local file_paths. Reads are constrained to MCP_WORKSPACE_PATH (or the system temp directory when unset) using canonical-prefix containment: .. traversal, absolute paths outside the sandbox, and symlinks that escape it are rejected before any disk read. The read is open-then-validate: the connector opens a descriptor, confirms the opened inode is the file the sandbox approved, reads through that descriptor, and re-checks it after the read — a file swapped or modified mid-read fails closed.

fetch_url cannot probe internal networks

fetch_url (and the URLs embedded in search results you might fetch next) are guarded by a public-URL check: only http:///https:// schemes, and localhost, loopback, link-local, and private IP ranges are rejected before any request is sent.

Delete and stop tools are annotated as destructive

delete_context, delete_agent, delete_download, delete_extension, delete_certificate, end_session, stop_agent_run, invoke_function, and all create_*/upload_* tools carry destructiveHint: true. Deletes are permanent; hosts should require explicit user confirmation.

Tools (53)

Configuration

  • configure_browserbase_api_key — Save your Browserbase API key (host-persisted when a bridge is present)

Projects

  • list_projects — List projects (IDs, concurrency limits, default timeouts)
  • get_project — Get one project's details
  • get_project_usage — Browser minutes and proxy bytes consumed

Sessions

  • create_session — Create a cloud browser session (billed per minute; returns connectUrl)
  • list_sessions — List sessions, filtered by status or userMetadata query
  • get_session — Get a session's status and connectUrl
  • end_session — Release a session (REQUEST_RELEASE semantics; sessions also auto-expire)
  • get_session_debug_urls — Live-view + debugger URLs to share with a human
  • get_session_logs — CDP-level session logs (raw bodies truncated beyond ~4KB)
  • get_session_replays — List recorded pages available for replay
  • get_session_replay_playlist — Fetch a page's m3u8 replay playlist
  • request_session_recording_downloads — Request async MP4 assembly (HTTP 202)
  • get_session_recording_downloads — Poll MP4 status; get short-lived signed URLs
  • upload_session_file — Upload a sandboxed local file to /tmp/.uploads/ in the session

Contexts (persistent browser state)

  • create_context — Create a context for persisting cookies/storage across sessions
  • get_context — Get a context's details
  • delete_context — Permanently delete a context

Agents

  • create_agent — Create a reusable agent (name, system prompt, result schema)
  • list_agents — List agents (cursor-paginated, date-filterable)
  • get_agent — Get an agent's prompt and result schema
  • update_agent — Partially update an agent
  • delete_agent — Delete an agent (existing runs unaffected)

Agent Runs

  • create_agent_run — Start a run (ad-hoc or with an agent; %variable% substitution for sensitive values)
  • list_agent_runs — List runs (cursor-paginated, filterable)
  • get_agent_run — Get a run's status and terminal result/cause
  • wait_for_agent_run — Recommended: poll until terminal and return the result
  • get_agent_run_messages — The run's UIMessage conversation (since/nextSince feed)
  • stop_agent_run — Stop a running run (202; 409 if already terminal)

Downloads (files downloaded inside sessions)

  • list_downloads — List downloads for a session (offset-paginated, filterable)
  • get_download_info — Metadata (size, checksum, MIME type)
  • get_download_file — Fetch the bytes as base64 (8MB inline cap)
  • delete_download — Permanently delete a download

Extensions

  • upload_extension — Upload a zipped Chrome extension (sandboxed file read)
  • get_extension — Get an uploaded extension
  • delete_extension — Permanently delete an extension

Certificates

  • upload_certificate — Upload a CA certificate for TLS-inspecting proxies
  • list_certificates — List uploaded certificates
  • get_certificate — Get a certificate
  • delete_certificate — Permanently delete a certificate

Fetch & Search

  • fetch_url — Server-side fetch: raw body, markdown, or schema-driven JSON
  • web_search — Web search with ranked results

Functions (serverless browser automations — list/invoke/inspect only)

  • list_functions — List deployed functions
  • get_function — Get a function
  • invoke_function — Invoke a function (async 202; poll the invocation)
  • list_function_versions — List a function's versions
  • get_function_version — Get a version's userParamsSchema (check before invoking)
  • list_function_invocations — List a version's invocations
  • get_function_invocation — Get an invocation's status, results, and cause
  • get_function_invocation_logs — An invocation's logs
  • list_function_builds — List function builds
  • get_function_build — Get a build's status and failure cause
  • get_function_build_logs — A build's logs

API coverage notes

  • Deprecated upstream: GET /sessions/{id}/recording (rrweb event dump) is deprecated by Browserbase and returns a deprecation 404 — it is deliberately not exposed. Use get_session_replays / get_session_replay_playlist (watchable) or the recording-download tools (MP4 files) instead.
  • No webhooks: Browserbase is poll-based. Agent runs (wait_for_agent_run / get_agent_run), recording downloads (get_session_recording_downloads), and function invocations (get_function_invocation) are all polled.
  • No list endpoints for contexts or extensions — record the IDs returned at creation.
  • Functions are deploy-only via the Browserbase CLI — this connector lists, inspects, and invokes existing functions; it cannot create them.

Error handling

All upstream errors are returned as structured JSON with ok: false, a semantic code (AUTH_REQUIRED, VALIDATION_FAILED, NOT_FOUND, CONFLICT, GONE, RATE_LIMITED, PAYMENT_REQUIRED, UPSTREAM_ERROR, TIMEOUT, …), and an actionable resolution. Rate-limit errors include the server-provided retry-after window. Upstream error text is enveloped as untrusted content, and the API key never appears in any output.

Licence

FSL-1.1-MIT — Functional Source License, Version 1.1, with MIT future licence. The software converts to MIT licence on 2030-04-08.

Source: connectors/browserbase/README.md at commit 22c4611

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.