Brightdata MCP

by brightdata• 2.7k•• Scanned•Claim this listing•Request removal
Web Scraping & Dataai agentsai integrationsanti bot detectionbrowser automationdata collection

A powerful Model Context Protocol (MCP) server that provides an all-in-one solution for public web access.

Brightdata MCP is an open-source mcp server by brightdata, written mainly in JavaScript, with 2,700 GitHub stars and the MIT license. Its code was last updated Oct 29, 2026. The latest npm release is @brightdata/mcp 4.8.0, published Nov 10, 2026, with 16,509 downloads last week.

<div align="center"> <a href="https://brightdata.com/ai/mcp-server"> <img src="https://github.com/user-attachments/assets/c21b3f7b-7ff1-40c3-b3d8-66706913d62f" alt="Bright Data Logo"> </a> <h1>Bright Data MCP</h1> <p><strong>Web search, page scraping, structured data extraction, and browser automation for AI agents and LLMs over the Model Context Protocol.</strong></p> <p>Works with AI agents, coding agents, chat assistants, and any MCP-compatible client.</p> <p> <a href="https://www.npmjs.com/package/@brightdata/mcp"><img src="https://img.shields.io/npm/v/@brightdata/mcp?style=flat-square" alt="npm version"></a> <a href="https://www.npmjs.com/package/@brightdata/mcp"><img src="https://img.shields.io/npm/dw/@brightdata/mcp?style=flat-square" alt="npm downloads"></a> <a href="https://github.com/brightdata/brightdata-mcp/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License"></a> </p> <p> <a href="#quick-start">Quick Start</a> • <a href="#pricing-and-free-tier">Pricing</a> • <a href="#use-cases">Use Cases</a> • <a href="#tools-reference-30-tools">Tools</a> • <a href="#agent-skills">Agent Skills</a> • <a href="#documentation">Docs</a> • <a href="#support">Support</a> </p> <p><strong>Free tier: 5,000 requests per month.</strong> No credit card required. Renews monthly.</p> </div>

Overview

The Bright Data MCP server gives AI agents real-time access to public web data. It exposes 30 tools covering:

  • Web search — Bing and Google results as structured data
  • Page scraping (Fetch API) — any URL as Markdown, text, HTML or JSON-LD. Long pages can be read in parts
  • Structured data (Web Scraper API) — clean JSON from 1,200+ pre-built scrapers: Amazon, LinkedIn, Instagram, TikTok, YouTube, X, Reddit, Facebook, Crunchbase, Zillow, npm, PyPI and more, without parsing HTML. Six tools find and run any of them
  • Browser automation — navigate, click, type, screenshot, and read pages in a remote browser session
  • LLM response collection — send a prompt to ChatGPT or Perplexity and get the answer text back as Markdown

Two deployment options: a hosted remote server (one URL, no installation) or a local instance via npx @brightdata/mcp.


Quick Start

Hosted server — no installation. Add this URL to your MCP client:

https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN_HERE

Get your API token from your Bright Data account settings. New accounts get 5,000 free requests per month.

Optional URL parameters:

ParameterDescriptionExample
groups=<ids>Limit to specific tool groups (default: all tools)...&groups=scrapers,browser
tools=<names>Limit to specific tools...&tools=search_engine,scrape_as_markdown
<details> <summary><b>Claude Desktop</b></summary>
  1. Go to: Settings → Connectors → Add custom connector
  2. Name: Bright Data
  3. URL: https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN
  4. Click "Add"

Or run locally:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>"
      }
    }
  }
}
</details> <details> <summary><b>Claude Code</b></summary>
claude mcp add --transport http brightdata "https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN"
</details> <details> <summary><b>Cursor</b></summary>

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "brightdata": {
      "url": "https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN"
    }
  }
}
</details> <details> <summary><b>VS Code</b></summary>

Add to .vscode/mcp.json:

{
  "servers": {
    "brightdata": {
      "type": "http",
      "url": "https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN"
    }
  }
}
</details> <details> <summary><b>Windsurf</b></summary>

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "brightdata": {
      "serverUrl": "https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN"
    }
  }
}
</details> <details> <summary><b>Gemini CLI</b></summary>

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "brightdata": {
      "httpUrl": "https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN"
    }
  }
}
</details> <details> <summary><b>Zed</b></summary>

