Brightdata MCP vs Fiber AI
A side-by-side look at the Brightdata MCP and Fiber AI MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Brightdata MCP for search & data extraction work as a local process; choose Fiber AI for search & data extraction over a hosted endpoint. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Brightdata MCP when
- You need dedicated capabilities in the Search & Data Extraction domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
API_TOKEN. - You want tools like
search_engine, scrape_as_markdown, search_engine_batch.
Choose Fiber AI when
- You need dedicated capabilities in the Search & Data Extraction domain.
- You prefer a remote HTTP/SSE transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
FIBER_API_KEY. - You want tools like
companySearch_tool, peopleSearch_tool, profileLiveEnrich_tool.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Search & Data Extraction | Search & Data Extraction |
| Quality signal | 73/100 · Great | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | API key required | API key required |
| Pricing | Freemium | BYOK (pay the provider) |
| Required env vars | API_TOKEN | FIBER_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2,685 | 0 |
| Directory activity | 4 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 11 | 10 |
| Full listing | View Brightdata MCP | View Fiber AI |
Tools & capabilities
Brightdata MCP tools 11
search_engineScrape search results from Google, Bing or Yandex. Returns SERP results in JSON or Markdown (URL, title, description),Ideal forgathering current information, news, and detailed search results.scrape_as_markdownScrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language. This tool can unlock any webpage even if it uses bot detection or CAPTCHA.search_engine_batchRun multiple search queries simultaneously. Returns JSON for Google, Markdown for Bing/Yandex.scrape_batchScrape multiple webpages URLs with advanced options for content extraction and get back the results in MarkDown language. This tool can unlock any webpage even if it uses bot detection or CAPTCHA.discoverSearch the web and rank results by AI-driven relevance. Returns scored results with title, description, and URL. Supports intent-based ranking, geo-targeting, date filtering, and keyword filtering.search_scrapersFind a Bright Data pre-built scraper (Web Scraper API, 1,200+ sites) for a site or data type, e.g. "amazon reviews" or "linkedin.com". Returns dataset_id, name, domain and collection_methods. Next: call get_scraper_details with a dataset_id and one method.get_scraper_detailsShow the scraper description, input fields, example input and main output fields for one method. Call before run_scraper and build the input from sample_input or input_fields. Records may contain more fields than output_fields lists.run_scraperRun a scraper method. input is a list of objects shaped like sample_input from get_scraper_details, one per URL or query. collect_by_url returns one record per input; discover_by_* methods return up to limit_per_input records per input, and every record is billed. Waits up to 45 seconds; if still running it returns snapshot_id with status "running": then poll get_scraper_progress and call get_scraper_results when ready. Records with an "error" field explain failed inputs.get_scraper_progressStatus of a run: starting, running, ready, failed or canceled.get_scraper_resultsRecords of a finished run. Returns status "running" if not ready yet.refresh_scrapersReload the scraper list now instead of waiting for the daily refresh.
Fiber AI tools 10
companySearch_toolOperationId: companySearch. Company search. USE THIS WHEN: - Company search. - Search for companies using filters. - Find matching entities with structured filters and pagination. DO NOT USE FOR: - Finding individual people (use peopleSearch) - Getting contact info like email (use syncContactEnrichment after finding profile) EXAMPLE: Input: companySearch_tool(searchParams={}, pageSize=123) INPUT SCHEMA: Required parameters: - searchParams (object): Search parameters for company search API. Properties: ['exactCompanyV2', 'domains', 'headquartersCountryCode', 'headquartersStateName', 'employeeCountV2', 'employeeCountRanges', 'keywords', 'industriesV2', 'stage', 'totalFundingUSD', 'lastFundingUSD', 'lastFundedOn', 'foundedOn', 'nameLike', 'exactCompany', 'acceleratorsV2', 'headquartersLocation', 'linkedinSlugs', 'specialFlags', 'employees', 'naicsCodes', 'fortuneRankings', 'jobPostingsV2', 'jobPostingStats', 'officeLocationsV2', 'tlds', 'numWordsInName', 'status', 'technologies', 'crunchbaseCategories', 'crunchbaseCategoryGroups', 'crunchbaseSlugs', 'investorsV2', 'technologiesV2', 'revenueRangeUSD', 'revenueRan...peopleSearch_toolOperationId: peopleSearch. People search. USE THIS WHEN: - People search. - Search for people using filters. - Find matching entities with structured filters and pagination. DO NOT USE FOR: - Getting email/phone directly (use syncContactEnrichment after finding profile) - Company searches (use companySearch) EXAMPLE: Input: peopleSearch_tool(searchParams={}, pageSize=123) INPUT SCHEMA: Required parameters: Optional parameters: - searchParams (object): Search parameters for people search. - country3LetterCode (['object', 'null']) - numConnections (['object', 'null']) - numFollowers (['object', 'null']) - approxAge (['object', 'null']) - keywords (['object', 'null']) - keywordsV2 (['object', 'null']) - keywordSearchOptions (['object', 'null']) - jobTitleV2 (['object', 'null']) - jobFunction (['object', 'null']) - exactProfile (['object', 'null']) - exactProfileV2 (['object', 'null']) - startedInRole (any) - startedAtCompany (any) - location (['object', 'null']) - lang...profileLiveEnrich_toolOperationId: profileLiveEnrich. Live fetch LinkedIn profile. USE THIS WHEN: - Live fetch LinkedIn profile. - Returns an enriched profile with details (work experience, education, skills, location, etc.) for a given LinkedIn profile identifier. **Note:** This endpoint does NOT return emails or phone numbers. To retrieve a person's contact details (emails and phone numbers), use the `POST /contact-details/single` endpoint (synchronous, recommended) or the `POST /individual-reveal/start` + `POST /individual-reveal/poll` pair (asynchronous). These can be found under the **Contact details** section. - Fetch fresh upstream profile/company/activity data. DO NOT USE FOR: - Batch operations (use search or batch APIs instead) EXAMPLE: Input: profileLiveEnrich_tool(identifier="example_string", getDetailedEducation="example") INPUT SCHEMA: Required parameters: - identifier (string): The profile's LinkedIn slug (e.g. 'williamhgates'), full LinkedIn URL (e.g. 'https://www.linkedin.com/in/williamhgates/'), Sales Navigator URN, or LinkedIn user ID (e.g. '443105112'). Optional parameters: - getDetailedEducation (['boolean', 'nu...companyLiveEnrich_toolOperationId: companyLiveEnrich. Live fetch LinkedIn company. USE THIS WHEN: - Live fetch LinkedIn company. - Returns an enriched company with details for a given LinkedIn company identifier. - Fetch fresh upstream profile/company/activity data. DO NOT USE FOR: - Batch operations (use search or batch APIs instead) EXAMPLE: Input: companyLiveEnrich_tool(type="example_string", value="example_string") INPUT SCHEMA: Required parameters: - type (string): - value (string): The company's LinkedIn slug (e.g. 'microsoft'), LinkedIn URL (e.g. 'https://www.linkedin.com/company/microsoft'), LinkedIn organization ID (e.g. '1441'), or Fiber company ID (e.g. 'comp_1441'). Optional parameters: - getHistoricalHeadcount (boolean): Whether to compute the company's overall employee count over time and recent growth trends. This returns total headcount through time, not a per-department breakdown — for per-department headcount, use the Depth Chart endpoints. No additional cost, but may take longer. RETURNS: Response object with keys: output, chargeInfo, warnings, advicegetQuickstartScript_toolOperationId: getQuickstartScript. Get quickstart install script. USE THIS WHEN: - Get quickstart install script. - Returns a bash script that signs up for a Fiber API trial and prints your API key. - Start an asynchronous workflow, then call the related poll/status endpoint. EXAMPLE: Input: getQuickstartScript_tool() INPUT SCHEMA: Required parameters: Optional parameters:getOrgCredits_toolOperationId: getOrgCredits. Get organization credits. USE THIS WHEN: - Get organization credits. - Get credits for an organization. - Inspect or manage account-level billing and usage settings. EXAMPLE: Input: getOrgCredits_tool() INPUT SCHEMA: Required parameters: Optional parameters: RETURNS: Response object with keys: output, chargeInfo, warnings, advicegetRateLimits_toolOperationId: getRateLimits. Get organization rate limits. USE THIS WHEN: - Get organization rate limits. - Returns the effective rate limits for all API endpoints for your organization. If your organization has custom rate limits on any endpoint, those are reflected here. - Inspect or manage account-level billing and usage settings. EXAMPLE: Input: getRateLimits_tool() INPUT SCHEMA: Required parameters: Optional parameters: RETURNS: Response object with keys: output, chargeInfo, warnings, advicegetAutoTopupSettings_toolOperationId: getAutoTopupSettings. Get auto top-up settings. USE THIS WHEN: - Get auto top-up settings. - Get the organization's auto top-up configuration. When configured is false, no auto top-up settings exist yet. - Inspect or manage account-level billing and usage settings. EXAMPLE: Input: getAutoTopupSettings_tool() INPUT SCHEMA: Required parameters: Optional parameters: RETURNS: Response object with keys: output, chargeInfo, warnings, advicecardsAttach_toolOperationId: cardsAttach. Attach card to trial account. USE THIS WHEN: - Attach card to trial account. - Attach a payment card to a cardless trial organization using a single-use Stripe shared payment token. The card is verified with a temporary $1 authorization that is refunded immediately (net cost $0), and the organization's free-credit ceiling is raised. The verified card is not saved for future charges — every future paid top-up requires a freshly-minted shared payment token. - Inspect or manage account-level billing and usage settings. EXAMPLE: Input: cardsAttach_tool(sharedPaymentGrantedToken="example_string") INPUT SCHEMA: Required parameters: - sharedPaymentGrantedToken (string): Single-use Stripe shared payment token (`spt_...`) authorizing exactly one card handoff. Mint it on the buyer side (see https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens); each request must submit a freshly-minted token. Optional parameters: RETURNS: Response object with keys: output, chargeInfo, warnings, advicegetAllApiKeys_toolOperationId: getAllApiKeys. List API keys. USE THIS WHEN: - List API keys. - List all API keys for your organization, including each key's name, prefix, expiration, and per-key credit usage. The secret value of a key is only shown once at creation and is never returned here. First-time users: create your initial API key at https://app.fiber.ai or via POST /v1/account/send-otp + verify-otp. This endpoint manages keys once you have one. EXAMPLE: Input: getAllApiKeys_tool(includeRevoked=True) INPUT SCHEMA: Required parameters: Optional parameters: - includeRevoked (boolean): Include revoked keys in the results. Defaults to false, returning only active keys. RETURNS: Response object with keys: output, chargeInfo, warnings, advice
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Brightdata MCP
{
"mcpServers": {
"brightdata-mcp": {
"command": "npx",
"args": [
"@brightdata/mcp"
],
"env": {
"API_TOKEN": "YOUR_API_TOKEN_HERE"
}
}
}
}
Fiber AI
{
"mcpServers": {
"fiber-ai": {
"url": "https://mcp.fiber.ai/mcp/v2"
}
}
}
Frequently asked questions
Brightdata MCP is categorized under Search & Data Extraction and uses a local stdio subprocess. Fiber AI belongs to Search & Data Extraction and uses a remote HTTP/SSE transport. Pick Brightdata MCP for search & data extraction work and Fiber AI for search & data extraction.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Brightdata MCP is listed as freemium — a free tier with paid plans. Auth: api key required. Fiber AI is bring-your-own-key: usage is billed by the API provider you supply a key for. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add brightdata-mcp and fiber-ai as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Brightdata MCP has a quality signal of 73/100 (Great) with 4 views, 0 installs and 2,685 GitHub stars. Fiber AI has 59/100 (Good) with 1 views, 0 installs and 0 GitHub stars.