Bright Data MCP Server

Bright Data MCP Server

Enables AI agents to browse and extract data from any public website via Bright Data's cloud infrastructure, handling proxy rotation, CAPTCHA solving, and JavaScript rendering.

Category
Visit Server

README

Bright Data MCP Server

A full-featured Model Context Protocol (MCP) server that lets an AI agent browse and extract data from any public website through Bright Data's Web Access APIs.

All heavy lifting — proxy rotation, browser fingerprinting, CAPTCHA solving, and JavaScript rendering — happens on Bright Data's cloud infrastructure, so this server runs fine on machines that can't (or shouldn't) run a browser locally. The Browser API tool uses puppeteer-core, which speaks CDP to a remote browser and never downloads or launches Chromium on your machine.

Tools

Tool What it does
unlocker_scrape Fetch any URL as HTML, clean Markdown, or a PNG screenshot. Auto-handles blocking & CAPTCHAs.
unlocker_scrape_async Start a long-running unlock job; returns a response_id.
unlocker_get_async_result Poll/fetch the result of an async unlock job.
unlocker_success_rate Per-domain success-rate stats (last 7 days).
serp_search Structured search results from Google / Bing / Yandex / DuckDuckGo.
web_scraper_trigger Trigger a Crawl / Web Scraper dataset job over one or more URLs.
web_scraper_get_results Check progress and download dataset results by snapshot_id.
browser_scrape Drive a real cloud browser: navigate, click, type, scroll, run JS, auto-solve CAPTCHAs, emulate devices, block ads, return rendered HTML / text / screenshot.

Prerequisites

  1. A Bright Data account and an API token (Account settings → API tokens, or https://brightdata.com/cp/setting/users).
  2. One or more zones created under Web Access APIs in the control panel:
    • a Web Unlocker zone (for unlocker_* and serp_search)
    • a SERP API zone (for serp_search)
    • a Browser API zone (for browser_scrape) — copy its USER:PASS from the zone's Overview tab
    • a Dataset id (gd_...) from https://brightdata.com/cp/datasets for the Crawl / Web Scraper tools
  3. Node.js 18 or newer.

Bright Data's free tier includes monthly credits; adding a payment method unlocks API access and grants a small verification credit. Usage of all of these APIs is billed by Bright Data per their pricing.

Install & build

npm install
npm run build

Configure

Copy .env.example to .env and fill in your values:

cp .env.example .env
Variable Required Default Notes
BRIGHTDATA_API_KEY yes Bearer token for all REST calls.
BRIGHTDATA_UNLOCKER_ZONE no web_unlocker1 Web Unlocker zone name.
BRIGHTDATA_SERP_ZONE no serp_api1 SERP API zone name.
BRIGHTDATA_BROWSER_AUTH for browser_scrape USER:PASS of the Browser API zone.
BRIGHTDATA_BROWSER_HOST no brd.superproxy.io:9222 CDP host:port.
BRIGHTDATA_DATASET_ID for crawl tools Default dataset id (gd_...).
BRIGHTDATA_API_BASE_URL no https://api.brightdata.com Override base URL.

The server reads variables from the real process environment. If you keep them in .env, load it before launching (e.g. node --env-file=.env dist/index.js on Node 20+, or via your MCP client's env block below).

Run

# Node 20+ can load the .env file directly:
node --env-file=.env dist/index.js

# or rely on environment variables already exported in your shell:
npm start

Use it from an MCP client

Add this to your client's MCP config (Claude Desktop, Cursor, etc.). Pass secrets through the env block rather than committing them:

{
  "mcpServers": {
    "brightdata": {
      "command": "node",
      "args": ["/absolute/path/to/brightdata-mcp/dist/index.js"],
      "env": {
        "BRIGHTDATA_API_KEY": "your_api_key_here",
        "BRIGHTDATA_UNLOCKER_ZONE": "web_unlocker1",
        "BRIGHTDATA_SERP_ZONE": "serp_api1",
        "BRIGHTDATA_BROWSER_AUTH": "brd-customer-XXXX-zone-YYYY:zzzz",
        "BRIGHTDATA_DATASET_ID": "gd_xxxxxxxx"
      }
    }
  }
}

Example tool calls

Fetch a page as Markdown:

{ "tool": "unlocker_scrape", "arguments": { "url": "https://example.com", "data_format": "markdown" } }

Search Google:

{ "tool": "serp_search", "arguments": { "query": "best laptops 2026", "engine": "google", "num": 20 } }

Drive a cloud browser through a CAPTCHA and screenshot it:

{
  "tool": "browser_scrape",
  "arguments": {
    "url": "https://site-with-captcha.example",
    "solve_captcha": true,
    "screenshot": true,
    "actions": [
      { "type": "wait_for_selector", "selector": "#results" },
      { "type": "click", "selector": "button.load-more" },
      { "type": "scroll" }
    ]
  }
}

How it maps to the Bright Data docs

  • Unlocker / SERPPOST https://api.brightdata.com/request with { zone, url, format, method, country, data_format }. Async adds ?async=true and is retrieved via GET /unblocker/get_result.
  • Crawl / Web ScraperPOST /datasets/v3/trigger?dataset_id=..., polled via GET /datasets/v3/progress/{id} and downloaded via GET /datasets/v3/snapshot/{id}.
  • Browser APIpuppeteer.connect({ browserWSEndpoint: "wss://USER:PASS@brd.superproxy.io:9222" }) plus Bright Data's custom CDP commands: Captcha.solve, Captcha.setAutoSolve, Unblocker.enableAdBlock, Proxy.useSession, Emulation.setDevice, Browser.getSessionId.

Responsible use

This server accesses public web data through a paid, compliant commercial service. Respect each target site's Terms of Service and robots.txt, applicable laws (e.g. data-protection rules), and Bright Data's Acceptable Use Policy. Don't use it to access content behind logins/authentication you aren't authorized to use, or to collect personal data without a lawful basis.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured