Mcp Leadgen Orchestrator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Leadgen Orchestrator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A full-stack lead generation and outreach automation system built with Model Context Protocol (MCP), n8n orchestration, Groq AI, and a real-time monitoring dashboard.
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ n8n │─────▶│ MCP Server │─────▶│ Backend │
│ Workflow │ │ (Tools) │ │ Services │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
│ ▼
│ ┌─────────────┐
│ │ SQLite │
│ │ Database │
│ └─────────────┘
▼
┌──────────────┐
│ Frontend │
│ Dashboard │
└──────────────┘cd e:\intern-assigment\linkind-mcp# Copy example environment file
cp .env.example .env
# Edit .env and add your Groq API key
# GROQ_API_KEY=your_key_here# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtnpm installpython backend/database.pyTerminal 1 - MCP Server:
python mcp_server/server.pyTerminal 2 - API Backend:
python backend/api.pyTerminal 3 - Frontend:
npm run devTo connect your local API with the remote n8n instance:
# In a new terminal, start ngrok
ngrok http 8000Copy the ngrok URL (e.g., https://abc123.ngrok-free.app) and update your n8n workflow nodes to use this URL.
linkind-mcp/
├── backend/ # Python backend services
│ ├── api.py # FastAPI application
│ ├── database.py # SQLite database setup
│ ├── lead_generator.py # Lead generation logic
│ ├── enrichment.py # Lead enrichment service
│ ├── messaging.py # Message generation
│ └── outreach.py # Message sending
├── mcp_server/ # MCP server implementation
│ ├── server.py # MCP server main
│ └── tools.py # MCP tool definitions
├── frontend/ # Next.js React frontend
│ ├── pages/ # Next.js pages
│ ├── components/ # React components
│ └── styles/ # CSS styles
├── data/ # SQLite database storage
├── .env.example # Environment template
└── README.md # This fileToggle between modes in the frontend or set in .env:
DRY_RUN_MODE=true # Logs messages without sending
DRY_RUN_MODE=false # Actually sends messagesConfigure in .env:
RATE_LIMIT_PER_MINUTE=10 # Max messages per minute
MAX_RETRIES=2 # Retry attempts for failed sendsFor live email sending, configure SMTP:
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=your_app_password # Use Gmail App PasswordThe system now operates through automated triggers from external sources:
Add a test lead to your Google Sheet with:
The n8n workflow will automatically detect and process it, generating personalized messages based on the comments provided.
n8n/n8n-workflow.jsonname, email, phone, job_title, company, commentshttps://YOUR-NGROK-URL.ngrok-free.app/pipeline/runhttps://YOUR-NGROK-URL.ngrok-free.app/metricshttps://YOUR-NGROK-URL.ngrok-free.app/leadspython backend/lead_generator.pycurl -X POST http://localhost:8000/pipeline/run \
-H "Content-Type: application/json" \
-d '{
"dry_run": true,
"enrichment_mode": "offline",
"lead_count": 200,
"channel": "both",
"lead_data": {
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1-555-0199",
"job_title": "CTO",
"company": "Innovation Labs",
"comments": "Looking for AI solutions to streamline operations",
"source": "test"
}
}'Leads are tracked through these statuses:
NEW → Lead createdENRICHED → Lead enriched with insightsMESSAGED → Messages generatedSENT → Outreach sent successfullyFAILED → Process failed<<<<<<< HEAD
.env files to version controlMIT
This is a take-home assignment project. For production use, consider adding:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.