All articles

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.

The Leadraft teamLeadraft
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 →

TaskWeb search aloneConnected to a lead tool over MCP
Research 5 named businessesGood: reads their sites, cites sourcesAlso fine
Every dentist in a countyReturns a sample of what the search engine surfacesRuns a full search of the area and returns rows
EmailsCopies what's on the page, uncheckedEmails from each business's own site, graded Verified, Accept-all or Invalid
Repeat next monthStarts overSearches saved; each business charged once
OutputProse and linksStructured 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 appStatusHow
Claude CodeWorksclaude mcp add --transport http with a --header
Claude DesktopWorksConfig file entry bridged through mcp-remote (needs Node.js)
claude.ai custom connectorNot verifiedAPI keys need the Request headers section, which Anthropic lists as a beta for a limited set of organizations
Cursor, VS CodeWorkmcp.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 →

ToolWhat it doesSpends credits?
start_searchStarts "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_statusRunning, finishing, paused or completed; searches done of the total; businesses and emails so farNo
find_leadsBusinesses 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 cursorA checked-email credit the first time a Verified email is read
get_leadOne business: address, phone, website, hours, every email with grade and sourceSame as find_leads
list_searchesYour last 100 searches with status and countsNo
creditsPlan, this period's allowance, what's leftNo

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.

How a local lead list is built, step by stepSix steps: find every business with every keyword across every tile of the area; fence the results to the area and trade; remove duplicates by Google place ID; find emails on each business's own website; verify each mailbox; deliver to a file, a cold email tool or a CRM.01Find
Every keyword × every tile
02Fence
Keep in-area, on-trade
03Dedupe
One row per place ID
04Find emails
On their own website
05Verify
Live mailbox check
06Deliver
CSV, Instantly, HubSpot
The six steps behind a list you can send to. Skipping any one of them shows up later as missed businesses, wasted credits or bounces.

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.

  1. Batch searches from a file. "Read cities.txt and start one search per line for 'HVAC contractor in <city>'. Stop and ask if it's more than 25 lines."
  2. Export to CSV. "Page through find_leads for search group g_… with grades valid, and write austin-dentists.csv with business, email, phone, website, city, rating."
  3. Scripted pipelines. Ask it to write a small Python or Node script against the REST API: POST /searches, poll GET /searches/{group} every 10 to 30 seconds until status is completed, then page GET /leads?search_group=…&grade=valid&limit=500. Our API quickstart has the same three steps in cURL, JavaScript and Python.
  4. A skill for your process. Claude Code skills are SKILL.md files 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#

  1. Anthropic, Enable and use web search (citations, web fetch, usage limits).
  2. Anthropic, Add a connector that isn't in the directory (custom connectors, Request headers beta, full header value).
  3. Anthropic, Authentication for connectors (OAuth, static headers in beta).
  4. Anthropic, Connect Claude Code to tools via MCP (claude mcp add --transport http, --header, scopes, /mcp).
  5. Anthropic, Extend Claude with skills (SKILL.md locations and frontmatter).
  6. Cursor, Model Context Protocol (mcp.json locations, url and headers).
  7. Kalai, Nachum, Vempala and Zhang, Why Language Models Hallucinate (arXiv, September 2025).
  8. Leadraft, MCP server docs and REST API reference.
  9. Federal Trade Commission, CAN-SPAM Act: A Compliance Guide for Business.

Lead lists for the trades in this article