Add to your Zed settings:

{
  "context_servers": {
    "brightdata": {
      "url": "https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN"
    }
  }
}
</details> <details> <summary><b>Warp</b></summary>

Go to Settings > MCP Servers > Add MCP Server and add:

{
  "brightdata": {
    "url": "https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN"
  }
}
</details> <details> <summary><b>Other clients (local npx)</b></summary>

For any client that supports local MCP servers:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>"
      }
    }
  }
}
</details>

Pricing and Free Tier

Every account includes a recurring monthly free tier. No credit card or commitment required to start.

5,000 free requests per month, renewing on the 1st of each month. Unused requests don't roll over. For team accounts, the free tier is shared across all users in the account.

What's included free:

  • Fetch any webpage and extract as Markdown
  • Access to 60+ pre-built scrapers for popular domains
  • Web search (Bing, Google)
  • Browser automation
  • Geo-targeting

Beyond the free tier — pay as you go, no commitment:

Search & ScrapeBrowser Navigation
Pay as you go$1.50 / 1K results$8 / GB
  • When free requests run out, requests stop. No surprise charges — unless you have deposited funds
  • Adding a credit card is a verification step only; you are not charged unless your free tier is exhausted and you have funds deposited
  • Set a spend cap in the control panel so pay-as-you-go usage never exceeds your budget

Full pricing, volume plans and enterprise →


Use Cases

Real-time research

Answer questions using live web data instead of training data. Search, then read the sources.

TaskTools
Search the web for current informationsearch_engine, search_engine_batch
Read a specific page as clean Markdownscrape_as_markdown, scrape_batch

Example prompts: "What's Tesla's current stock price?", "Get today's weather forecast for New York", "Find the most cited sources on EU AI regulation from the last 6 months".

E-commerce intelligence

Read product data as structured JSON: price, availability, rating, review count, seller, images.

TaskTools
Products and search results from Amazon, Walmart, eBay, Etsy, Home Depot and other stores. Reviews from Walmartsearch_scrapers → get_scraper_details → run_scraper

Example prompts: "Compare this laptop's price on Amazon vs Walmart vs eBay", "Get the rating and review count for ASIN B0D2Q9397Y", "Is this product in stock?".

Market and competitor analysis

Build competitor profiles from live data: funding, headcount, hiring, customer reviews, pricing pages.

TaskTools
Company funding, size, employees, job postings (Crunchbase, ZoomInfo, LinkedIn)search_scrapers → run_scraper
Customer sentiment (Facebook company reviews, app store reviews)search_scrapers → run_scraper
Competitor pricing pagesscrape_as_markdown, scrape_batch
Market discoverysearch_engine_batch

Example prompt: "Analyze Notion as a competitor: pricing, funding, hiring focus, and what customers complain about".

AI agents with reliable web access

Replace built-in fetch and search tools. Pages that need JavaScript or clicks go to the remote browser tools.

TaskTools
Drop-in replacement for built-in web searchsearch_engine
Drop-in replacement for built-in URL fetchscrape_as_markdown
Parallel data collection (5 at a time)search_engine_batch, scrape_batch
Interactive sites (infinite scroll, dynamic content, forms)scraping_browser_* (14 tools)

Coding agents

Package registry data on demand — no scraping, no stale caches.

TaskTools
npm and PyPI package version, README, metadatarun_scraper with the npmjs or pypi scraper (find them with search_scrapers)
Read files from GitHub repositoriesrun_scraper with the GitHub repository scraper

Example prompts: "What's the latest version of express on npm?", "Get the README for the langchain-brightdata PyPI package".

GEO and brand visibility

Send a prompt to ChatGPT or Perplexity and get the answer text back as Markdown. Each call sends one prompt.

TaskTools
Send a prompt to ChatGPT (web search off) and get the answer text as Markdownchatgpt_ai_insights
Send a prompt to Perplexity and get the answer text as Markdownperplexity_ai_insights

Example prompt: "Ask ChatGPT and Perplexity 'what is the best proxy provider' and compare how each one ranks us".

Social media monitoring

Structured data from every major platform: profiles, posts, comments, engagement metrics. Each platform has scrapers per data type (LinkedIn profiles, Instagram reels, TikTok comments, ...); find them with search_scrapers and run them with run_scraper.

