Comprehensive Python MCP server wrapping Bright Data's full REST API (350+ endpoints)
Project description
brightdata-mcp-full
Comprehensive Python MCP server wrapping Bright Data's REST API — 149 tools across 15 product groups, auto-generated from 19 OpenAPI specs.
Why this exists
Bright Data's official MCP server is excellent — 60+ tools focused on scraping and web access. But Bright Data's REST API is much larger: account management, proxy zones, IPs, billing, statistics, the LPM proxy manager, deep lookup, archive API, scraping shield, marketplace datasets, and more.
brightdata-mcp-full complements the official MCP by exposing everything else as a standalone, group-organized MCP server. Run them side by side:
// .mcp.json
{
"mcpServers": {
"brightdata": { "url": "https://mcp.brightdata.com/mcp?token=..." }, // official: scraping
"brightdata-full": { "command": "uv", "args": ["run", "python", "server.py"] } // this: everything else
}
}
Status
v0.1-alpha. Codegen pipeline merged, 149 tools generated, integration QA in progress (Round 5 of multi-agent build). See SPEC.md → "Reality Check" for the gap between the original spec estimate (350 tools) and the actual surface BD ships publicly (149 unique REST operations after dedup).
Tool groups
| Group | Tools | Source OpenAPI specs |
|---|---|---|
account_management |
70 | openapi, openapi-reseller |
marketplace_dataset |
25 | dca-api, datasets-rest-api |
scraper_studio |
13 | web-scraper-ide-rest-api |
deep_lookup |
9 | deep-lookup |
archive |
6 | web-archive-api |
misc |
6 | async-api-reference, filter-csv-json, dca-custom-inputs |
scraping_shield |
4 | scraping-shield-rest-api |
scrapers |
3 | scraper-rest-api, crawl-rest-api |
serp |
3 | serp-rest-api |
proxy |
3 | proxy-rest-api |
unlocker_rest |
3 | unlocker-rest-api |
browser_api |
2 | browser-api |
proxy_manager |
1 | proxy-manager |
video_downloader |
1 | video-downloader |
rest_api |
0 | (no spec mapped — endpoints absorbed into account_management) |
| Total | 149 | 19 specs |
Full per-tool catalog: docs/groups.md. Auto-generated, regenerable via uv run python scripts/generate_groups_doc.py > docs/groups.md.
What's covered, what's not
Covered (149 tools): every public REST operation BD ships in their English-language OpenAPI specs — account/zone/IP management, deep lookup, web archive, marketplace datasets, scraping shield, generic scrapers/SERP/proxy/unlocker REST endpoints, browser API session management, video downloader.
Not covered:
- Per-platform scrapers (Amazon, LinkedIn, Instagram, TikTok, Reddit, ...) — BD doesn't ship per-platform OpenAPI specs publicly. The generic
bd_scrapers_*(3 tools) cover the trigger/snapshot pattern; per-platform discovery happens via dataset IDs. - SERP engine variants (one tool per engine) — BD exposes a single generic
bd_serp_create_requestthat takes engine as a parameter; not 68 separate engines. - LPM (Local Proxy Manager) deep features — most LPM controls are CLI flags, not REST endpoints. The single
proxy_managertool covers what's exposed via REST. - Native proxy access (
brd-customer-...:zone-...:password@brd.superproxy.io:33335) — out of scope for an MCP wrapper. Use BD's proxy SDK or your HTTP client's proxy settings. - Browser API WebSocket (
wss://brd.superproxy.io:9222) — consumed by Playwright/Puppeteer directly. The MCP exposes only the REST management endpoints (bd_browser_api_*). - Scraping/AI tools already in BD's official MCP (
web_data_*,scraping_browser_*,search_engine, ...) — intentionally not duplicated. Run both servers side by side.
If BD ships new public OpenAPI specs, regenerate via uv run python scripts/regenerate.py to pick them up.
Design highlights
- Auto-generated from 19 OpenAPI specs —
uv run python scripts/regenerate.pyto refresh tools when BD's API changes - Group-based runtime selection via
GROUPS=env var (default:account_management) — keeps Claude's context lean - Write-gate via
BD_ENABLE_WRITES=true— read-only by default for safety; explicit opt-in for ops that create/delete/modify resources - Zero magic — every tool is plain Python with typed args and
bd_requestHTTP client; easy to read/audit intools/<group>/ - Stdio MCP in v1, hosted HTTP/SSE planned for v2
Quick start (alpha)
git clone https://github.com/artgas1/brightdata-mcp-full
cd brightdata-mcp-full
uv sync
export BRIGHT_DATA_API_TOKEN=your_token
uv run python server.py # stdio MCP server
Wire into Claude Code (or Claude Desktop / Cursor):
{
"mcpServers": {
"brightdata-full": {
"command": "uv",
"args": ["run", "--directory", "/path/to/brightdata-mcp-full", "python", "server.py"],
"env": {
"BRIGHT_DATA_API_TOKEN": "your-token-here",
"GROUPS": "account_management,deep_lookup",
"BD_ENABLE_WRITES": "false"
}
}
}
}
For more recipes see docs/examples.md. For auth/token setup: docs/auth.md. When something breaks: docs/troubleshooting.md.
Roadmap
- Spec approved
- Scaffolding (FastMCP, lib/client, lib/safety, 3 smoke tools) — Round 1
- Codegen pipeline + 149 tools auto-generated — Round 2
- Integration QA (live API smoke per group) — Round 3 (in progress)
- Docs polish (this PR) — Round 5
- v1.0 release on PyPI
- v1.1 — hand-wraps for popular per-platform scrapers (community-driven)
- v1.2 — hosted HTTP/SSE transport
- v2.0 — caching layer for read-only ops + audit log for writes
Contributing
Issues and PRs welcome. Please open a discussion before sinking time into a large change so we can align on shape.
If you want a tool that's missing because BD doesn't ship a public OpenAPI spec for it, file an issue with the endpoint URL and a sample curl — we can hand-wrap it under the appropriate group.
Disclaimer
This is an unofficial community wrapper. Not affiliated with or endorsed by Bright Data. Built to fill a gap — the official MCP focuses on scraping; this one covers everything else.
Bright Data is a trademark of Bright Data Ltd. Use a valid Bright Data API token from your account settings.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file brightdata_mcp_full-0.1.0.tar.gz.
File metadata
- Download URL: brightdata_mcp_full-0.1.0.tar.gz
- Upload date:
- Size: 129.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf25f908c59766a44be74ef970d373e626436e245f4cddf3152a7965914df72e
|
|
| MD5 |
6e5a3480f543ee1e5fa01b0d09245bb4
|
|
| BLAKE2b-256 |
695a2f793e47c530663188ce6d4ad8a70e2b2697efbb2bb490fda9ac03c82556
|
Provenance
The following attestation bundles were made for brightdata_mcp_full-0.1.0.tar.gz:
Publisher:
publish.yml on artgas1/brightdata-mcp-full
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
brightdata_mcp_full-0.1.0.tar.gz -
Subject digest:
bf25f908c59766a44be74ef970d373e626436e245f4cddf3152a7965914df72e - Sigstore transparency entry: 1437365990
- Sigstore integration time:
-
Permalink:
artgas1/brightdata-mcp-full@c7a78767e1d28133fc94106403b5847e37feed62 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/artgas1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c7a78767e1d28133fc94106403b5847e37feed62 -
Trigger Event:
push
-
Statement type:
File details
Details for the file brightdata_mcp_full-0.1.0-py3-none-any.whl.
File metadata
- Download URL: brightdata_mcp_full-0.1.0-py3-none-any.whl
- Upload date:
- Size: 164.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
272116e6214059cc99ca77079768c770c26678dfc7abc1e739c324b33671dec6
|
|
| MD5 |
15cb808fd5f1ad998d010b5b6d1666b2
|
|
| BLAKE2b-256 |
4f2b65b053f57f091666bceafcab92b4facdd60e1a4e270f887283135a0a53c8
|
Provenance
The following attestation bundles were made for brightdata_mcp_full-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on artgas1/brightdata-mcp-full
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
brightdata_mcp_full-0.1.0-py3-none-any.whl -
Subject digest:
272116e6214059cc99ca77079768c770c26678dfc7abc1e739c324b33671dec6 - Sigstore transparency entry: 1437365996
- Sigstore integration time:
-
Permalink:
artgas1/brightdata-mcp-full@c7a78767e1d28133fc94106403b5847e37feed62 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/artgas1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c7a78767e1d28133fc94106403b5847e37feed62 -
Trigger Event:
push
-
Statement type: