线索生成服务器

一个基于MCP Python SDK和Crawl4AI的生产级线索生成系统,支持从发现到丰富的全生命周期管理,适用于企业级数据采集和潜在客户开发。

  • by bashirk
  • Python
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 bashirk/inbound-mcp

使用说明

潜在客户开发服务器文档

目录

  1. 概述
  2. 特性
  3. 建筑
  4. 先决条件
  5. 安装
  6. 配置
  7. 运行服务器
  8. API文档
  9. 例子
  10. 高级配置
  11. 故障排除
  12. 贡献
  13. 许可证
  14. 路线图
  15. 支持

概述

建立在以下基础上的生产级潜在客户开发系统:

  • MCP Python SDK 用于符合协议的人工智能服务
  • Crawl4AI 用于智能网络爬行
  • 异步IO 用于高并发操作

通过以下方式实施从发现到丰富的完整潜在客户生命周期:

  • 基于UUID的潜在客户跟踪
  • 多源数据聚合
  • 智能缓存策略
  • 企业级错误处理

特性

功能 技术栈 吞吐量
潜在客户开发 谷歌CSE,爬行4AI 120次/分钟
数据丰富 Hunter.io,Clearbit[Hubspot Breeze] 80需求/分钟
LinkedIn抓取 编剧,隐形模式 40次/分钟
缓存 缓存,Redis 10K操作/秒
监控 普罗米修斯,自定义指标 实时

建筑

graph TD
    A[Client] --> B[MCP Server]
    B --> C{Lead Manager}
    C --> D[Google CSE]
    C --> E[Crawl4AI]
    C --> F[Hunter.io]
    C --> G[Clearbit]
    C --> H[LinkedIn Scraper]
    C --> I[(Redis Cache)]
    C --> J[Lead Store]

先决条件

  • Python 3.10+
  • API密钥:
    export HUNTER_API_KEY="your_key"
    export CLEARBIT_API_KEY="your_key"
    export GOOGLE_CSE_ID="your_id"
    export GOOGLE_API_KEY="your_key"
    
  • LinkedIn会话Cookie(用于抓取)
  • 4GB+RAM(建议使用8GB进行大量刮擦)

安装

生产设置

# Create virtual environment
python -m venv .venv && source .venv/bin/activate

# Install with production dependencies
pip install mcp crawl4ai[all] aiocache aiohttp uvloop

# Set up browser dependencies
python -m playwright install chromium

Docker部署

FROM python:3.10-slim

RUN apt-get update && apt-get install -y \
    gcc \
    libpython3-dev \
    chromium \
    && rm -rf /var/lib/apt/lists/*

COPY . /app
WORKDIR /app

RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "-m", "mcp", "run", "lead_server.py"]

配置

config.yaml

services:
  hunter:
    api_key: ${HUNTER_API_KEY}
    rate_limit: 50/60s
    
  clearbit:
    api_key: ${CLEARBIT_API_KEY}
    cache_ttl: 86400

scraping:
  stealth_mode: true
  headless: true
  timeout: 30
  max_retries: 3

cache:
  backend: redis://localhost:6379/0
  default_ttl: 3600

运行服务器

发展模式

mcp dev lead_server.py --reload --port 8080

生产

gunicorn -w 4 -k uvicorn.workers.UvicornWorker lead_server:app

码头工人

docker build -t lead-server .
docker run -p 8080:8080 -e HUNTER_API_KEY=your_key lead-server

API文档

1.产生潜在客户

POST /tools/lead_generation
Content-Type: application/json

{
  "search_terms": "OpenAI"
}

答复:

{
  "lead_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "pending",
  "estimated_time": 15
}

2.丰富铅

POST /tools/data_enrichment
Content-Type: application/json

{
  "lead_id": "550e8400-e29b-41d4-a716-446655440000"
}

3.监控线索

GET /tools/lead_maintenance

例子

Python客户端

from mcp.client import Client

async with Client() as client:
    # Generate lead
    lead = await client.call_tool(
        "lead_generation",
        {"search_terms": "Anthropic"}
    )
    
    # Enrich with all services
    enriched = await client.call_tool(
        "data_enrichment",
        {"lead_id": lead['lead_id']}
    )
    
    # Get full lead data
    status = await client.call_tool(
        "lead_status",
        {"lead_id": lead['lead_id']}
    )

卷曲

# Generate lead
curl -X POST http://localhost:8080/tools/lead_generation \
  -H "Content-Type: application/json" \
  -d '{"search_terms": "Cohere AI"}'

高级配置

缓存策略

from aiocache import Cache

# Configure Redis cluster
Cache.from_url(
    "redis://cluster-node1:6379/0",
    timeout=10,
    retry=True,
    retry_timeout=2
)

速率限制

from mcp.server.middleware import RateLimiter

mcp.add_middleware(
    RateLimiter(
        rules={
            "lead_generation": "100/1m",
            "data_enrichment": "50/1m"
        }
    )
)

故障排除

错误 解决方案
403 Forbidden 从谷歌 旋转IP或使用官方CSE API
429 Too Many Requests 实施指数回退
Playwright Timeout 增加 scraping.timeout 在配置中
Cache Miss 验证Redis连接和TTL设置

贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/new-enrichment
  3. 提交更改: git commit -am 'Add Clearbit alternative'
  4. 推送到分支: git push origin feature/new-enrichment
  5. 提交拉取请求

许可证

Apache 2.0-请参阅 许可证 了解详情。


路线图

  • [ ] 2025年第二季度:AI驱动的领先评分
  • [ ] 2025年第3季度:分布式爬行集群支持

支持

对于企业支持和自定义集成:
📧 电子邮件: hi@kobotai.co
🐦 推特: @KobotAIco


# Run benchmark tests
pytest tests/ --benchmark-json=results.json