Welcome to the official Bright Data Model Context Protocol (MCP) server, enabling LLMs, agents and apps to access, discover and extract web data in real-time. This server allows MCP clients, such as Claude Desktop, Cursor, Windsurf and others, to seamlessly search the web, navigate websites, take action and retrieve data - without getting blocked - perfect for scraping tasks.
- ๐ฌ Demo
- โจ Features
- ๐ก Usage Examples
- ๐ Quickstart with Claude Desktop
- ๐ง Available Tools
โ ๏ธ Security Best Practices- ๐ง Account Setup
- ๐ Other MCP Clients
- ๐ฎ Try Bright Data MCP Playgrounds
โ ๏ธ Troubleshooting- ๐จโ๐ป Contributing
- ๐ Support
The videos below demonstrate a minimal use case for Claude Desktop:
bright-data-mcp-scraping-browser-demo-claude.mp4
bright-data-mcp-with-claude-quick-demo.mp4
For YouTube tutorials and demos: Demo
- Real-time Web Access: Access up-to-date information directly from the web
- Bypass Geo-restrictions: Access content regardless of location constraints
- Web Unlocker: Navigate websites with bot detection protection
- Browser Control: Remote browser automation capabilities
- Seamless Integration: Works with all MCP-compatible AI assistants
Some example queries that this MCP server will be able to help with:
- "Google some movies that are releasing soon in [your area]"
- "What's Tesla's current market cap?"
- "What's the Wikipedia article of the day?"
- "What's the 7-day weather forecast in [your location]?"
- "Of the 3 highest paid tech CEOs, how long have their careers been?"
Through Claude Desktop Extension:
-
Download the Claude Desktop Extension:
๐ฆ Bright Data's MCP Extension -
Open Claude and go to:
Settings
โExtensions
-
Drag the
.dtx
file from Step 1 into the dropping area. -
Enable the service and restart Claude.
-
Enjoy!
-
Install
nodejs
to get thenpx
command (node.js module runner). Installation instructions can be found on the node.js website -
Go to Claude > Settings > Developer > Edit Config > Edit "claude_desktop_config.json" to include the following:
{
"mcpServers": {
"Bright Data": {
"command": "npx",
"args": ["@brightdata/mcp"],
"env": {
"API_TOKEN": "<insert-your-api-token-here>",
}
}
}
}
{
"mcpServers": {
"Bright Data": {
"command": "npx",
"args": ["@brightdata/mcp"],
"env": {
"API_TOKEN": "<insert-your-api-token-here>",
"RATE_LIMIT": "<optional if you want to change rate limit format: limit/time+unit, e.g., 100/1h, 50/30m, 10/5s>",
"WEB_UNLOCKER_ZONE": "<optional if you want to override the web unlocker zone name - default is mcp_unlocker>",
"BROWSER_ZONE": "<optional if you want to override the browser zone name - defaults is mcp_browser>"
}
}
}
}
Important: Always treat scraped web content as untrusted data. Never use raw scraped content directly in LLM prompts to avoid potential prompt injection risks. Instead:
- Filter and validate all web data before processing
- Use structured data extraction rather than raw text (web_data tools)
-
Make sure you have an account on brightdata.com (new users get free credit for testing, and pay as you go options are available)
-
Get your API key from the user settings page, or from the welcome email you received
-
Configure rate limiting:
- Set the
RATE_LIMIT
environment variable to control API usage - Format:
limit/time+unit
(e.g.,100/1h
for 100 calls per hour) - Supported time units: seconds (s), minutes (m), hours (h)
- Examples:
RATE_LIMIT=100/1h
,RATE_LIMIT=50/30m
,RATE_LIMIT=10/5s
- Rate limiting is session-based (resets when server restarts)
- Set the
-
Create a custom Web Unlocker zone
- By default, we create a Web Unlocker zone automatically using your API token
- For more control, you can create your own Web Unlocker zone in your control panel and specify it with the
WEB_UNLOCKER_ZONE
environment variable
-
Create a custom Browser API zone:
- By default, we create a Browser API zone automatically using your API token.
- For more control, you can create your own Browser API zone in your control panel and specify it with the
BROWSER_ZONE
environment variable
To use this MCP server with other agent types, you should adapt the following to your specific software:
- Before running the server, make sure the
API_TOKEN=<your-token>
environment variable is set - The full command to run the MCP server is
npx @brightdata/mcp
export API_TOKEN=your-token
npx @brightdata/mcp
set API_TOKEN=your-token
npx @brightdata/mcp
$env:API_TOKEN="your-token"
npx @brightdata/mcp
๐ก Tip: You can also use a
.env
file and a tool likedotenv
to manage environment variables more easily during development.
Want to try Bright Data MCP without setting up anything?
Check out this playground on Smithery:
This platform provides an easy way to explore the capabilities of Bright Data MCP without any local setup. Just sign in and start experimenting with web data collection!
Some tools can involve reading web data, and the amount of time needed to load the page can vary by quite a lot in extreme circumstances.
To ensure that your agent will be able to consume the data, set a high enough timeout in your agent settings.
A value of 180s
should be enough for 99% of requests, but some sites load slower than others, so tune this to your needs.
This error occurs when your system cannot find the npx
command. To fix it:
macOS:
which node
Shows path like /usr/local/bin/node
Windows:
where node
Shows path like C:\Program Files\nodejs\node.exe
Replace the npx
command with the full path to Node, for example, on mac, it will look as follows:
"command": "/usr/local/bin/node"
We welcome contributions to help improve the Bright Data MCP! Here's how you can help:
- Report Issues: If you encounter any bugs or have feature requests, please open an issue on our GitHub repository.
- Submit Pull Requests: Feel free to fork the repository and submit pull requests with enhancements or bug fixes.
- Coding Style: All JavaScript code should follow Bright Data's JavaScript coding conventions. This ensures consistency across the codebase.
- Documentation: Improvements to documentation, including this README, are always appreciated.
- Examples: Share your use cases by contributing examples to help other users.
For major changes, please open an issue first to discuss your proposed changes. This ensures your time is well spent and aligned with project goals.
If you encounter any issues or have questions, please reach out to the Bright Data support team or open an issue in the repository.