Integration

Use browser.city in Claude Code via MCP (remote server)

Add browser.city as an MCP server in Claude Code so your agent can browse, click, and extract markdown against real stealth browsers.

Claude Code supports MCP servers via config files. browser.city runs a hosted MCP server, so you can connect Claude Code to real remote browsers with one JSON entry.

1) Set your API key

Set BROWSERCITY_API_KEY in your environment (shell profile, .env, CI secret, etc.).

2) Add a server in ~/.claude.json (user) or .mcp.json (project)

Add this to your MCP config:

.claude.json
{  "mcpServers": {    "browsercity": {      "url": "https://mcp.browser.city/mcp",      "headers": {        "Authorization": "Bearer ${BROWSERCITY_API_KEY}"      }    }  }}

Notes:

  • Some Claude Code versions require specifying a transport type for remote servers. If so, add "type": "http" next to the url.
  • Prefer env var expansion (${…}) so you don’t commit secrets into a repo config.

3) Try it

In Claude Code, ask:

Use browsercity tools to open a session, navigate to https://example.com, and return the page markdown.

You should see tools like browser_open, browser_navigate, browser_snapshot, browser_click, and browser_markdown available.

4) When to use MCP vs direct REST

  • Use MCP when you want Claude Code to drive multi-step browsing as tools.
  • Use the Request API when you just want markdown/text for URLs and don’t need interaction:
request.ts
const apiKey = process.env.BROWSERCITY_API_KEY!;const opts = { method: "POST", headers: { Authorization: `Bearer ${apiKey}` } };const res = await fetch("https://api.browser.city/v1/requests", {  ...opts,  body: JSON.stringify({ url: "https://example.com", markdown: true }),}).then((r) => r.json());console.log(res.content);
[ 06 / 06 ] — Get Started

Start building in under a minute

Free tier. No credit card. Full stealth from day one.