mcp服务器crm
自由职业者客户端管道跟踪器 --MCP服务器,为Claude(或任何与MCP兼容的LLM)提供工具,用于管理潜在客户、跟踪管道阶段、记录交互和生成报告。
建筑
┌─────────────────────────────────────────────────┐
│ Claude Desktop │
│ (or any MCP-compatible LLM) │
└─────────────────┬───────────────────────────────┘
│ MCP Protocol (stdio)
▼
┌─────────────────────────────────────────────────┐
│ mcp-server-crm │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ server.py│ │ api.py │ │
│ │ (MCP) │ │ (FastAPI)│ │
│ └────┬─────┘ └────┬─────┘ │
│ └───────┬───────┘ │
│ ▼ │
│ ┌────────────┐ │
│ │ queries.py │ (shared business logic) │
│ └──────┬─────┘ │
│ ▼ │
│ ┌────────────┐ │
│ │ db.py │ (SQLite / PostgreSQL) │
│ └────────────┘ │
└─────────────────────────────────────────────────┘关键设计: MCP服务器和FastAPI REST API共享相同的 queries.py 业务逻辑——零重复,保证行为对等。
特性
| 工具 | 说明 |
|---|---|
search_leads | 按状态、来源和预算范围搜索潜在客户 |
get_lead | 获取单个潜在客户的完整详细信息 |
create_lead | 在“潜在客户”阶段添加新线索 |
update_lead | 更新潜在客户信息(部分更新) |
update_stage | 通过历史跟踪在管道中移动潜在客户 |
get_reminders | 查找逾期跟进日期的潜在客户 |
get_pipeline_report | 胜率、收入统计、赛段细分 |
flag_overdue | 红旗线索逾期3天以上 |
add_activity | 记录电子邮件、电话、会议、提案 |
管道阶段
prospect → contacted → proposal_sent → qualified → negotiation → closed_won
→ closed_lost快速开始
1.安装
git clone https://github.com/Aniketsingh12/mcp-server-crm.git
cd mcp-server-crm
pip install -e ".[dev]"2.种子演示数据
python -m mcp_server_crm.seed3.使用克劳德桌面运行
添加到您的Claude桌面配置(claude_desktop_config.json):
{
"mcpServers": {
"crm": {
"command": "python",
"args": ["-m", "mcp_server_crm.server"]
}
}
}然后问克劳德这样的问题:
- *“向我展示LinkedIn上预算超过5000美元的所有潜在客户”*
- *“将Nexus Financial带入谈判阶段”*
- *“哪些线索已经逾期未跟进?”*
- *“给我一份管道报告”*
4.运行REST API(可选)
python scripts/run_both.py
# Open http://127.0.0.1:8000/docs for Swagger UI5.使用MCP检查员进行测试
mcp dev src/mcp_server_crm/server.pyREST API参考
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /health | 健康检查 |
| 得到 | /leads | 搜索潜在客户(查询参数:状态、来源、最小预算、最大预算) |
| 得到 | /leads/{id} | 获取线索 |
| 职位 | /leads | 创建潜在客户 |
| 补丁 | /leads/{id} | 更新潜在客户 |
| 补丁 | /leads/{id}/stage | 更改管道阶段 |
| 删除 | /leads/{id} | 删除潜在客户 |
| 得到 | /leads/{id}/activities | 列出潜在客户活动 |
| 职位 | /leads/{id}/activities | 记录活动 |
| 得到 | /reminders | 获取后续提醒 |
| 得到 | /overdue | 获取关键的逾期线索 |
| 得到 | /reports/pipeline | 完整的管道报告 |
发展
# Run tests
pytest -v
# Run API with auto-reload
uvicorn mcp_server_crm.api:app --reloadPostgreSQL迁移路径
SQLite数据库可以通过以下方式交换到Supabase/PPostgreSQL:
- 添加
asyncpg依赖关系 - 更新
db.py连接使用DATABASE_URLenv 是 - 调整SQL占位符(
?→$1, $2)
这 queries.py 函数签名保持不变——只有内部SQL发生了变化。
技术栈
- Python 3.11 --运行时间
- MCP SDK(快速MCP) --模型上下文协议服务器
- 快速API -REST API
- SQLite --零配置数据库(交换到PostgreSQL用于生产)
- 派丹蒂克 --数据验证和序列化
许可证
麻省理工学院
