Back to Directory/Developer Tools

io.github.gtovtya/b2bleads-mcp

Search and enrich B2B business leads by industry and city.

Developer ToolsJavaScriptv1.5.0

B2BLeads MCP Server

An MCP (Model Context Protocol) server that gives AI agents — Claude, Cursor, and any other MCP-compatible client — a search_leads tool for real-time B2B company discovery and enrichment.

Ask your agent things like:

"Find construction companies in Munich with a website and phone number."

"Collect 50 IT companies in Berlin rated above 4.0."

"Enrich this lead list with email contacts where available."

...and it calls this tool to return a ready-made list of companies: name, address, phone, website, rating, and email where available.

This server is a thin MCP wrapper around the B2BLeads REST API. You need a B2BLeads account and API key — see Getting an API key below.

Requirements

  • Node.js 18 or later
  • A B2BLeads API key (sign up)

Installation

No install needed — run it directly with npx. Add it to your MCP client's config:

Claude Desktop / Claude Code

Edit your claude_desktop_config.json (or run claude mcp add):

{
  "mcpServers": {
    "b2bleads": {
      "command": "npx",
      "args": ["-y", "b2bleads-mcp"],
      "env": {
        "B2BLEADS_API_KEY": "your-api-key-here"
      }
    }
  }
}

Cursor

Add the same block to .cursor/mcp.json in your project (or your global Cursor MCP settings).

Any other MCP client

Point it at the command npx -y b2bleads-mcp with the B2BLEADS_API_KEY environment variable set.

Getting an API key

  1. Create an account at b2bleadsapi.com.
  2. Pick a plan in Billing.
  3. Generate a key under API Keys in the dashboard.
  4. Set it as B2BLEADS_API_KEY in your MCP client config (see above).

Tools

search_leads

Search for companies and business contacts in real time.

ParameterTypeDescription
qstringFree-text query, e.g. "construction companies in Munich".
industrystringOne of the categories from list_industries.
citystringCity or region to search in.
radius_kmnumberSearch radius in kilometers.
min_ratingnumberMinimum rating (0-5).
has_websitebooleanOnly businesses with a website.
verified_onlybooleanOnly businesses with a verified listing.
open_nowbooleanOnly businesses currently open.
price_levelstringbudget | moderate | expensive | luxury
rank_bystringrelevance | distance
limitintegerMax results per call, 1-20.
langstringResult language, BCP-47 tag (e.g. en, pt-BR).
page_tokenstringPagination token from a previous call.
save_to_listbooleanAlso save results into a B2BLeads saved list.
list_idstringExisting saved-list ID to append to.
list_namestringSaved-list name to find-or-create and append to.

At least one of q, industry, or city is required.

search_leads_advanced

⚠️ Elevated cost: consumes 9x the quota of a single search_leads call. Only use this when you need more results than search_leads returned for a specific city, or need to exhaustively cover a city — not as a default or first attempt. Tiles the city into a 3x3 grid of sub-searches server-side to go beyond the normal ~20-60 result ceiling, returning up to ~180 deduplicated businesses in one call. Does not support pagination.

ParameterTypeDescription
qstringFree-text query, e.g. "construction companies". Optional if industry is given.
industrystringOne of the categories from list_industries.
citystringRequired. City or region to search in — must be only the city name (e.g. "Lyon"), not the full search phrase, or the wrong place may be geocoded.
min_ratingnumberMinimum rating (0-5).
has_websitebooleanOnly businesses with a website.
verified_onlybooleanOnly businesses with a verified listing.
open_nowbooleanOnly businesses currently open.
price_levelstringbudget | moderate | expensive | luxury
langstringResult language, BCP-47 tag (e.g. en, pt-BR).

list_industries

Lists the predefined industry categories usable in search_leads's industry filter. Takes no arguments.

list_saved_lists

Lists all of your saved lead lists — id, name, and lead count for each, not the leads themselves. Read-only. Takes no arguments. Use get_saved_list to fetch one list's full leads.

get_saved_list

Gets one saved lead list by ID, with its full set of saved leads. Read-only.

ParameterTypeDescription
list_idstringThe saved list's ID, from list_saved_lists or a search_leads save_to_list response. Required.

find_email

Looks up a best-effort contact email for a single business website (checks the homepage and common contact pages). Use this for one specific website rather than re-running search_leads. Requires any paid plan (Starter and above); may return a null email if none is found.

ParameterTypeDescription
websitestringThe business website URL to look up, e.g. https://example.com. Required.

Configuration

Environment variableRequiredDescription
B2BLEADS_API_KEYYesYour B2BLeads API key.
B2BLEADS_API_URLNoOverride the API base URL. Defaults to https://api.b2bleadsapi.com.

Pricing & rate limits

Each search consumes quota from your B2BLeads plan — see pricing. Rate limits and quota errors are returned by the API and surfaced back to your agent as tool errors.

Links

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y b2bleads-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-gtovtya-b2bleads-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "b2bleads-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

b2bleads-mcpnpm

Compatible MCP Clients

io.github.gtovtya/b2bleads-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More