Exposes KeeLead's lead generation capabilities as MCP tools for AI agents. Provides access to 57 data sources for lead search, email verification, company research, contact finding, lead enrichment, intent signals, lead scoring, and data export.
KeeLead MCP server has 10 tools with inconsistent quality. Tool names follow verb_noun convention (keelead_search_leads, keelead_verify_email) which is good. However, descriptions vary widely in quality, some are detailed (keelead_verify_email: 10-layer verification explained), others are vague (keelead_find_contact lacks specificity on what 'contact information' includes). Input schemas are present for all tools but lack depth: most parameters have descriptions, but none declare enums where appropriate (e.g., keelead_get_signals.type should be enum, not free-form string). Output schemas are completely undocumented, no tool declares what fields it returns, forcing LLMs to guess. Error handling is absent: no tool describes failure modes, recovery paths, or validation rules. The server mixes TypeScript (lib/agent/tools.ts, mcp/server.ts) and Python (crewai/keelead_tools.py) implementations, creating maintenance burden and inconsistency. No tool includes idempotency hints, permission scopes, or audit guidance.
Find common email patterns for a domain. Returns common formats like first.last@, first@, f.last@, etc.
Enrich a lead with additional data from multiple sources: email, phone, social profiles, firmographic, technographic data, email patterns.
Export leads to various formats (CSV, JSON, Excel, vCard, PDF). Supports templates for HubSpot/Salesforce import.
Find contact information for a specific person by name, company, title, or location.
Get intent signals for a company: job changes, hiring news, funding events, product launches, social mentions.
AI-powered lead scoring (0-100) based on ICP fit, intent signals, engagement history, and firmographic data.
No output schemas documented. Tools return data but LLMs cannot predict field names, types, or structure. Forces agents to guess and parse unstructured responses.
Free-form string parameters where enums should exist. keelead_get_signals.type accepts 'job_change|hiring|funding|news|social|product' but is not declared as enum, LLMs may hallucinate invalid values.
Vague parameter descriptions. keelead_find_contact has 'name', 'company', 'title', 'location' with minimal guidance on required vs optional, format, or how they combine. keelead_research_company.query lacks detail on accepted formats (domain vs company name).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
List all 57 available data sources across 11 categories: search, professional, company, local, social, developer, startup, government, education, email, events.
Deep research on a company: overview, tech stack, key people, funding history, competitors, news with sentiment analysis, social media presence.
Search for business leads across 57 data sources using natural language. Supports searching by name, company, title, location, industry. Returns structured lead data with confidence scores.
Verify email addresses with 10-layer verification: syntax (RFC 5322), domain existence, MX records, disposable detection (30+ providers), role-based detection, typo suggestion, SMTP check, catch-all detection, spam trap detection, free provider detection. Returns score 0-100.
No error handling guidance. Tools do not document failure modes (e.g., 'email not found', 'invalid domain'), recovery paths, or what the LLM should do next. Agents cannot self-correct.
Inconsistent implementation across TypeScript and Python. lib/agent/tools.ts and crewai/keelead_tools.py define overlapping tools with different signatures and descriptions. Maintenance burden and risk of divergence.