Skip to content
fastbrowsefastbrowse

docs

Use it from an MCP client

Serve the browse tool over MCP, with server-side limits, fixed browser choices and HTTP authorization.

fastbrowse.ai·all docs·source at the pinned commit·Raw Markdown·llms.txt

fastbrowse-mcp serves one browse tool over MCP, so Claude Code, Claude Desktop, Cursor or any other MCP client can hand it a task. It returns the answer, typed fields if asked for, the quotes behind them, the status and what to do about it, and reports progress on every step. The answer contains numbered Markdown links. MCP's citations list contains quote and url from the run's evidence; it does not expose the Python Citation ids, requirement ids or deep-link fields.

claude mcp add fastbrowse -e OPENROUTER_API_KEY=... -e BROWSER_USE_API_KEY=... \
  -- uvx --from 'fastbrowse[mcp]' fastbrowse-mcp --max-dollars 0.25

For a client configured by JSON, such as Claude Desktop:

{
  "mcpServers": {
    "fastbrowse": {
      "command": "uvx",
      "args": ["--from", "fastbrowse[mcp]", "fastbrowse-mcp"],
      "env": { "OPENROUTER_API_KEY": "...", "BROWSER_USE_API_KEY": "..." }
    }
  }
}

The server's flags decide what a calling model may do; a call can ask for less, never more.

FlagEffect
--local, --headed, --profile DIR, --downloads DIR, --cursoras for the CLI, fixed for every call
--cloud-profile IDevery call runs signed in as that cloud profile; a calling model cannot choose it
--allow-authorizelet a call pass authorize to go through irreversible actions; without it they always stop at needs_confirmation
--secret NAME=ENV_VAR@ORIGINtyped when a call's start page is on ORIGIN (https://*.site.com covers its hosts); the model sees NAME only
--bitwarden ITEMa vault login a call may name in bitwarden
--max-steps N, --max-dollars N, --max-seconds Noptional ceilings per call; defaults are unlimited
--max-concurrent Nruns at once, default 1; more calls wait their turn
--transport http, --host, --portstreamable HTTP at /mcp instead of stdio

Over HTTP, set FASTBROWSE_MCP_TOKEN in the environment or .env and every request but /healthz needs Authorization: Bearer <token>. The server refuses to bind anything but loopback without one. A run takes seconds to minutes, so raise the client's tool timeout if it has one (MCP_TOOL_TIMEOUT in Claude Code).