Skip to main content
Glama

lead-leak-check (MCP server)

Find where inbound leads are silently dropped between the first touch and the first human reply.

Your Zapier, Make or n8n runs say Success. The lead still never hears back: nobody owned the reply, a filter stopped on an empty field, the workflow was switched off for a day, or an AI draft sat unsent. lead-leak-check turns a description of your lead pipeline into a ranked list of those risks, each with a concrete fix.

Tools

Tool

Input

Output

check_pipeline

JSON config of your pipeline (sources, storage, routing, response, monitoring…)

Risk score 0–100 and findings ranked high / medium / low / verify

check_pipeline_description

Plain English, e.g. "Typeform and WhatsApp go to Google Sheets via Zapier, nobody is assigned"

Same report, plus how the text was interpreted

analyze_run_history

CSV export of run history (status column, optional timestamp)

Failed and filtered runs, long gaps with no runs, stale workflows

Resource: leakcheck://rules lists all 15 rules with their explanation and fix.

Anything you don't describe is reported as verify, never as safe. No network calls, no data leaves your machine.

Related MCP server: linkedin-profile-manager-mcp

Install

git clone https://github.com/paopao-studio-ai/lead-leak-check-mcp && cd lead-leak-check-mcp
pip install .            # Python 3.10+, works with mcp 1.x and 2.x

One-click bundle (MCPB)

Download lead-leak-check-mcp-0.1.0.mcpb from the latest release and open it in Claude Desktop (or any MCPB-aware client). Needs uv; dependencies install automatically.

Claude Desktop / Cursor / any MCP client

{
  "mcpServers": {
    "lead-leak-check": { "command": "lead-leak-check-mcp" }
  }
}

Without installing: {"command": "python", "args": ["-m", "lead_leak_check.server"], "env": {"PYTHONPATH": "/path/to/lead-leak-check-mcp/src"}}

Command line

lead-leak-check check examples/pipeline.json
lead-leak-check describe "WhatsApp leads land in Google Sheets via Make.com. Nobody is assigned."
lead-leak-check history examples/run_history.csv --interval 30
lead-leak-check --json check examples/pipeline.json

Config shape (all keys optional)

{
  "name": "Typeform -> Google Sheets -> Slack #sales",
  "sources": [{ "type": "web_form", "required_contact_field": false }, { "type": "whatsapp", "logged_to_storage": false }],
  "storage": { "type": "google_sheets", "dedupe": false },
  "routing": { "owner_assignment": "none", "after_hours_coverage": false },
  "response": { "sla_minutes": 30, "auto_ack": true, "ai_drafts": true, "human_send_step": false },
  "monitoring": { "error_alerts": false, "unanswered_lead_alert": false, "run_history_review": "never" },
  "automation": { "platform": "zapier", "plan": "free" },
  "timezone": { "business_tz": "America/New_York", "automation_tz": "UTC" },
  "follow_up": { "sequence": false }
}

Example output (top of the report for the config above):

# Lead leak risk: Typeform -> Google Sheets -> Slack #sales
Risk score: **100/100** (12 findings)
## 1. [HIGH] Nobody owns the first reply
- Why it leaks: Leads posted to a shared sheet or channel are seen by everyone and answered by no one.
- Fix: Assign an owner per lead (round robin or fixed) at the moment it is created, and name them in the notification.

Fix the #1 finding for free

