Lead Gen Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Lead Gen Mcp (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A free MCP server that runs a full B2B outbound pipeline inside a Claude conversation.
Type one sentence. Get scraped leads → Google Sheet → Instantly campaign, all without leaving your chat.
You: Scrape 30 HVAC companies in Austin TX, create a campaign called
"HVAC Austin | Free Audit", and push the leads.
Claude: Done.
→ 28 qualified leads saved: https://docs.google.com/spreadsheets/d/...
→ Campaign created (ID: a1b2c3)
→ 28 leads uploaded. Ready to launch in Instantly.| Tool | Description |
|---|---|
scrape_leads | Google Maps → qualified leads → Google Sheet (via Apify) |
read_sheet | Load leads from any existing Google Sheet |
create_instantly_campaign | Create a new Instantly email campaign, returns campaign ID |
push_to_instantly | Upload leads array to an Instantly campaign |
git clone https://github.com/Sourav333444/lead-gen-mcp
cd lead-gen-mcp
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Mac/Linux
pip install "mcp[cli]" apify-client gspread google-auth google-auth-oauthlib requests python-dotenvCreate a .env file in the project root:
APIFY_API_TOKEN=apify_api_...
INSTANTLY_API_KEY=your_instantly_v2_keyDownload OAuth credentials from Google Cloud Console → APIs & Services → Credentials → Create OAuth 2.0 Client ID (Desktop app). Save as credentials.json in the project root.
Then run:
python -c "
from google_auth_oauthlib.flow import InstalledAppFlow
flow = InstalledAppFlow.from_client_secrets_file('credentials.json', [
'https://www.googleapis.com/auth/spreadsheets',
'https://www.googleapis.com/auth/drive'
])
creds = flow.run_local_server(port=0)
open('token.json', 'w').write(creds.to_json())
"This saves token.json — you won't need to do this again unless the token expires.
Add to your .mcp.json in the project root:
{
"mcpServers": {
"lead-gen-toolkit": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/server.py"]
}
}
}On Windows:
{
"mcpServers": {
"lead-gen-toolkit": {
"command": "C:\\path\\to\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\server.py"]
}
}
}Restart Claude Code. Run /mcp to confirm lead-gen-toolkit is connected.
Once connected, just talk to Claude:
Scrape 30 roofing contractors in Denver CO and save to a sheet called "Denver Roofers"Read the leads from [sheet URL] and push them to Instantly campaign [campaign_id]Create an Instantly campaign called "Plumbers NYC | Free Estimate" and give me the campaign ID| Component | Cost |
|---|---|
| Apify Google Maps | ~$0.01–0.02 per lead |
| Instantly | your plan's sending limits |
| Google Sheets | free |
100 leads ≈ $1.50–2.50 total.
server.py # MCP server (the thing you're installing)
execution/
gmaps_lead_pipeline.py # Google Maps scraper + Sheet writer
.env # Your API keys (never commit this)
credentials.json # Google OAuth credentials (never commit this)
token.json # Google OAuth token (never commit this)"Google token is missing or expired" — re-run the auth command above.
"INSTANTLY_API_KEY not set" — add your key to .env. Get it from Instantly → Settings → Integrations → API Keys → select all:all scope.
Apify scrape returns 0 results — include the city in your query: "HVAC in Austin TX" not just "HVAC".
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.