Lead generation with Claude: MCP setup, prompts and guardrails
Use Claude for lead generation: what web search can and can't do, exact MCP setup for Claude Code, Desktop and Cursor, prompts that work, and spending guardrails.
- Published
- Read time
- 10 min
- Category
- Guide
Claude can help with lead generation in two ways: on its own, using web search to research a few businesses and draft outreach, or connected to a lead data source over MCP (Model Context Protocol), where it starts searches, reads back businesses with checked emails and turns them into tables, segments and first lines. On its own, Claude can't list every plumber in a city or tell you whether an email address has a live mailbox. Connected to a tool like Leadraft, it can, from Claude Code, Claude Desktop or Cursor, with one config step. This guide covers the exact setup, prompts that work, and the guardrails that keep an assistant from overspending.
If you want the general picture of MCP across assistants, read finding leads from AI assistants with MCP. This page is the Claude-specific version.
What can Claude do for lead generation without any tools?#
Claude without tools works from what it learned in training, so it can explain, plan and write, but it can't give you current, complete business data. That makes it good at the work around a list and poor at producing the list.
Good uses without any connection:
- Turning an offer into an ideal customer profile and a keyword list ("plumber", "drain cleaning", "water heater repair").
- Writing and critiquing cold email sequences.
- Cleaning, splitting and summarizing a CSV you upload.
Don't ask it for contact details from memory. Language models are trained in ways that reward a confident guess over "I don't know", as OpenAI researchers argued in a September 2025 paper, and a small business's email address is exactly the kind of rare, specific fact a model will guess. A guessed address that looks right is worse than none: it bounces.
What can Claude's web search do, and where does it stop?#
With web search on, Claude searches the live web, reads several sources and answers with citations, and it can fetch a specific URL you give it. Anthropic's help center says every search-backed response includes citations, and that web search and fetch count toward your usage limits.
That's useful for research on a short list: "Find five independent bike shops in Portland, OR, open each website, and tell me which list an email address." It stops being useful when you want a whole market:
Scroll horizontally if needed →
| Task | Web search alone | Connected to a lead tool over MCP |
|---|---|---|
| Research 5 named businesses | Good: reads their sites, cites sources | Also fine |
| Every dentist in a county | Returns a sample of what the search engine surfaces | Runs a full search of the area and returns rows |
| Emails | Copies what's on the page, unchecked | Emails from each business's own site, graded Verified, Accept-all or Invalid |
| Repeat next month | Starts over | Searches saved; each business charged once |
| Output | Prose and links | Structured fields: name, category, phone, website, rating, reviews, address |
Google Maps itself has a limit too: a single Maps search stops after roughly 120 results, so even a browsing agent scrolling Maps sees a fraction of a big city. Our guide to the 120-result limit explains why and how full lists get built.
Which Claude apps can connect to Leadraft's MCP server?#
Any Claude client that can reach a remote MCP server over streamable HTTP and send an API key in the Authorization header. As of November 2026:
Scroll horizontally if needed →
| Claude app | Status | How |
|---|---|---|
| Claude Code | Works | claude mcp add --transport http with a --header |
| Claude Desktop | Works | Config file entry bridged through mcp-remote (needs Node.js) |
| claude.ai custom connector | Not verified | API keys need the Request headers section, which Anthropic lists as a beta for a limited set of organizations |
| Cursor, VS Code | Work | mcp.json with a headers block |
On claude.ai: Anthropic's docs say that if a server uses an API key, you choose "No sign-in" and add the key under Request headers, entering the full value including Bearer . They also say that section is in beta, and if you don't see it, your organization doesn't have access yet. We haven't tested Leadraft through it, so use Claude Code or Claude Desktop for now.
How do I set up Leadraft in Claude Code, Claude Desktop or Cursor?#
Create an API key, add one config entry, and ask. The server details, from our MCP docs:
- URL:
https://app.leadraft.co/api/mcp/ - Transport: streamable HTTP (stateless, JSON responses)
- Auth:
Authorization: Bearer lg_your_key, the same keys as the REST API, created under Settings, then API keys
Claude Code, one command:
claude mcp add --transport http leadraft https://app.leadraft.co/api/mcp/ \
--header "Authorization: Bearer lg_your_key"
By default Claude Code stores this for the current project only. Add --scope user to use it in all your projects, or --scope project to share it with your team through .mcp.json (don't commit a real key). Run /mcp inside Claude Code and check the server shows as connected.
Claude Desktop, in claude_desktop_config.json, bridged through mcp-remote:
{
"mcpServers": {
"leadraft": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.leadraft.co/api/mcp/", "--header", "Authorization: Bearer lg_your_key"]
}
}
}
Cursor, in ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"leadraft": {
"url": "https://app.leadraft.co/api/mcp/",
"headers": { "Authorization": "Bearer lg_your_key" }
}
}
}
Restart Claude Desktop after editing its config file. The VS Code snippet is in the MCP server docs.
What tools does Claude get, and what does each cost?#
Six tools. Claude picks which to call from your request.
Scroll horizontally if needed →
| Tool | What it does | Spends credits? |
|---|---|---|
start_search | Starts "keyword in location" searches, like "plumber in Austin, TX". Options: email_required (default true) and region (two-letter country code) | Business credits, as businesses are found. Needs a write key |
search_status | Running, finishing, paused or completed; searches done of the total; businesses and emails so far | No |
find_leads | Businesses your searches found, newest first, with the best sendable email. Filters: search group, keyword, text, category, city, state, country, has email, grades, minimum rating. Default 50, up to 200 per call, paged with a cursor | A checked-email credit the first time a Verified email is read |
get_lead | One business: address, phone, website, hours, every email with grade and source | Same as find_leads |
list_searches | Your last 100 searches with status and counts | No |
credits | Plan, this period's allowance, what's left | No |
One limit: start_search uses the default scope, which counts everything the search returns. To count only businesses inside a place, or inside it plus a ring, start the search in the app or with POST /searches and "scope": "in" through the API, then let Claude read the results.
What prompts work best for lead generation in Claude?#
Specific ones: a trade, a place, a filter and an output. Chain steps in one message and Claude will call several tools in order.
Building the list:
- "Check my credits. Then find roofers in Denver, CO and Aurora, CO with verified emails. Tell me how many search lines you'll start before you start."
- "Is my roofers search done? How many businesses, and how many with an email?"
- "From that search, list the Verified leads with a rating of 4.5 or higher as a table: business, city, rating, reviews, email, website."
Working the list:
- "Group the Verified leads by Maps category and write one opening line per group that mentions the city and review count. No first names: we don't have them."
- "Compare my dentist searches in Tempe and Mesa: businesses found, share with a Verified email, average rating."
- "Get the full record for the ten highest-rated leads and flag any where the only email is Accept-all."
Ask Claude to show its numbers from the tool output rather than restate them from memory, and spot-check a few rows in the app before you send anything.
How do I use Claude Code for lead generation beyond chat?#
Claude Code can do what a chat can't: write and run scripts, and save files. That makes it a good place to build repeatable lead workflows on top of the API.
- Batch searches from a file. "Read
cities.txtand start one search per line for 'HVAC contractor in<city>'. Stop and ask if it's more than 25 lines." - Export to CSV. "Page through
find_leadsfor search groupg_…with grades valid, and writeaustin-dentists.csvwith business, email, phone, website, city, rating." - Scripted pipelines. Ask it to write a small Python or Node script against the REST API:
POST /searches, pollGET /searches/{group}every 10 to 30 seconds untilstatusiscompleted, then pageGET /leads?search_group=…&grade=valid&limit=500. Our API quickstart has the same three steps in cURL, JavaScript and Python. - A skill for your process. Claude Code skills are
SKILL.mdfiles in~/.claude/skills/<name>/(personal) or.claude/skills/<name>/(project). A skill can hold your house rules: check credits first, Verified only, never more than N search lines without asking, output columns in this order.
A minimal skill file:
---
name: local-leads
description: Build local business lead lists with the Leadraft MCP tools. Use when asked for businesses in a place.
---
1. Call credits first and report what's left.
2. Say how many search lines you will start, and wait for a yes.
3. After the search completes, return Verified leads only unless told otherwise.
4. Output a CSV with: business, category, city, state, email, phone, website, rating, reviews.
Claude Code can also write you a Google Maps scraper if you ask. Think twice: Google's Maps terms restrict scraping, a scraper inherits the 120-result limit unless it tiles the area, and it won't check mailboxes. Our page on whether scraping Google Maps is legal covers the terms in plain words.
What guardrails should I set before Claude touches lead data?#
The same discipline as giving a new hire a company card. Set these once.
- Use a read-only key for read-only work. A read-only key can call every tool except
start_search. Summaries, tables and copywriting need nothing more. - Credits check first. Put "call credits and confirm the number of search lines before starting" in your prompt or skill.
- Keep tool approvals on for
start_search. Claude's apps ask before calling tools unless you choose to always allow; for a server that spends money, don't. - Know the meter. Searches use business credits as businesses are found, and each business is charged once, ever. Reading a Verified email uses a checked-email credit the first time. Tool calls share the key's limit of 120 requests a minute.
- One key per assistant, so you can revoke one in Settings without breaking the others.
- Check before sending. Claude can still misread or misstate a number from tool output. Spot-check rows, and keep your do-not-contact list applied on export.
Sending rules don't change because an assistant built the list. In the US, CAN-SPAM still requires a working opt-out and a physical address in every commercial email. See our cold email laws guide for CAN-SPAM, GDPR, CASL and PECR.
FAQ#
Can Claude find leads on its own?#
Partly. With web search on, Claude can look up businesses, open their websites and cite what it read, which is fine for a handful of prospects. It can't list every business of a kind in an area, and it doesn't check whether an email address has a live mailbox. For lists, connect Claude to a lead data source over MCP.
How do I connect Leadraft to Claude Code?#
Create an API key in Leadraft (Settings, API keys), then run claude mcp add --transport http leadraft https://app.leadraft.co/api/mcp/ --header "Authorization: Bearer lg_your_key". Run /mcp inside Claude Code to check the server shows as connected. Add --scope user to use it in every project.
Does Leadraft work as a custom connector on claude.ai?#
We haven't verified it. Leadraft's MCP server authenticates with an API key in the Authorization header. As of November 2026, Claude's custom connector dialog supports API keys through a Request headers section that Anthropic describes as a beta for a limited set of organizations. Claude Code, Claude Desktop (through mcp-remote), Cursor and VS Code work today.
How do I stop Claude from spending all my credits?#
Give Claude a read-only API key if it only needs to read and summarize leads: it can't start searches with one. With a write key, tell it to call the credits tool first and to confirm the number of search lines before it starts anything, and keep tool approval prompts on.
Can Claude Code scrape Google Maps for me?#
It can write a scraper, but Google's Maps terms restrict scraping, a single Maps search stops after roughly 120 results, and the script won't verify emails. Using Claude Code to call a lead tool's API or MCP server gets you structured, deduped rows with graded emails instead.
Sources#
- Anthropic, Enable and use web search (citations, web fetch, usage limits).
- Anthropic, Add a connector that isn't in the directory (custom connectors, Request headers beta, full header value).
- Anthropic, Authentication for connectors (OAuth, static headers in beta).
- Anthropic, Connect Claude Code to tools via MCP (
claude mcp add --transport http,--header, scopes,/mcp). - Anthropic, Extend Claude with skills (
SKILL.mdlocations and frontmatter). - Cursor, Model Context Protocol (
mcp.jsonlocations,urlandheaders). - Kalai, Nachum, Vempala and Zhang, Why Language Models Hallucinate (arXiv, September 2025).
- Leadraft, MCP server docs and REST API reference.
- Federal Trade Commission, CAN-SPAM Act: A Compliance Guide for Business.
Lead lists for the trades in this article
- Dentists email listLeadraft builds a list of dental practices from Google Maps for the area you choose: a city, a county, a ZIP code or a shape you draw.
- Plumbers email listLeadraft builds a list of plumbing companies from Google Maps for the area you choose: a city, a county, a ZIP code or a shape you draw.
- Roofers email listLeadraft builds a list of roofing companies from Google Maps for the area you choose: a city, a county, a ZIP code or a shape you draw, such as a storm path.
- Lead lists for every industry
Keep reading
Product
Find Google Maps leads from Claude with MCP: setup, prompts and limits
Find local business leads from Claude, Cursor or other AI assistants with MCP: what MCP is, how to connect, example prompts, credit guardrails and limits.
Read articleGuide
Clay and Google Maps: what Clay's Maps source does, where it stops, and how to import a full local list
What Clay's Google Maps source returns, its 1,000-result default and no-website gaps, why teams source outside Clay, and how to import a CSV or webhook feed.
Read articleGuide
Instant Data Scraper on Google Maps: how to use it, what it captures and its limits
How to use the free Instant Data Scraper extension on Google Maps, step by step: what it captures, why it stops near 120 results with no emails, and when to upgrade.
Read article