PlatformExamples of scrapers
LinkedInperson profiles, company profiles, job listings, posts, people search
Instagramprofiles, posts, reels, comments
TikTokprofiles, posts, shop, comments
Facebookprofiles, posts, marketplace listings, company reviews, events
YouTubevideos, channels, comments
X (Twitter)posts, posts by profile
Redditposts, comments

Example prompt: "Get the last 10 posts from this TikTok profile and summarize the engagement".

Content creation and academic research

Gather source material from many pages at once, filtered by recency and relevance.

TaskTools
Collect multiple sources in one callscrape_batch (up to 5 URLs)
Newssearch_engine with news queries

Tool Selection: Groups

Tools are organized into groups so you only load what you need. Fewer tools means less context for your agent to process.

  • With no GROUPS or TOOLS, all 30 tools are enabled. Setting either one limits the server to those tools only
  • GROUPS enables tool bundles. Comma-separated: GROUPS="scrapers,browser" (local) or &groups=scrapers,browser (hosted URL)
  • TOOLS adds individual tools on top: TOOLS="scrape_batch,session_stats". On its own, it enables only the tools you list
  • Every group also includes search_engine, scrape_as_markdown and ask_brightdata_assistant
  • Group ID custom is reserved; use TOOLS for individual picks
Group IDContentsTool count
scrapersSearch and run any pre-built Web Scraper API scraper (Amazon, LinkedIn, TikTok, npm, ...)6
browserRemote browser automation14
geoChatGPT and Perplexity response collection2
advanced_scrapingBatch tools, session stats3

Older group IDs (ecommerce, social, business, finance, research, app_stores, travel, code) still work and enable the scrapers tools; social and business also add search_dataset and list_dataset_fields. Old web_data_* names in TOOLS enable the scrapers tools too.

Configuration examples

Local server with browser automation and batch tools:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>",
        "GROUPS": "browser,advanced_scraping"
      }
    }
  }
}

Coding agent setup (Claude Code / Cursor / Windsurf) — npm, PyPI and GitHub data through the pre-built scrapers:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>",
        "GROUPS": "scrapers"
      }
    }
  }
}

Tools Reference (30 Tools)

Which tool to use

  • Known URL, need the content: scrape_as_markdown. Multiple URLs (up to 5): scrape_batch
  • Need to find information: search_engine. Multiple queries (up to 5): search_engine_batch
  • Structured data from a known platform (Amazon, LinkedIn, TikTok, npm, PyPI, etc.): search_scrapers → get_scraper_details → run_scraper. Returns JSON records. If the run takes longer than 45 seconds, run_scraper returns a snapshot_id: check it with get_scraper_progress, then read the records with get_scraper_results
  • Raw HTML: scrape_as_markdown with format: 'html'
  • Page cut at 40,000 characters: call scrape_as_markdown again with snapshot_id and start from the result's next field. The rest is read from the saved page at no extra cost
  • Page needs JavaScript or interaction (click, type, scroll): scraping_browser_* tools. The scrape tools don't render JavaScript
  • How ChatGPT/Perplexity answer a prompt: chatgpt_ai_insights / perplexity_ai_insights
  • Question about Bright Data itself (products, zones, errors, setup): ask_brightdata_assistant

Notes on scraper runs:

  • Return structured JSON, billed per record returned
  • Records with an error field explain inputs that failed, e.g. a URL of the wrong type
  • Results can be large. Keep limit_per_input low for discover_by_* methods and run bulk collection in a subagent where your framework supports it, so records don't flood the main context window
  • If a run fails, scrape_as_markdown works on the same URL as a fallback
<details> <summary><b>Search and Scraping — 5 tools</b></summary>
ToolDescriptionGroup
search_engineSearch Bing (default) or Google. Returns JSON (link, title, description), 10 results per page. Params: country, page (from 0), time_range (hour, day, week, month, year, any; Bing supports only day, week, year). Times out after 55 sdefault / every group
search_engine_batchUp to 5 search queries in one call. Searches not done within 55 s return a timeout errordefault / advanced_scraping
scrape_as_markdownAny URL. Returns the content as markdown (default), text, html or ld_json. No JavaScript rendering. Pages over 40,000 characters are cut; to read the rest at no extra cost, call again with snapshot_id and start from the result's next fielddefault / every group
scrape_batchUp to 5 URLs in one call. Returns the content as markdown (default), text, html or ld_json. 40,000 characters in total, shared between pages; each cut page has a next for scrape_as_markdowndefault / advanced_scraping
session_statsTool usage counts for the current sessiondefault / advanced_scraping
</details> <details> <summary><b>Web Scraper API — 6 tools</b></summary>

