
Connects Claude to Generect's B2B lead generation API for sales prospecting workflows. Exposes five tools: search for leads and companies by ICP filters, generate email addresses from names and domains, fetch LinkedIn profiles by URL, and run health checks. Supports both OAuth 2.1 flow through their hosted endpoint at mcp.generect.com and direct API key auth for simpler setups. You can run it remotely via their HTTP transport, locally via stdio, or deploy it yourself with Docker. Reach for this when you're building prospecting lists, enriching contact data, or automating outbound research inside Claude conversations. Requires a Generect API key from their beta platform.
Sponsors
B2B lead and company data for AI agents.
Search and audience sizing are free. You pay only for the emails, phones and full profiles you keep.
Give Claude, ChatGPT, Cursor or your own agent access to the Generect B2B database: people and companies by ICP, emails, phones and full profiles.
cost block with the amount actually charged, and calls above a spend ceiling need an explicit confirmation. Tools that can charge are not marked read-only, so Claude and other hosts ask before running them (choose "Always allow" for the ones you trust); counting, balance and health run without asking.Get an API key at app.generect.com/settings/api. Clients that support OAuth sign you in without one.
https://mcp.generect.com/mcp speaks streamable HTTP with OAuth 2.1, so most clients only need the URL. It serves MCP protocol revision 2026-07-28 (stateless, discovered via server/discover) and the 2025 revisions (2025-11-25, 2025-06-18) side by side, so any current client connects without settings.
Claude Code
claude mcp add --transport http generect https://mcp.generect.com/mcp
Claude.ai and Claude Desktop: Settings, Connectors, Add custom connector, then paste https://mcp.generect.com/mcp.
Cursor (.cursor/mcp.json) and other JSON-configured clients:
{
"mcpServers": {
"generect": {
"url": "https://mcp.generect.com/mcp"
}
}
}
The first connection opens the Generect consent page in the browser. Approve it with the account you are already signed into, and the client receives its own token.
No OAuth in your client? Pass the key as a header, for example with mcp-remote:
{
"mcpServers": {
"generect": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.generect.com/mcp", "--header", "Authorization: Bearer YOUR_API_KEY"]
}
}
}
{
"mcpServers": {
"generect": {
"command": "npx",
"args": ["-y", "generect-ultimate-mcp@latest"],
"env": {
"GENERECT_API_KEY": "YOUR_API_KEY"
}
}
}
}
Requires Node 20 or newer. Optional: GENERECT_API_BASE (default https://api.generect.com) and GENERECT_TIMEOUT_MS. If Claude Desktop on macOS reports spawn npx ENOENT, set command to the absolute path of npx.
Use a test_… key from app.generect.com/settings/api in any of the configs above. Every tool then answers with fictional data, shows what the real call would have cost and charges nothing. Results carry test_mode: true so an agent cannot mistake them for real people. See Test mode.
Hosts that support the MCP Apps extension (Claude on web, desktop and mobile, ChatGPT, VS Code, Goose and others) render these tools as interactive views inside the conversation. Other clients get the same text and structured results as before.
| Tool | What you see |
|---|---|
count_leads, count_companies | The audience size, your filters, what the next step costs at your prices, and a button to see the first 25 |
search_leads, preview_leads | The top people inline; open all of them as a table, filter, select, and find work emails right there. You confirm the maximum before anything is spent, a miss is free, and found emails go back to Claude so it can use them |
search_companies | Company cards and a table, with a one-click ask for decision makers at them |
enrich_lead, get_lead_by_url, enrich_company | A profile card with the experience timeline and a find-email button |
get_balance | Balance, this month's spend and your per-operation prices |
generate_email | Which emails were found and what it cost |
The views follow the host's theme (light and dark), fonts and layout, and work on phones. Results from a test key are labelled as fictional.
Free
| Tool | What it does |
|---|---|
count_leads | How many people match an ICP, and what the next step costs at your rates. Start here. |
count_companies | The same for companies. |
search_leads | People matching an ICP. Free with the default thin rows (database mode, daily quota). |
search_companies | Companies matching an ICP. Free with the default thin rows (database mode, daily quota). |
get_balance | Balance, your real per-operation prices, and optionally spend by operation or by token. |
get_bulk_job | Poll a bulk job (the work was billed at submit time). |
list_webhooks, create_webhook, update_webhook, delete_webhook, test_webhook | Manage the webhook endpoints that receive bulk-job completion events. |
health | Liveness and credential check against a free endpoint. Safe for monitors. |
Billable
| Tool | Billed |
|---|---|
search_leads, search_companies with detail: "full", in realtime mode and once the free quota is used up | per returned row |
preview_leads | per returned row (count_only: true is free) |
resolve_profile | per resolved profile, the cheapest paid call; an unresolvable link is free |
enrich_lead, get_lead_by_url | per record found |
enrich_company | per record found |
generate_email | per valid email found |
validate_email | per email submitted, whatever the verdict |
find_phone | per phone found, the most expensive operation |
start_bulk_job | per record, reserved when the job is submitted |
Prices depend on your account tier: get_balance returns yours, and every response reports what was actually charged.
count_leads (free) → search_leads, thin rows (free) → generate_email on the ids you keep (per valid email)
→ enrich_lead / find_phone only where needed
search_leads and search_companies take detail:
thin_unavailable."thin": free rows only. Never billed and never escalated to realtime; a spent quota returns a 429."full": the whole record, billed per row.Thin lead rows carry id, name, job title, seniority, location and company (name, id, industry, country). Thin company rows carry id, name, industry, headcount range, HQ city and country, company type and founding year. Neither carries a LinkedIn URL, domain, contacts or history: generate_email takes the lead id directly, and enrich_lead / enrich_company return the full record.
Search and enrich run against the Generect database (sub-second, free counts) or a live LinkedIn lookup (5 to 60 seconds, billed counts, every filter). Tools take mode:
auto (default) tries the database first and escalates only if the API says a filter you passed is not supported there. The escalation is reported and is refused above the spend ceiling.database never escalates: an unsupported filter is an error, not a bigger bill.realtime goes live directly. Counting live costs money, so count_* run it only when asked for explicitly.company_industries and seniorities accept unknown values silently and return zero results, which reads like "this audience does not exist". The server therefore checks values before sending anything: unknown industries, headcount buckets and company types are refused locally with the closest valid names, and mis-cased values are corrected. allow_unlisted_values: true overrides the check.
The full vocabularies are exposed as resources:
generect://vocabulary/industries
generect://vocabulary/seniorities
generect://vocabulary/functions (realtime only)
generect://vocabulary/company-types
generect://vocabulary/headcounts
generect://vocabulary/follower-ranges (realtime only)
generect://account/pricing your per-operation prices
generect://account/balance balance and month-to-date usage
Workflow prompts appear as slash commands in clients that support them: size_an_audience, build_prospect_list, enrich_my_list and spend_report. Each one starts from the free step.
A row cap bounds results, not money. Any call whose worst case exceeds MCP_MAX_SPEND_PER_CALL (default $5) is refused with the exact figure and must be repeated with confirm_spend_usd set to at least that amount. start_bulk_job is checked before it submits, because a bulk job reserves its whole cost up front.
Tools let an agent call Generect; the skill teaches it the procedure above.
npx skills add generect/generect_mcp --skill generect-lead-workflows
See skills/README.md.
If Generect saves you time, a star on this repository helps other people find it.
MIT