Browser MCP

Shared remote headed Chromium, exposed over MCP. ready 4/4 browsers connected

Drive a real browser from any project instead of shipping your own Chrome. Useful for authenticated portals, JS-rendered pages, screenshots and PDFs.

Connect

// Preferred (MCP 2025 streamable-HTTP — fast, single URL, no SSE connection leaks):
{
  "mcpServers": {
    "browser": {
      "type": "streamable-http",
      "url": "https://browser.fornace.net/mcp",
      "headers": { "Authorization": "Bearer $FORNACE_MCP_KEY" }
    }
  }
}

// Or legacy SSE:
{
  "mcpServers": {
    "browser": {
      "type": "sse",
      "url": "https://browser.fornace.net/sse",
      "headers": { "Authorization": "Bearer $FORNACE_MCP_KEY" }
    }
  }
}

Ask an admin for a fnc_… token. Full guide: docs/USING-BROWSER-MCP.md in Fornace/MCP-Browser.

Agent Fast REST API

# 1. Fast scrape any page (stealth mode with Cloudflare solver by default; returns clean Markdown):
curl -s "https://browser.fornace.net/v1/scrape?url=https://example.com" \
  -H "Authorization: Bearer $FORNACE_MCP_KEY" -H "Accept: text/markdown"

# 2. Rich scrape options (POST):
curl -s -X POST https://browser.fornace.net/v1/scrape \
  -H "Authorization: Bearer $FORNACE_MCP_KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","mode":"stealthy","format":"markdown","selector":"main"}'

# 3. Direct Scrapling tools (unwrapped JSON, no MCP content array envelope):
curl -s -X POST https://browser.fornace.net/v1/scrapling/stealthy_fetch \
  -H "Authorization: Bearer $FORNACE_MCP_KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","extraction_type":"text"}'

Discovery — no auth needed

EndpointWhat it gives you
/.well-known/mcp.jsontransport, auth, instructions, tool list
/openapi.jsonOpenAPI 3.1 for the REST fallback
/runtime.jsonlive counts, caps, policy — check this first
/healthreadiness

Three rules that save hours

  1. browser_evaluate takes a function body — it must return. Pass scripts as strings; bundled function bodies fail with __name is not defined.
  2. Always close your client. On a 429 at connect you are at the per-token SSE cap — don't retry in a loop, read /runtime.json.
  3. Jitter every interaction, and fail closed on a bot challenge — never click, wait out, reload, or rotate around it.

REST, if you have no MCP client

curl -s https://browser.fornace.net/tool/browser_navigate \
  -H "Authorization: Bearer $FORNACE_MCP_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com"}'