Bright Data MCP Server
Enables performing structured DuckDuckGo searches via the SERP API, returning results such as titles, URLs, and snippets.
Enables performing structured Google searches via the SERP API, returning results such as titles, URLs, and snippets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bright Data MCP Serversearch Google for best laptops 2026"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Fetch any URL as HTML, clean Markdown, or a PNG screenshot. Auto-handles blocking & CAPTCHAs. |
| Start a long-running unlock job; returns a |
| Poll/fetch the result of an async unlock job. |
| Per-domain success-rate stats (last 7 days). |
| Structured search results from Google / Bing / Yandex / DuckDuckGo. |
| Trigger a Crawl / Web Scraper dataset job over one or more URLs. |
| Check progress and download dataset results by |
| Drive a real cloud browser: navigate, click, type, scroll, run JS, auto-solve CAPTCHAs, emulate devices, block ads, return rendered HTML / text / screenshot. |
Related MCP server: Thordata MCP Server
Prerequisites
A Bright Data account and an API token (Account settings → API tokens, or https://brightdata.com/cp/setting/users).
One or more zones created under Web Access APIs in the control panel:
a Web Unlocker zone (for
unlocker_*andserp_search)a SERP API zone (for
serp_search)a Browser API zone (for
browser_scrape) — copy itsUSER:PASSfrom the zone's Overview taba Dataset id (
gd_...) from https://brightdata.com/cp/datasets for the Crawl / Web Scraper tools
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 buildConfigure
Copy .env.example to .env and fill in your values:
cp .env.example .envVariable | Required | Default | Notes |
| yes | — | Bearer token for all REST calls. |
| no |
| Web Unlocker zone name. |
| no |
| SERP API zone name. |
| for | — |
|
| no |
| CDP host:port. |
| for crawl tools | — | Default dataset id ( |
| no |
| 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 startUse 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 / SERP →
POST https://api.brightdata.com/requestwith{ zone, url, format, method, country, data_format }. Async adds?async=trueand is retrieved viaGET /unblocker/get_result.Crawl / Web Scraper →
POST /datasets/v3/trigger?dataset_id=..., polled viaGET /datasets/v3/progress/{id}and downloaded viaGET /datasets/v3/snapshot/{id}.Browser API →
puppeteer.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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AndrewEstopinan/brightdata-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server