2Captcha MCP
OFFICIAL SERVERWeb search, scraping, marketplace parsing and captcha solving through the 2Captcha service
Web search, unblocked page scraping, pre-built scrapers and a remote browser, run through Bright Data
Official · Bright Data JavaScript Remote (hosted) · Streamable HTTPLocal · stdio Web searchBrowser automation
93 popularity score ★ 2.7k ↓ 23k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
https://mcp.brightdata.com/mcp?token=<API_TOKEN>claude mcp add --transport http brightdata "https://mcp.brightdata.com/mcp?token=<API_TOKEN>"{
"mcpServers": {
"brightdata": {
"url": "https://mcp.brightdata.com/mcp?token=<API_TOKEN>"
}
}
}{
"servers": {
"brightdata": {
"type": "http",
"url": "https://mcp.brightdata.com/mcp?token=<API_TOKEN>"
}
}
}{
"mcpServers": {
"brightdata": {
"serverUrl": "https://mcp.brightdata.com/mcp?token=<API_TOKEN>"
}
}
}{
"mcpServers": {
"brightdata": {
"httpUrl": "https://mcp.brightdata.com/mcp?token=<API_TOKEN>"
}
}
}{
"context_servers": {
"brightdata": {
"url": "https://mcp.brightdata.com/mcp?token=<API_TOKEN>"
}
}
}{
"brightdata": {
"url": "https://mcp.brightdata.com/mcp?token=<API_TOKEN>"
}
}Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs API_TOKEN. Replace each <NAME> with your value.
claude mcp add bright-data -e API_TOKEN=<API_TOKEN> -- npx @brightdata/mcp{
"mcpServers": {
"bright-data": {
"command": "npx",
"args": [
"@brightdata/mcp"
],
"env": {
"API_TOKEN": "<API_TOKEN>"
}
}
}
}{
"mcpServers": {
"bright-data": {
"command": "npx",
"args": [
"@brightdata/mcp"
],
"env": {
"API_TOKEN": "<API_TOKEN>"
}
}
}
}{
"servers": {
"bright-data": {
"type": "stdio",
"command": "npx",
"args": [
"@brightdata/mcp"
],
"env": {
"API_TOKEN": "<API_TOKEN>"
}
}
}
}[mcp_servers.bright-data]
command = "npx"
args = ["@brightdata/mcp"]
[mcp_servers.bright-data.env]
API_TOKEN = "<API_TOKEN>"gemini mcp add --scope user -e API_TOKEN=<API_TOKEN> bright-data npx -- @brightdata/mcpAPI_TOKEN secret |
Required: Bright Data API token; the server will not start without it. |
|---|---|
RATE_LIMIT |
Optional: Call cap such as 100/1h or 50/30m; a bad format stops the server starting. |
SERP_ZONE |
Optional: SERP zone used by the search tools, created on the account at start if missing. |
BROWSER_ZONE |
Optional: Browser zone used by the browser tools, created at start if missing. |
BROWSER_FILTERED_SNAPSHOT |
Optional: Set to on so snapshots list only buttons, links and fields. |
BASE_TIMEOUT |
Optional: Request timeout in seconds for the search tools. |
BASE_MAX_RETRIES |
Optional: Retries on transient errors for the search tools, capped at 3. |
| Set together: tool selection | |
GROUPS |
Optional: Comma-separated groups (scrapers, browser, geo, advanced_scraping) to limit the server to. |
TOOLS |
Optional: Comma-separated tool names; adds to GROUPS, or on its own enables only these. |
| Set together: content gate | |
CONTENT_GATE |
Optional: Set to off to stop asking before returning pages that read like MCP configuration instructions. |
CONTENT_GATE_TIMEOUT |
Optional: Seconds to wait for the user's answer before withholding gated content. |
Bright Data MCP is Bright Data's own server for giving an assistant live access to public web pages. Requests go out through Bright Data's proxy and unblocking network, which handles bot checks, CAPTCHAs and geo-restrictions, so sites that turn away a plain HTTP fetch can still be read.
There are 30 tools, and all of them are on unless GROUPS or TOOLS is set. Search runs on Bing by default or on Google, ten results a page, with a country and a time range. Page fetches now go through Bright Data's Fetch API, and the one scrape tool returns Markdown, plain text, raw HTML or schema.org data depending on its format argument. The old scrape_as_html and extract tools are gone, and pages are not rendered with JavaScript. Six tools search and run the catalogue of over 1,200 pre-built scrapers, which hand back JSON records for sites like Amazon, LinkedIn, TikTok, npm and PyPI. Fourteen drive a remote browser. Two send a prompt to ChatGPT or Perplexity, two filter stored LinkedIn datasets, and ask_brightdata_assistant asks Bright Data's support assistant. Two prompts walk an assistant through picking a tool.
Every group keeps search_engine, scrape_as_markdown and ask_brightdata_assistant. The hosted endpoint takes the same choice as query parameters, with the token in the URL and nothing installed. Locally it is a Node process started with npx.
Two things you only see in the code (fetch_api.js, server.js): a fetched page is cut to 200,000 characters, or 100,000 per page in scrape_batch, with a note saying so. And on start the local server checks the account for its SERP and browser zones and creates any that are missing.
It is a paid service with 5,000 free requests a month, after which requests stop unless funds have been deposited. Pay-as-you-go is listed at $1.50 per 1,000 search or scrape results and $8 per GB of browser traffic. Scraper runs are billed per record.
| To run it yourself | Node.js |
|---|---|
| Runs on | macOS, Windows, Linux |
| Bright Data | Free tier5,000 requests a month free; beyond that pay-as-you-go once funds are deposited |
Create the API token in Bright Data's account settings (brightdata.com/cp/setting/users). The hosted endpoint needs only an MCP client that connects to a remote HTTP server; running locally needs Node.js with npx.
The free allowance is 5,000 requests a month and requests stop when it runs out unless the account holds funds. Batch tools take at most 5 queries or 5 URLs per call. Page fetches do not render JavaScript and pages are cut at 200,000 characters. run_scraper waits up to 45 seconds and then hands back a snapshot ID to poll. Scraper results can be large and are billed per record. The content gate that holds back pages carrying MCP configuration instructions does not cover the browser tools, and clients without MCP elicitation get such pages withheld.
Suits developers and agents that need pages from sites that block ordinary fetchers, or structured JSON from large platforms such as Amazon, LinkedIn or TikTok without writing parsers, and who accept paying Bright Data past the free tier. The hosted endpoint suits anyone who wants nothing installed. Look elsewhere for a free, keyless fetch tool, for requests that leave from your own machine rather than a vendor network, or for a browser that runs locally with your own logged-in sessions.
27 only read, 3 change things. A ? marks an optional parameter.
search_enginequery: stringengine?: enumcountry?: stringpage?: integertime_range?: enumsearch_engine_batchqueries: arrayscrape_as_markdownurl: stringformat?: enumscrape_batchurls: arrayformat?: enumsession_statsask_brightdata_assistantquestion: stringdialog_id?: stringsearch_scrapersquery: stringlimit?: integerget_scraper_detailsdataset_id: stringmethod: stringrun_scraperdataset_id: stringmethod: stringinput: arraylimit_per_input?: integerget_scraper_progresssnapshot_id: stringget_scraper_resultssnapshot_id: stringrefresh_scrapersscraping_browser_navigateurl: stringcountry?: stringscraping_browser_go_backscraping_browser_go_forwardscraping_browser_snapshotfiltered?: booleanscraping_browser_click_ref changesref: stringelement: stringscraping_browser_type_ref changesref: stringelement: stringtext: stringsubmit?: booleanscraping_browser_fill_form changesfields: arrayscraping_browser_screenshotfull_page?: booleanscraping_browser_get_textscraping_browser_get_htmlfull_page?: booleanscraping_browser_scrollscraping_browser_scroll_to_refref: stringelement: stringscraping_browser_wait_for_refref: stringelement: stringtimeout?: numberscraping_browser_network_requestschatgpt_ai_insightsprompt: stringperplexity_ai_insightsprompt: stringlist_dataset_fieldsdataset_id: stringsearch_datasetdataset_id: stringfilter: objectsize?: integersort?: anysearch_after?: arrayweb_scraping_strategydiagnose_scraping_approach