# io.github.enzoemir1/leadpipe-mcp (npm · leadpipe-mcp-server)

AI lead qualification: ICP filter, 0-100 scoring, Hunter.io enrichment, HubSpot/Pipedrive export.

- Trust score: 68/100 (medium)
- Change this week: +20
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `leadpipe-mcp-server`: 68/100 (this document), [markdown](https://verifymcp.io/servers/enzoemir1-leadpipe-mcp/leadpipe-mcp-server.md), [page](https://verifymcp.io/servers/enzoemir1-leadpipe-mcp/leadpipe-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `leadpipe-mcp-server`
- Version: `1.4.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 99 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 83/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1579 tokens (~121/item across 13 items; 10 tools + 3 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 13% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add enzoemir1-leadpipe-mcp -- npx -y leadpipe-mcp-server
```

### Codex

```bash
codex mcp add enzoemir1-leadpipe-mcp -- npx -y leadpipe-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "enzoemir1-leadpipe-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "leadpipe-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add enzoemir1-leadpipe-mcp --command npx --arg -y --arg leadpipe-mcp-server
```

### Hermes

```yaml
mcp_servers:
  enzoemir1-leadpipe-mcp:
    command: "npx"
    args: ["-y", "leadpipe-mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "enzoemir1-leadpipe-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "leadpipe-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 67, +44)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional] Licence: MIT

### 2026-07-31 (score 23, +17)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −42)

- [security regression] Malware scan: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified

### 2026-07-27 (score 48)

First indexed and scored.

## MCP tools (10)

### `lead_demo_seed` (~155 tokens)

Seed Demo Leads

Populate the pipeline with a realistic demo dataset: 14 leads across 5 archetypes (hot decision-makers, warm mid-level, cold junior/small-co, raw unenriched, and disqualified). Each lead has appropriate enrichment state, scoring breakdown, and status, so every downstream tool — lead_list, lead_search, lead_score, crm_export, and the pipeline-overview resource — returns meaningful output immediately. Use this to evaluate LeadPipe via MCP Inspector without Hunter, HubSpot, or Pipedrive API keys. Safe to call multiple times; each call appends a fresh batch with new UUIDs. Returns counts by status plus sample_lead_ids you can feed into lead_enrich, lead_score, or crm_export.

### `lead_qualify` (~271 tokens)

ICP Pre-Qualification (Pre-Enrichment Filter)

Filter leads against your Ideal Customer Profile BEFORE spending enrichment credits. Uses only locally-available signals (email domain, job_title, country, industry hints, tech_stack) so nothing is charged to Hunter.io, HubSpot, Pipedrive, or any other external service. Set auto_disqualify=true to also update rejected leads to status="disqualified" with the reject reasons stored in custom_fields. If lead_ids is omitted, evaluates every lead currently in status="new". Pairs naturally with upstream platform-detection tools (e.g. Detecto's detect_platform) — run that first to populate company.tech_stack, then run lead_qualify with required_tech_stack=["shopify"] to drop wrong-platform leads before they cost a single API call. Returns qualified/rejected counts, per-lead reasons, and an estimated credit savings figure.

Input parameters:

- `auto_disqualify` (boolean): If true, rejected leads have status set to "disqualified" and reasons stored in custom_fields. If false (default), just returns the evaluation without mutating storage.
- `criteria` (object, required): At least one criterion is required. All provided criteria must pass for a lead to qualify.
- `lead_ids` (array): Specific lead IDs to evaluate. If omitted, evaluates all leads with status="new".

### `lead_ingest` (~207 tokens)

Ingest Lead

Add a single lead to the pipeline. Required: email. Optional: first_name, last_name, job_title, company_name, phone, source ("website"|"linkedin"|"referral"|"event"|"cold_outreach"|"partner"|"other"), tags (string array), custom_fields. Returns the stored lead object with a generated UUID, initial status="new", created_at, and a null score (run lead_score to populate). Throws a duplicate error if the email is already in the pipeline — use lead_search first if you need upsert behaviour.

Input parameters:

- `company_domain` (string)
- `company_name` (string)
- `custom_fields` (object)
- `email` (string, required)
- `first_name` (string)
- `job_title` (string)
- `last_name` (string)
- `phone` (string)
- `source` (string)
- `source_detail` (string)
- `tags` (array)

### `lead_batch_ingest` (~88 tokens)

Batch Ingest Leads

Add 1 to 100 leads in a single call. Each lead uses the same schema as lead_ingest. Returns {ingested: Lead[], skipped: Array<{email, reason}>} — duplicates are skipped (not failed) so a partial batch still succeeds. Prefer this over repeated lead_ingest calls for bulk imports (CSV/webhook drops).

Input parameters:

- `leads` (array, required)

### `lead_enrich` (~111 tokens)

Enrich Lead

Derive and attach company data to an existing lead using the email domain: company name, industry, size, country, website, estimated headcount, and common tech stack. Does not call external APIs — enrichment is driven by the built-in domain knowledge base. Updates the lead in place and returns the enriched record, ready for lead_score. Run this before lead_score for the best qualification accuracy.

Input parameters:

- `lead_id` (string, required): UUID of the lead to enrich (returned by lead_ingest or lead_search)

### `lead_score` (~123 tokens)

Score Lead

Compute a 6-dimensional qualification score (0-100) for a lead: job_title, company_size, industry, engagement, recency, and custom_rules. Each dimension is weighted via config_scoring; the final score is their weighted average. Updates the lead status to "qualified" (≥60) or "disqualified" (<60) and stores score_breakdown alongside the total. Returns the updated lead with the breakdown. Run lead_enrich first for the most accurate industry/size signals.

Input parameters:

- `lead_id` (string, required): UUID of the lead to score

### `lead_search` (~154 tokens)

Search Leads

Search and filter the lead pipeline. Optional filters: query (free-text over name/email/company), status ("new"|"qualified"|"disqualified"|"contacted"|"converted"), min_score, max_score, source, tags (array), date_from/date_to. Pagination via limit (default 50, max 200) and offset. Returns {total, leads[]}. Use this to drive exports, targeted scoring, and dashboards.

Input parameters:

- `limit` (integer)
- `max_score` (number)
- `min_score` (number)
- `offset` (integer)
- `query` (string)
- `source` (string)
- `status` (string)
- `tags` (array)

### `lead_export` (~145 tokens)

Export Leads

Push leads to an external destination. target must be one of "hubspot", "pipedrive", "google_sheets", "csv", or "json". For CRM targets (hubspot, pipedrive) the respective API key env var must be set (HUBSPOT_API_KEY, PIPEDRIVE_API_TOKEN) — if missing, the tool returns a dry-run payload instead of erroring. Filter the export via lead_ids (explicit list) or min_score (everything above threshold). Returns {target, count, summary, errors?}.

Input parameters:

- `lead_ids` (array)
- `min_score` (number)
- `target` (string, required)

### `pipeline_stats` (~80 tokens)

Pipeline Statistics

Portfolio-wide pipeline analytics across all leads. Returns {total_leads, leads_today, leads_this_week, leads_this_month, avg_score, qualified_rate (percent), by_status (counts per status), by_source (counts per source), score_distribution}. Takes no input — always aggregates the full dataset. Ideal for dashboards, stand-ups, and conversion-rate tracking.

### `config_scoring` (~206 tokens)

Scoring Configuration

View or update the global lead scoring configuration used by lead_score. Call with no fields (empty object) to fetch the current config. Pass any subset of fields to patch-update: six dimension weights (each 0–1, should sum to ~1 but not enforced), high_value_titles (string array), high_value_industries (string array), preferred_company_sizes, and custom_rules (array of {name, condition, points}). Changes apply to future lead_score calls only — previously scored leads keep their scores until re-scored.

Input parameters:

- `company_size_weight` (number)
- `custom_rules` (array)
- `custom_rules_weight` (number)
- `engagement_weight` (number)
- `high_value_industries` (array)
- `high_value_titles` (array)
- `industry_weight` (number)
- `job_title_weight` (number)
- `preferred_company_sizes` (array)
- `recency_weight` (number)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/enzoemir1-leadpipe-mcp/leadpipe-mcp-server#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 67
- 2026-08-01: 23
- 2026-07-31: 23
- 2026-07-30: 6
- 2026-07-28: 48
- 2026-07-27: 48

## Links

- npm package: https://www.npmjs.com/package/leadpipe-mcp-server
- Socket report: https://socket.dev/npm/package/leadpipe-mcp-server
- Repository: https://github.com/enzoemir1/leadpipe-mcp
- Changelog RSS feed: https://verifymcp.io/servers/enzoemir1-leadpipe-mcp/leadpipe-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/enzoemir1-leadpipe-mcp/leadpipe-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/enzoemir1-leadpipe-mcp/leadpipe-mcp-server