Search and run any of Bright Data's 1,200+ pre-built scrapers. The scraper list is loaded from docs.brightdata.com/scrapers.json and refreshed daily. Available on both the hosted and the local server. Enabled by default when no tools or groups are selected; otherwise add the scrapers group (&groups=scrapers on the hosted URL, GROUPS=scrapers locally).

Typical flow: search_scrapers → get_scraper_details → run_scraper. Runs are billed per record; discover_by_* methods collect up to limit_per_input records per input (default 10).

ToolDescriptionGroup
search_scrapersFind scrapers by site or data type (e.g. "amazon reviews", "linkedin.com"). Returns dataset ID, name, domain and collection methodsdefault / scrapers
get_scraper_detailsDescription, input fields, example input and main output fields for one scraper methoddefault / scrapers
run_scraperRun a scraper method. Waits up to 45 seconds; if still running, returns a snapshot_id to check laterdefault / scrapers
get_scraper_progressStatus of a run: starting, running, ready, failed or canceleddefault / scrapers
get_scraper_resultsRecords of a finished rundefault / scrapers
refresh_scrapersReload the scraper list now instead of waiting for the daily refreshdefault / scrapers
</details> <details> <summary><b>Browser Automation — 14 tools</b></summary>

Remote browser session. Typical sequence: navigate → snapshot → interact by ref → extract or screenshot.

ToolDescription
scraping_browser_navigateOpen or reuse a browser session and navigate to a URL
scraping_browser_go_backNavigate back
scraping_browser_go_forwardNavigate forward
scraping_browser_snapshotARIA snapshot of the page listing interactive elements with refs. Required before ref-based actions
scraping_browser_click_refClick an element by ref from the latest snapshot
scraping_browser_type_refType into an element by ref; optionally press Enter to submit
scraping_browser_fill_formFill several form fields by ref in one call
scraping_browser_screenshotScreenshot of the current page; optional full_page
scraping_browser_get_textText content of the page body
scraping_browser_get_htmlHTML of the current page
scraping_browser_scrollScroll to the bottom of the page
scraping_browser_scroll_to_refScroll an element into view
scraping_browser_wait_for_refWait for an element to become visible, with optional timeout
scraping_browser_network_requestsNetwork requests since page load: method, URL, status

Refs come from the latest snapshot. If the page changes after a click or navigation, take a new snapshot before the next ref-based action. For static pages, scrape_as_markdown is faster and cheaper than a browser session.

</details> <details> <summary><b>GEO and LLM Visibility — 2 tools</b></summary>
ToolInputReturns
chatgpt_ai_insightsPromptChatGPT's answer as Markdown
perplexity_ai_insightsPromptPerplexity's answer as Markdown

Use for Generative Engine Optimization (tracking how LLMs describe your brand) and LLM-as-a-judge workflows.

</details> <details> <summary><b>Dataset Search — 2 tools</b></summary>

Filter search over stored LinkedIn datasets; returns matching records at once, with no scraper run.

ToolDescriptionGroup
list_dataset_fieldsFilterable fields of a dataset (name, type, description). Call before search_datasetdefault / social, business
search_datasetRecords matching a filter, up to 10 per call, with a cursor for moredefault / social, business
</details> <details> <summary><b>Bright Data Assistant — 1 tool</b></summary>
ToolDescriptionGroup
ask_brightdata_assistantAsk Sophie, Bright Data's support assistant, about products, APIs, zones, errors or account setup. Pass the returned dialog_id to ask a follow-up in the same threaddefault / every group
</details>

Full tool reference in the docs →


Agent Skills

Bright Data's agent skills teach your agent when and how to use Bright Data. They live at github.com/brightdata/skills. Start with agent-onboarding.


Configuration

Basic setup (local)

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "your-token-here"
      }
    }
  }
}

Advanced configuration

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "your-token-here",
        "RATE_LIMIT": "100/1h",
        "SERP_ZONE": "custom_serp",
        "BROWSER_ZONE": "custom_browser"
      }
    }
  }
}

