maps_leads
Find qualified sales leads on Google Maps filtered by Lead Quality Score. Build targeted outreach lists by specifying industry, location, and minimum score.
Instructions
Find qualified sales leads on Google Maps filtered by Lead Quality Score. Best for building targeted outreach lists.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| industry | Yes | Industry or business type, e.g. 'restaurants' | |
| location | Yes | City or area, e.g. 'Miami FL' | |
| min_score | No | Minimum Lead Quality Score threshold (default: 60) | |
| google_key | Yes | Your Google Places API key |
Implementation Reference
- src/mcp-stdio.ts:138-166 (registration)Tool registration in ListToolsRequestSchema: defines the 'maps_leads' tool name, description, and input schema with industry, location, min_score, and google_key properties.
{ name: "maps_leads", description: "Find qualified sales leads on Google Maps filtered by Lead Quality Score. Best for building targeted outreach lists.", inputSchema: { type: "object", properties: { industry: { type: "string", description: "Industry or business type, e.g. 'restaurants'", }, location: { type: "string", description: "City or area, e.g. 'Miami FL'", }, min_score: { type: "number", description: "Minimum Lead Quality Score threshold (default: 60)", }, google_key: { type: "string", description: "Your Google Places API key", }, }, required: ["industry", "location", "google_key"], }, }, ], })); - src/mcp-stdio.ts:217-226 (handler)Handler dispatch in the CallToolRequestSchema switch: extracts industry, location, min_score, google_key from args and calls findSalesLeads().
case "maps_leads": { const { industry, location, min_score, google_key } = args as { industry: string; location: string; min_score?: number; google_key: string; }; result = await findSalesLeads(industry, location, google_key, min_score); break; } - src/tools/maps.ts:271-291 (helper)Core implementation of findSalesLeads: searches maps businesses for the given industry/location, filters by lead quality score (default 60), and returns qualified leads with metadata.
export async function findSalesLeads( industry: string, location: string, apiKey: string, minScore = 60 ): Promise<MapsLeadsResult> { const result = await searchMapsBusinesses(industry, location, apiKey, 60); const qualified = result.businesses.filter( (b) => b.lead_quality_score >= minScore ); return { industry, location, min_score: minScore, total_qualified: qualified.length, leads: qualified, searched_at: new Date().toISOString(), }; } - src/tools/maps.ts:26-33 (schema)Type schema for the MapsLeadsResult return value, containing industry, location, min_score, total_qualified, leads array, and timestamp.
export interface MapsLeadsResult { industry: string; location: string; min_score: number; total_qualified: number; leads: PlaceBusiness[]; searched_at: string; } - src/mcp-stdio.ts:22-22 (registration)Import of the findSalesLeads function from the maps tools module, which is the actual implementation of the maps_leads tool.
import { searchMapsBusinesses, findSalesLeads } from "./tools/maps.js";