← Browse

@modbender/lead-extractor

A

Extract structured real-estate lead records from parsed message objects. Use when users ask to find leads in WhatsApp exports, extract name-phone-budget, or classify listing vs requirement posts. Recommended chain: run after message-parser and before india-location-normalizer. Do not use for storage, summaries, outbound messaging, or action execution.

skillclaude

Install

agr install @modbender/lead-extractor --target claude

Writes 1 file into .claude/skills/, pinned to git-b15b07a5.

  • .claude/skills/lead-extractor/SKILL.md

Document


name: lead-extractor description: "Extract structured real-estate lead records from parsed message objects. Use when users ask to find leads in WhatsApp exports, extract name-phone-budget, or classify listing vs requirement posts. Recommended chain: run after message-parser and before india-location-normalizer. Do not use for storage, summaries, outbound messaging, or action execution."

Lead Extractor

Identify lead signals in parsed messages and emit strict lead objects.

Quick Triggers

  • Find all buyer leads from this WhatsApp chat.
  • Extract contact details and budget from these messages.
  • Identify serious property inquiries from parsed messages.

Recommended Chain

message-parser -> lead-extractor -> india-location-normalizer

Execute Workflow

  1. Accept parsed messages from Supervisor.
  2. Validate input with references/parsed-message-input.schema.json.
  3. Apply chat-specific extraction rules from references/extraction-rules-re-india-v1.md.
  4. Determine dataset_mode from Supervisor context:
    • default: broker_group
    • allowed: broker_group, buyer_inquiry, mixed
  5. Detect lead-candidate messages using inquiry intent, contact details, and property-related preferences.
  6. Classify record_type:
    • inventory_listing for broker inventory/availability posts (default in broker groups)
    • buyer_requirement for explicit "required/chahiye looking for" demand posts
    • drop non-lead/system noise instead of emitting noise_or_system
  7. Handle multiline listings as one candidate record when body lines contain price, area, or location details.
  8. Build lead records with:
    • required: lead_id, name, phone, record_type
    • optional: dataset_mode, property_type, budget, deal_type, asset_class, price_basis, area_sqft, area_basis, location_hint, raw_text, source, created_at
  9. Normalize phone extraction from spaced variants such as +91 98205 82462 and 98200 78845.
  10. Distinguish price intent from rate intent:
  • examples: 3.5 Lakh rent (monthly), 60K psf (per-sqft), 4.25 Cr (total)
  1. Deduplicate leads by stable keys when records clearly refer to the same person.
  2. Validate output with references/output-leads.schema.json.
  3. Return only validated lead objects.

Enforce Boundaries

  • Never write or update persistent storage.
  • Never modify source messages.
  • Never generate summaries.
  • Never suggest or execute follow-up actions.
  • Never send communication or invoke external side effects.

Handle Errors

  1. Reject invalid parsed-message input.
  2. Emit an empty array when no lead evidence exists.
  3. Return field-level validation errors when extracted records violate schema.

Repository README

Describes modbender/skill-library-mcp as a whole, which may contain artifacts other than this one. Where this artifact had no useful description of its own, its summary was taken from here.

Skill Library MCP

15,000+ ready-to-use skills for AI coding assistants, served on demand via MCP.

npm version License: MIT Node.js

An MCP server that provides on-demand skill loading for AI coding assistants. Instead of stuffing your system prompt with every skill you might need, this server indexes 15,000+ skills and serves only the ones relevant to your current task — keeping context windows lean and responses focused.

Documentation

Full documentation is at modbender.in/skill-library-mcp — installation, the tools it exposes, configuration, and examples.

Why?

  • 15,000+ skills covering frontend, backend, DevOps, security, testing, databases, AI/ML, automation, and more
  • On-demand loading — skills are fetched only when needed, not crammed into every conversation
  • IDF-weighted search — finds the right skill even from natural language queries like "help me debug a memory leak"
  • Browse by category — 13 categories to discover skills you didn't know existed
  • Works with any MCP-compatible tool — Claude Code, Cursor, Windsurf, VS Code, Claude Desktop, and others
  • Claude Code plugin — one-command install with claude plugin install
  • Zero config — run with npx, no setup needed

Quick Start

Claude Code Plugin (Recommended)