Environment variables

VariableDescriptionDefaultExample
API_TOKENYour Bright Data API token (required)-your-token-here
RATE_LIMITCustom rate limitingunlimited100/1h, 50/30m
SERP_ZONECustom SERP API zone name, used by the search toolsmcp_serpmy_serp_zone
BROWSER_ZONECustom Browser zone namemcp_browsermy_browser_zone
CONTENT_GATEWhen page content returned by a data tool looks like instructions to change the MCP configuration, the server asks the user (via MCP elicitation) before returning it. Set to off to disableonoff
CONTENT_GATE_TIMEOUTSeconds to wait for the user's answer before withholding the content12060, 300
BROWSER_FILTERED_SNAPSHOTscraping_browser_snapshot always lists only buttons, links and fields. Saves tokens, and stops page text posing as a clickable element (for sensitive tasks). If necessary, Page text can then be read with scraping_browser_get_textoffon
BASE_TIMEOUTRequest timeout in seconds for the search and dataset tools (search also stops at 55 s)No limit60, 120
BASE_MAX_RETRIESMax retries for the search and dataset tools on transient errors (0-3)01, 3
GROUPSComma-separated tool group IDs. Limits the server to these groupsAll toolsscrapers,browser
TOOLSComma-separated individual tool names. Limits the server to these toolsAll toolsscrape_batch,session_stats

Content gate

scrape_as_markdown, search_engine and their batch variants return whatever a web page says. If that content contains text that reads like instructions to change your MCP configuration — register a server, run an npx -y package, edit the MCP config file — the server pauses and asks you, through your MCP client, before returning it. Approve and the content is returned unchanged; decline and it is withheld with a short explanation to the assistant. Pages that do not contain such text are returned exactly as before, with no prompt. For a batch call, only the matching items are withheld.

Pages that are about MCP configuration (documentation, READMEs) will naturally prompt. Clients that do not support MCP elicitation get the matching content withheld; set CONTENT_GATE=off if you accept the risk. While the server waits for your answer it reports progress; clients that do not extend their tool timeout on progress will cap the wait at their own limit — CONTENT_GATE_TIMEOUT is the knob on the server side. Browser tools are not covered.


Documentation

ResourceLink
API documentationdocs.brightdata.com/ai/mcp-server/overview
Full tools referencedocs.brightdata.com/ai/mcp-server/tools
Agent skillsgithub.com/brightdata/skills
Usage examplesexamples
ChangelogCHANGELOG.md

Troubleshooting

<details> <summary><b>Common issues and solutions</b></summary>

"spawn npx ENOENT" error

Install Node.js, or use the full path to node:

"command": "/usr/local/bin/node"  // macOS/Linux
"command": "C:\\Program Files\\nodejs\\node.exe"  // Windows

Timeouts on complex sites

Increase the timeout in your client settings to 180s.

Authentication issues

Verify your API token is valid and has the required permissions. Tokens are managed in account settings.

run_scraper returns errors or no data

Records with an error field explain inputs that failed. Compare your input with sample_input from get_scraper_details (e.g., Amazon product URLs contain /dp/, Walmart ones /ip/) and check the page is publicly accessible. scrape_as_markdown works on the same URL as a fallback.

Remote server connection fails

Check your internet connection and firewall settings.

</details>

Contributing

Please follow Bright Data's coding standards.


Support

ChannelLink
GitHub issuesgithub.com/brightdata/brightdata-mcp/issues
Documentationdocs.brightdata.com/ai/mcp-server/overview
Emailsupport@brightdata.com

License

MIT © Bright Data Ltd.

Brightdata MCP alternatives

View more →

Similar mcp servers in Web Scraping & Data, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Brightdata MCP (this page)
brightdata
2.7kMITOct 29, 2026Scanned, no flagged issues
Scrapling
D4Vinci
91kBSD-3-ClauseOct 31, 2026Scanned, no flagged issues
Apify MCP Server
apify
14kMITOct 31, 2026Scanned, no flagged issues
Firecrawl MCP Server
firecrawl
7.7kMITOct 29, 2026Scanned, no flagged issues
Unstract
Zipstack
7.4kAGPL-3.0Oct 30, 2026Scanned, no flagged issues
Exa MCP Server
exa-labs
5.2kMITOct 30, 2026Scanned, no flagged issues