📱💬 WhatsApp MCP摘要
后端API,使用MCP和Claude生成每日WhatsApp聊天摘要
   ](https://www.docker.com/) 
______________________________________________________________________
✨ 特性
- 🤖 AI驱动的摘要 -使用Anthropic Claude自动生成WhatsApp对话的简明每日摘要
- 🎨 现代仪表板 -漂亮的Next.js前端,灵感来自WhatsApp
- 🔍 交互式查询界面 -使用建议的提示询问有关聊天的问题
- 🔐 安全认证 -基于二维码的WhatsApp身份验证,具有持久会话
- 🚀 FastAPI后端 -现代异步RESTful API,带有自动OpenAPI文档
- 🐳 Docker就绪 -支持Docker Compose的容器化部署
- 🔌 MCP集成 -通过模型上下文协议与WhatsApp无缝集成
- 📊 查询接口 -启用WhatsApp MCP工具的交互式Claude查询
- 🔒 注重隐私 -本地数据存储,可选AI处理
🏗️ 建筑
┌─────────────────┐
│ FastAPI App │
│ (Python 3.11) │
└────────┬────────┘
│
▼
┌─────────────────┐ ┌──────────────────┐
│ MCP Client │◄─────►│ WhatsApp MCP │
│ (Subprocess) │ │ Server │
└────────┬────────┘ └────────┬─────────┘
│ │
│ ▼
│ ┌──────────────────┐
│ │ WhatsApp Bridge │
│ │ (Go 1.21+) │
│ └──────────────────┘
│
▼
┌─────────────────┐
│ Anthropic Claude│
│ (Haiku 4.5) │
└─────────────────┘技术栈:
- 🐍 快速API -用于API的现代Python web框架
- 🔌 WhatsApp MCP服务器 -通过MCP协议集成WhatsApp的基于Go的子流程
- 🤖 安thropic克劳德 -用于生成聊天摘要的AI模型(Haiku 4.5)
- 🐳 码头工人 -支持Go和Python运行时的多阶段构建
📋 先决条件
- 🐳 Docker和Docker Compose(用于容器化部署)
- 🔑 无烟煤API键(在这里买一个)
- 📁 自定义WhatsApp MCP服务器代码
whatsapp-mcp/目录
对于当地发展:
- 🐍 Python 3.11+
- 🦫 转到1.21+
🚀 快速开始
选项A:全栈(后端+前端)
- 启动后端:
# Using Docker Compose
docker-compose up -d
# Or run locally
pip install -r requirements.txt
uvicorn app.main:app --reload- 启动前端:
cd frontend
npm install
npm run dev- 打开仪表板:
- 前端:http://localhost:3000 - 后端API:http://localhost:8033
选项B:仅后端(API)
1.️⃣ 克隆存储库
git clone https://github.com/Amankhan2370/whatsapp-mcp-digest.git
cd whatsapp-mcp-digest2.️⃣ 设置WhatsApp MCP服务器
将您的自定义WhatsApp MCP服务器代码放入 whatsapp-mcp/ 目录。目录应包含:
whatsapp-bridge/子目录main.go(走桥)whatsapp-mcp-server/Python MCP服务器的子目录
# Copy your custom whatsapp-mcp code here
cp -r /path/to/your/custom/whatsapp-mcp/* ./whatsapp-mcp/3.️⃣ 配置环境变量
cp .env.template .env编辑 .env 并添加您的Anthropic API密钥:
ANTHROPIC_API_KEY=your_actual_api_key_here4.️⃣ 使用Docker运行
使用Docker Compose(推荐):
docker-compose up -d查看日志:
docker-compose logs -f停止服务:
docker-compose down直接使用Docker:
docker build -t whatsapp-mcp-digest .
docker run -p 8033:8033 --env-file .env whatsapp-mcp-digest5.️⃣ 使用WhatsApp进行身份验证
该服务需要通过二维码进行WhatsApp身份验证。使用API终结点:
curl -X POST http://localhost:8033/auth/start使用手机上的WhatsApp扫描返回的二维码:
- 📱 打开WhatsApp
- ⚙️ 前往“设置”>“链接的设备”
- ➕ 点击“链接设备”
- 📷 扫描二维码
检查身份验证状态:
curl http://localhost:8033/auth/status6.️⃣ 测试API
# Health check
curl http://localhost:8033/health
# Generate summaries for yesterday's chats
curl -X POST http://localhost:8033/generate_summaries \
-H "Content-Type: application/json" \
-d '{"date": "yesterday"}'
# Send a query to Claude
curl -X POST http://localhost:8033/query \
-H "Content-Type: application/json" \
-d '{"query": "What are my recent messages about?"}'🔧 环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
ANTHROPIC_API_KEY | ✅ 是 | 您的Anthropic API密钥来自 console.anthropic.com |
PORT | ❌ 无 | 服务器端口(默认:8033) |
MCP_SERVER_PATH | ❌ 否 | WhatsApp MCP网桥的路径(默认: /app/whatsapp-mcp/whatsapp-bridge) |
📝 看 .env.template 有关配置详细信息。📡 API终点
GET /
健康检查端点。
答复:
{
"service": "WhatsApp MCP Digest",
"status": "running",
"version": "0.1.0"
}GET /health
详细的健康检查,包括MCP服务器状态。
GET /auth/status
检查WhatsApp身份验证状态。
POST /auth/start
启动WhatsApp身份验证并获取二维码。
GET /auth/qr
在活动身份验证会话期间获取当前二维码。
POST /auth/logout
退出WhatsApp以允许重新验证。
POST /generate_summaries
为特定日期的所有WhatsApp聊天记录生成摘要。
请求:
{
"date": "yesterday" // Options: "yesterday", "today", or "YYYY-MM-DD"
}答复:
{
"summaries": [
{
"chat_name": "Family Group",
"chat_id": "123456789@g.us",
"summary": "- Discussed weekend plans...\n- Made dinner reservations...",
"message_count": 45
}
],
"date_range": "2024-01-10T00:00:00 to 2024-01-10T23:59:59",
"total_chats": 1
}POST /query
在启用WhatsApp MCP工具的情况下向Claude发送查询。Claude可以自动使用WhatsApp工具搜索联系人、列出消息、发送消息等。
请求:
{
"query": "What is the capital of France?",
"context": "Optional context to help Claude answer better"
}答复:
{
"response": "The capital of France is Paris.",
"model": "claude-haiku-4-5-20251001"
}💻 本地开发
设置
- 安装Python依赖项:
pip install -r requirements.txt- 确保您的WhatsApp MCP服务器处于
./whatsapp-mcp/
- 设置环境变量:
export ANTHROPIC_API_KEY=your_key_here
export MCP_SERVER_PATH=./whatsapp-mcp/whatsapp-bridge- 运行应用程序:
uvicorn app.main:app --reload📁 项目结构
whatsapp-mcp-digest/
├── app/ # Backend FastAPI application
│ ├── __init__.py
│ ├── main.py # FastAPI application
│ ├── config.py # Configuration management
│ ├── mcp_client.py # MCP subprocess client
│ └── services/
│ └── summarizer.py # Anthropic Claude integration
├── frontend/ # Next.js frontend dashboard
│ ├── app/ # Next.js app directory
│ ├── components/ # React components
│ │ └── Dashboard.tsx # Main dashboard component
│ ├── lib/ # Utilities
│ │ └── api.ts # API client
│ └── package.json
├── whatsapp-mcp/ # WhatsApp MCP server (custom code)
│ ├── whatsapp-bridge/ # Go bridge
│ └── whatsapp-mcp-server/ # Python MCP server
├── Dockerfile # Multi-stage Docker build
├── docker-compose.yml # Docker Compose configuration
├── requirements.txt # Python dependencies
├── .env.template # Environment variables template
└── README.md🚢 部署
铁路
- 推送到GitHub:
git add .
git commit -m "Initial commit"
git push origin main- 部署到铁路:
- 首选 铁路 - 点击“新建项目”→ “从GitHub仓库部署” - 选择您的存储库 - Railway会自动检测到Dockerfile
- 在铁路项目设置中设置环境变量:
- ANTHROPIC_API_KEY -您的Anthropic API密钥 - 铁路自动提供 PORT
- 部署-Railway将自动构建和部署您的应用程序。
🔒 安全和隐私
⚠️ 重要提示: 除非明确发送给Claude进行处理,否则WhatsApp数据将保留在您的服务器上。
服务内容:
- 🔐 在本地存储WhatsApp会话数据(在Docker卷中用于持久会话)
- 📤 仅在生成摘要或处理查询时向Anthropic Claude发送消息内容
- 🚫 默认情况下不存储或记录消息内容
- ✅ 需要通过二维码扫描进行显式身份验证
负责任地使用此服务,并确保遵守WhatsApp的服务条款和适用的隐私法规。
🐛 故障排除
MCP服务器连接问题
- 检查WhatsApp MCP服务器是否正在运行:在日志中查找启动消息
- 验证
MCP_SERVER_PATH环境变量指向正确的目录 - 确保Go桥和Python MCP服务器都可以访问
人类API错误
- 在中验证您的API密钥是否正确
.env文件 - 检查您的Anthropic帐户是否有足够的积分
- 如果处理多个聊天记录,则查看速率限制
Docker构建问题
- 确保您有足够的磁盘空间进行多阶段构建
- 尝试清除Docker缓存:
docker system prune -a - 验证
whatsapp-mcp/目录结构正确
身份验证问题
- 二维码在3分钟后过期-如有需要,请申请新的二维码
- 使用
/auth/logout重置身份验证状态 - 检查日志以获取详细的错误消息
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
由...制作❤️ 对于开发者