The most common high-severity finding is "no alert when a lead goes unanswered". The free n8n missed-lead heartbeat template (https://github.com/paopao-studio-ai/n8n-missed-lead-heartbeat) checks your sheet or CRM every 5 minutes and pings Slack, Discord or any webhook when a lead waits past your SLA.

Want a human to map it?

Paopao Studio runs a fixed-price Lead Leak Check ($197): a written leak map of 1–2 lead workflows, credited in full to a Starter build within 30 days. Free screenshot triage by email. → https://paopao-studio.pages.dev/?utm_source=github&utm_medium=oss&utm_campaign=lead_leak_1029

Develop

pip install -e ".[test]"
pytest -q          # rule tests + an end-to-end stdio round trip with the official MCP client

License

MIT, see LICENSE.

Available Tools

3 tools
analyze_run_historyA

Analyze a run-history CSV (needs a status column; a timestamp column enables gap and stale checks).

Flags failed/halted runs, filtered runs that end without errors, long gaps with no runs, and a stale last run.

NameRequiredDescriptionDefault
csv_textYes
expected_interval_minutesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose key traits: large inputs (~200-400KB) and a fidelity requirement that raw logs be passed rather than a summarized excerpt. It stops short of stating whether output is truncated or paginated, but overall the operational hazards are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences; the detection capabilities and the hard prerequisite are front-loaded, and no sentence restates the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Prerequisites, input size, input fidelity, and sibling alternatives are all present, and an output schema exists so return-shape explanation is unnecessary. The remaining gap is parameter-level guidance for the non-log argument.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the parameters, but it names only one behavior — that the primary input must be raw, unsummarized logs. The second parameter (the workflow filename/identifier implied by the prerequisite) is never mentioned, and no parameter is matched by name, leaving the agent to infer the mapping.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Analyze CI/CD audit logs") plus the concrete outcomes it detects (pipeline and test failures). It also names the two sibling analysis tools (analyze_cicd_config, analyze_cicd_workflow_yaml) so the agent can route on content type rather than guess.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit precondition and tool chain ("Requires get_workflow_run_logs or get_workflow_run_jobs first") and names the alternatives for adjacent tasks. An agent knows both when to call this and what to call before it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_pipelineA

Check a structured lead-pipeline config and return a ranked leak-risk list.

Keys (all optional; omitted ones are reported as 'verify'): name; sources: [{type: web_form|whatsapp|email|ads_lead_form|instagram_dm|..., required_contact_field: bool, logged_to_storage: bool}]; storage: {type: google_sheets|crm|airtable|none, dedupe: bool}; routing: {owner_assignment: round_robin|fixed|none, after_hours_coverage: bool}; response: {sla_minutes: int, auto_ack: bool, ai_drafts: bool, human_send_step: bool}; monitoring: {error_alerts: bool, unanswered_lead_alert: bool, run_history_review: weekly|never}; automation: {platform: zapier|make|n8n, plan: free|paid}; timezone: {business_tz, automation_tz}; follow_up: {sequence: bool}

NameRequiredDescriptionDefault
configYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose one real behavioral trait: omitted keys surface as 'verify' rather than failing. It is silent on whether the call is purely read-only, whether it needs stored credentials to inspect storage/automation settings, and how the 'ranked' ordering is derived.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-line purpose is front-loaded before the config breakdown, and every listed key maps to an otherwise undocumented field, so the bulk earns its place. The layout is a little ragged (the '...' in source types is vague) and could be tightened into a cleaner structured block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values need not be described since an output schema exists, and the description thoroughly fills the empty parameter schema. Remaining gaps are what 'verify' means in practice and whether the check is read-only, but nothing essential to invoking it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% – the single 'config' parameter is an untyped object with additionalProperties true and no properties. The description compensates fully by enumerating every accepted key, its nesting, and allowed enum values (web_form|whatsapp|..., round_robin|fixed|none, zapier|make|n8n, etc.), which the schema alone cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check a structured lead-pipeline config') and names the concrete output ('ranked leak-risk list'), so the agent knows exactly what it gets back. It doesn't explicitly contrast itself with the sibling check_pipeline_description, so sibling differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The note that all keys are optional and omitted ones are reported as 'verify' gives some practical guidance on how loosely the tool can be called. However, there is no statement of when to use this versus check_pipeline_description or analyze_run_history, and no prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_pipeline_descriptionC

Check a plain-English description of how leads arrive, where they are stored, who replies and what alerts exist.

NameRequiredDescriptionDefault
descriptionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full disclosure burden, and it says nothing about what checking entails — validation rules, failure modes, whether it is read-only, or whether it requires a pre-existing pipeline. An output schema exists, so return shape needn't be covered, but the checking behavior itself is opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the resource front-loaded. Nothing is wasted, though the sentence is doing too little work rather than too much.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema handles return values and there is only one parameter, so the remaining burden is modest — but for a tool whose whole job is 'checking', not saying what the check looks for or produces leaves a real gap given zero annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it partly does by specifying what the single 'description' string should contain: lead arrival, storage, reply ownership, and alerts. That is useful content guidance, but it doesn't say length expectations, format, or what happens if an aspect is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb is 'check' and the resource is a plain-English pipeline description, and it enumerates the aspects the description should cover (arrival, storage, replies, alerts). But 'check' is undefined — the agent cannot tell whether this validates, scores, or critiques the text, nor how it differs meaningfully from the sibling check_pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus check_pipeline, which sits right next to it in the sibling list. Nothing indicates whether this is a pre-check, a fallback for unstructured input, or an alternative for users who can't fill a structured pipeline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedanalyze_run_history
    • First observedcheck_pipeline
    • First observedcheck_pipeline_description

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation4/5

The three tools target distinct input types: structured config, plain-English description, and run-history CSV. However, check_pipeline and check_pipeline_description have nearly identical names and purposes, which could cause misselection when the input format is ambiguous.

Naming Consistency5/5

All tools use consistent snake_case verb_noun naming (check_pipeline, check_pipeline_description, analyze_run_history). The longer check_pipeline_description is still predictable within the same convention.

Tool Count4/5

Three tools are well-scoped for a focused lead-leak diagnostic server. The count is slightly thin and two tools are input-format variants of the same check, but neither is excessive.

Completeness4/5

The surface covers structured pipeline checks, natural-language descriptions, and run-history analysis, which are the main diagnostic inputs. Minor gaps remain: no tool to consolidate findings or recommend fixes, and no direct lead-level audit.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A local MCP server that parses Terraform .tfstate files and lets AI agents audit enterprise infrastructure for security misconfigurations without requiring direct cloud credentials.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A local-first MCP server for auditing, drafting, and planning updates to your personal LinkedIn profile safely, without automation or scraping.
    10
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An unofficial MCP server for Smartlead that exposes the SmartProspect API and core Smartlead operations, enabling agents to search for leads, manage campaigns, and control credit spending with configurable safety modes.
    39
    18 npm
    1
    MIT