Lead Cleanup MCP Lite
# Lead Cleanup MCP Lite
A free, minimal [Model Context Protocol](https://modelcontextprotocol.io) server that cleans and de-duplicates sales lead lists. It runs locally, needs **no API keys**, and makes no network calls.
## Tools
| Tool | What it does |
| --- | --- |
| `clean_leads` | Takes a list of leads (`name`, `email`, `phone`, `company`, `website`). Normalizes names, emails, phone numbers and website domains, drops leads with invalid emails, and removes duplicates by email. Returns the cleaned list plus counts. |
| `validate_email` | Checks whether an email address has a valid format (no network lookup). |
## Install
Requires Node.js 18 or newer.
```bash
git clone https://github.com/digitalsolutionsmagic/lead-cleanup-mcp-lite.git
cd lead-cleanup-mcp-lite
npm install
npm run sample # runs the cleaning logic on examples/sample-leads.json
```
## Add to an MCP client
Example config for Claude Desktop or any client that uses an `mcpServers` block (replace the path with your own):
```json
{
"mcpServers": {
"lead-cleanup-lite": {
"command": "node",
"args": ["/full/path/to/lead-cleanup-mcp-lite/src/index.js"]
}
}
}
```
## Example
Input (`examples/sample-leads.json`) has three rows: one messy valid lead, a duplicate of it, and one with an invalid email. Output:
```json
{
"cleaned": [
{
"name": "Jane Doe",
"email": "jane.doe@example.com",
"phone": "5551234567",
"company": "Acme Inc",
"website": "acme.com"
}
],
"stats": { "input": 3, "kept": 1, "invalid_email": 1, "duplicates": 1 }
}
```
## Full version
This Lite version covers cleanup only. The full **Lead Enrichment & Cleanup MCP Skill** adds AI-powered lead enrichment using Gemini and is available on the author's store:
https://www.getly.store/store/ai-magic-mvh6ijc8
## License
MIT. See [LICENSE](LICENSE).
TDQS
Scored across 2 tools
Both tools operate on email validity: clean_leads already drops invalid emails, so validate_email is essentially a single-item subset of the bulk tool. The descriptions do clarify scope (one address vs. a whole list), which keeps an agent from complete confusion, but the boundaries overlap.
Both names follow the same verb_noun snake_case pattern (clean_leads, validate_email) and the verbs accurately describe the actions.
Two tools is thin even for a 'Lite' server; the surface is a bulk operation plus one narrow helper rather than a balanced set. It is not egregiously over- or under-scoped, but it sits at the borderline.
clean_leads covers the core domain (normalize names, emails, phones, websites, drop invalid, dedupe) and validate_email gives a quick single-address check. Minor gaps exist — no standalone phone/website validation or single-lead normalization, though an agent can pass a one-item list as a workaround.