About b2bleads-mcp
b2bleads-mcp connects MCP-compatible AI agents to the B2BLeads REST API for real-time company and contact discovery. It supports filtered searches, saved lead lists, email lookup, and account usage information.
Key features
- 01Search companies with location and industry filters
- 02Expand city searches with advanced search
- 03Save and retrieve lead lists
- 04Look up business contact emails
- 05View search history and quota usage
Use cases
- 01Find construction businesses in a city
- 02Build a filtered list of local companies
- 03Add available contact emails to a lead
- 04Review search quota before further research
MCP support
The MCP server wraps the B2BLeads REST API and exposes lead search, list, email lookup, and account tools to MCP clients. It requires a B2BLeads account and API key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y b2bleads-mcpB2BLEADS_API_KEYSecretYour B2BLeads API key, from https://b2bleadsapi.com/app/integrationsB2BLEADS_API_URLOverride the B2BLeads API base URL (defaults to https://api.b2bleadsapi.com)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
6Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | Free-text search query, e.g. "construction companies in Munich". Optional if industry+city are given. |
| city | string | No | City or region to search in, e.g. "Berlin" or "Austin, TX". |
| lang | string | No | Result language as a BCP-47 tag, e.g. "en" or "pt-BR". |
| limit | integer | No | Max number of results to return (1-20). Defaults to a server-side value if omitted. |
| list_id | string | No | Existing saved-list ID to append results to. |
| rank_by | enum | No | How to sort results.relevance | distance |
| industry | enum | No | Industry filter. One of the predefined categories.construction | restaurants | retail | manufacturing | logistics | it_services | healthcare | real_estate | hospitality | professional_services |
| open_now | boolean | No | Only return businesses that are currently open. |
| list_name | string | No | Name of a saved list to find-or-create and append results to. |
| radius_km | number | No | Search radius in kilometers around the city center. |
| min_rating | number | No | Minimum rating (0-5) a business must have to be included. |
| page_token | string | No | Pagination token returned by a previous call, to fetch the next page of results. |
| has_website | boolean | No | Only return businesses that have a website. |
| price_level | enum | No | Filter by price level.budget | moderate | expensive | luxury |
| save_to_list | boolean | No | If true, also save the results into a B2BLeads saved list (requires list_id or list_name). |
| verified_only | boolean | No | Only return businesses with a verified listing. |
Details
From the project READMEB2BLeads 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, 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
- Create an account at b2bleadsapi.com.
- Pick a plan in Billing.
- Generate a key under API Keys in the dashboard.
- Set it as
B2BLEADS_API_KEYin your MCP client config (see above).
Tools
search_leads
Search for companies and business contacts in real time.
| Parameter | Type | Description |
|---|---|---|
q | string | Free-text query, e.g. "construction companies in Munich". |
industry | string | One of the categories from list_industries. |
city | string | City or region to search in. |
radius_km | number | Search radius in kilometers. |
min_rating | number | Minimum rating (0-5). |
has_website | boolean | Only businesses with a website. |
verified_only | boolean | Only businesses with a verified listing. |
open_now | boolean | Only businesses currently open. |
price_level | string | budget | moderate | expensive | luxury |
rank_by | string | relevance | distance |
limit | integer | Max results per call, 1-20. |
lang | string | Result language, BCP-47 tag (e.g. en, pt-BR). |
page_token | string | Pagination token from a previous call. |
save_to_list | boolean | Also save results into a B2BLeads saved list. |
list_id | string | Existing saved-list ID to append to. |
list_name | string | Saved-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.
| Parameter | Type | Description |
|---|---|---|
q | string | Free-text query, e.g. "construction companies". Optional if industry is given. |
industry | string | One of the categories from list_industries. |
city | string | Required. 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_rating | number | Minimum rating (0-5). |
has_website | boolean | Only businesses with a website. |
verified_only | boolean | Only businesses with a verified listing. |
open_now | boolean | Only businesses currently open. |
price_level | string | budget | moderate | expensive | luxury |
lang | string | Result 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.
| Parameter | Type | Description |
|---|---|---|
list_id | string | The 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.
| Parameter | Type | Description |
|---|---|---|
website | string | The business website URL to look up, e.g. https://example.com. Required. |
account_get_usage
Gets how much of your monthly search quota has been used and how much remains for the current billing period. Read-only. Takes no arguments.
account_get_usage_limit
Gets your account's total monthly search quota and when the current billing period renews. Read-only. Takes no arguments.
list_saved_searches
Lists your saved search alerts (recurring searches that auto-run and save results to a list). Read-only. Takes no arguments.
get_search_history
Gets your recent search history — up to the last 200 searches (query text, result count, date). Read-only. Takes no arguments.
Configuration
| Environment variable | Required | Description |
|---|---|---|
B2BLEADS_API_KEY | Yes | Your B2BLeads API key. |
B2BLEADS_API_URL | No | Override 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
- B2BLeads website
- REST API documentation
- This package's integration page — setup notes specific to a plain Node.js MCP client
- Claude Desktop / Claude Code integration page
- Terms of Use
- Privacy Policy
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.