Add the marketplace source, then install the plugin:

claude plugin marketplace add https://github.com/modbender/skill-library-mcp.git --scope user
claude plugin install skill-library --scope user

The MCP server starts automatically when Claude Code launches. No manual configuration needed.

Claude Code (MCP Server)

claude mcp add skill-library --scope user -- npx -y skill-library-mcp

MCP Server (Other Tools)

Add to your claude_desktop_config.json (location varies by OS):

{
  "mcpServers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}

Add to .vscode/mcp.json:

{
  "servers": {
    "skill-library": {
      "command": "npx",
      "args": ["-y", "skill-library-mcp"]
    }
  }
}
git clone https://github.com/modbender/skill-library-mcp
cd skill-library-mcp
pnpm install
pnpm build

Then point your MCP config to the built binary:

{
  "mcpServers": {
    "skill-library": {
      "command": "node",
      "args": ["/path/to/skill-library-mcp/dist/index.js"]
    }
  }
}

Tools

search_skill

Search for skills by keyword. Returns a ranked list of matching skill names and descriptions.

search_skill({ query: "react patterns" })

load_skill

Load the full content of a skill by name. Optionally includes resource files.

load_skill({ name: "brainstorming", include_resources: true })

list_categories

Browse all skill categories with counts and examples. Use to discover skills before searching.

list_categories()

Skill Categories

The library includes 15,000+ skills across 13 categories:

CategoryExamples
FrontendReact patterns, Angular, Vue, Svelte, Next.js, Tailwind, accessibility
BackendNode.js, FastAPI, Django, NestJS, Express, GraphQL, REST API design
AI & LLMLLM app dev, RAG implementation, agent patterns, prompt engineering, embeddings
DevOps & InfraTerraform, Kubernetes, Docker, AWS, GCP, Azure, CI/CD
Data & DatabasesPostgreSQL, MongoDB, Redis, SQL optimization, ETL pipelines, analytics
SecurityPenetration testing, OWASP, threat modeling, vulnerability scanning, encryption
TestingTDD workflows, Playwright, Vitest, Jest, E2E testing patterns
MobileReact Native, Flutter, iOS, Android, Expo
AutomationWorkflow automation, n8n, Zapier, web scraping, bots
PythonDjango, Flask, FastAPI, pandas, Python tooling
TypeScript & JSTypeScript, JavaScript, Deno, Bun
ArchitectureMicroservices, system design, design patterns, monorepos
OtherHundreds of specialized and niche skills

Skill Format

Skills are directories containing a SKILL.md file with YAML frontmatter:

---
name: my-skill
description: What this skill does
---

# My Skill

Skill content here...

Skills can optionally include a resources/ directory with additional .md files that are appended when include_resources: true is set.

Contributing

Contributions are welcome! To add a new skill:

  1. Create a directory under data/ with your skill name
  2. Add a SKILL.md file with YAML frontmatter (name, description)
  3. Run pnpm dedup to check for duplicates
  4. Submit a PR

Development

pnpm install          # Install dependencies
pnpm test             # Run tests
pnpm build            # Build to dist/
pnpm dev              # Run server locally
pnpm dedup            # Check for duplicate skills
pnpm validate-skills  # Validate data/ directory structure
pnpm fix-skills       # Fix broken skills (dry run by default)
pnpm clean-skills     # Remove invalid skill dirs (dry run by default)
make ci               # Run test + validate + build

Third-Party Content

This project includes skills from openclaw/skills, licensed under the MIT License. See THIRD_PARTY_NOTICES.md for details.

License

MIT

Trustgrade A

  • passBody integrity

    Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.

  • passType matchnot applicable to this artifact type

    Whether the artifact is really the kind of thing its metadata claims it is.

  • passFreshness

    How long since the source repository was last pushed to.

  • passPrompt injection

    Scans the artifact's own text for instructions aimed at your agent rather than at you.

  • passLicense

    Whether the source repository declares an SPDX license permissive enough to redistribute.

How the grade is calculated

Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:

  • Aevery check passed
  • Bone warning
  • Ctwo warnings
  • Dprompt injection or body integrity failed, or three warnings
  • Fone of those failed, and something else is wrong

These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.

Versions

  • git-b15b07a5fcb32026-07-31