使用说明
多代理数据助理
- Python 3.10+
- LangGraph+LangChain
- MCP(模型上下文协议) 用于工具集成
- 用于电子邮件的SendGrid
- APScheduler用于日程安排
- SQLite用于状态+日志
- fpdf2用于PDF生成
特性
✨ 新增:MCP集成
- 使用模型上下文协议的模块化工具架构
- 用于数据库查询和电子邮件发送的内部MCP服务器
- 代理逻辑和工具实现之间的清晰分离
- 易于使用新工具进行扩展
快速开始
1.安装依赖项
# Linux/Mac
chmod +x setup_mcp.sh
./setup_mcp.sh
# Windows
setup_mcp.bat
# Or manually
pip install -r requirements.txt
2.配置环境
创建 .env 从 env.example 并填写:
# Database (for db.query_supabase MCP tool)
DATA_DB_TYPE=postgres
DATA_DSN=postgresql://user:password@host:port/database
DATA_TABLE=your_table_name
# Email (for email.send_report MCP tool)
SENDGRID_API_KEY=your_key
EMAIL_FROM=sender@example.com
EMAIL_TO=recipient@example.com
# OpenAI (optional, for NLP)
OPENAI_API_KEY=your_key
3.运行应用程序
# Option 1: Direct execution
python main.py
# Option 2: Start the API server
uvicorn server:app --host 0.0.0.0 --port 8010
4.测试MCP集成
python test_mcp_integration.py
建筑
User Input
↓
NLP Agent (parses query)
↓
DB Agent → MCP: db.query_supabase → Supabase/PostgreSQL
↓
CSV Agent (creates CSV file)
↓
Report Agent (generates PDF)
↓
Email Agent → MCP: email.send_report → SendGrid
↓
Logs & Memory
MCP工具
内部MCP服务器
-
db.query_supabase (
mcp_servers/db_server.py)- 执行安全的只读SQL查询
- 自动查询验证(仅限SELECT)
- 支持PostgreSQL、MySQL、SQLite
-
email.send_report (
mcp_servers/email_server.py)- 通过SendGrid发送带有附件的电子邮件
- 支持CSV、PDF和其他文件类型
看 MCP_INTEGRATION.md 详细文档。
API终点
POST /run-运行多代理流GET /health-健康检查GET /logs-检索日志POST /scheduler/add-安排定期作业GET /scheduler/list-列出计划作业
备注
- MCP服务器从后端自动启动
- 如果缺少SendGrid配置,则跳过电子邮件发送
- NLP在配置时使用OpenAI;否则使用安全的模拟路径
- 所有工具调用都通过MCP,以获得更好的可观察性和模块化
