多代理数据助手

一个基于Python的多代理数据助手,支持数据库查询、报告生成和邮件发送等功能,适用于数据分析和自动化任务。

  • by Gabriel-Kelvin
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Gabriel-Kelvin/multiagent_mcp

使用说明

多代理数据助理

  • 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服务器

  1. db.query_supabase (mcp_servers/db_server.py)

    • 执行安全的只读SQL查询
    • 自动查询验证(仅限SELECT)
    • 支持PostgreSQL、MySQL、SQLite
  2. 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,以获得更好的可观察性和模块化