🚀 MCP+AI代理——日报自动化系统
一个智能自主系统,通过统一的MCP服务器获取实时天气和股市数据,由LangGraph AI代理处理,并以高级格式化PDF报告的形式交付。
______________________________________________________________________
📖 概述
该项目是一个生产级AI管道,实施 模型上下文协议(MCP) 和 LangGraph 框架。它编排了一个多代理工作流,以生成和交付全面的金融情报报告。该系统结合了实时股票数据和本地化天气指标,提供人工智能驱动的异常检测和运营风险评估。
🛠️ 技术栈
| 层 | 技术 |
|---|---|
| API框架 | FastAPI |
| AI编排 | LangGraph(状态多代理工作流) |
| LLM发动机 | Groq-- llama-3.3-70b-versatile |
| 数据协议 | 统一MCP(模型上下文协议) |
| 数据源 | OpenWeatherMap,金融(通过股票MCP) |
| 可视化 | Matplotlib(性能图表)+ReportLab(弹性PDF) |
| 调度 | 重构 schedule 持久服务 |
| 部署 | Docker&Docker编写 |
______________________________________________________________________
✨ 主要特点
- 📡 统一MCP基础设施:一台高性能服务器,管理多个天气和市场数据工具。
- 🛡️ 弹性PDF生成器:智能PDF生成,自动平衡标签,处理多行AI内容而不会崩溃。
- 🤖 智能多代理节点:
- 主管:明智地安排国家路线。 - 抓取器:使用智能股票映射(自动附加)进行并行数据收集 .NS/.BO NSE/BSE)。 - 分析:将市场峰值与天气警报进行交叉引用,以获得独特的运营见解。 - 报告:自动样式和图表集成。 - 路由器:多通道传递(SMTP电子邮件+API下载)。
- 📉 智能范围标准化:自动将用户请求(例如“7天”、“2个月”)映射到最近的支持请求
yfinance间隔。 - ⏰ 强化调度程序:具有状态心跳、绝对路径解析和防崩溃超时的持久后台服务。
- 🌍 时区感知:完全可配置的时区支持(默认为
Asia/Kolkata用于Docker部署)。
______________________________________________________________________
🏗️ 建筑
graph TD
User([User Request / Schedule]) --> API[FastAPI / Scheduler]
API --> Supervisor[Supervisor Agent]
Supervisor --> Fetcher[Fetcher Agent]
Fetcher --> MCP[Unified MCP Server]
MCP --> Weather[Weather API]
MCP --> Stocks[Stock Market Data]
Fetcher --> Analysis[Analysis Agent]
Analysis --> Report[Report Agent]
Report --> PDF[PDF Builder + Matplotlib]
PDF --> Router[Router Agent]
Router --> Email[SMTP Email Delivery]
Router --> Download[Manual Download Link]______________________________________________________________________
⚙️ 设置
1.要求
- Python 3.11+
- (推荐)
- API密钥: Groq, OpenWeatherMap
- Gmail应用程序密码(用于电子邮件自动化)
2.快速入门(Docker)
运行整个系统的最简单方法:
# Clone the repository
git clone https://github.com/yourusername/mcp-report-automation.git
cd mcp-report-automation
# Update your .env file (see Configuration below)
# Launch all services
docker-compose --project-directory docker up --build -d3.本地安装
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Mac/Linux
# Install dependencies
pip install -r requirements.txt4.配置
创建一个 .env 根目录下的文件:
# API Keys
GROQ_API_KEY=gsk_...
OPENWEATHER_API_KEY=...
# Email Config
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email@gmail.com
SMTP_PASSWORD=your_gmail_app_password
REPORT_RECIPIENTS=manager@company.com,team@company.com
# Defaults
DEFAULT_CITY=Mumbai
DEFAULT_MARKET=NSE
DEFAULT_TICKERS=RELIANCE,TCS,HDFCBANK
TIMEZONE=Asia/Kolkata
DAILY_REPORT_TIME=7:00______________________________________________________________________
🚀 用法
REST API端点
API可在 http://localhost:8000.
- 检查健康状况:
GET /api/v1/health - 触发报告:
POST /api/v1/report/generate - 检查状态:
GET /api/v1/report/status/{run_id} - 列出全部:
GET /api/v1/report/list - 下载PDF:
GET /api/v1/report/download/{run_id}
请求示例:
curl -X POST http://localhost:8000/api/v1/report/generate \
-H "Content-Type: application/json" \
-d '{
"city": "Dubai",
"market": "NASDAQ",
"tickers": ["AAPL", "TSLA"],
"date_range_days": 30
}'自动调度程序
调度器在Docker中作为单独的服务运行。它每小时检查一次更新,并在您的配置中触发完整的每日报告 DAILY_REPORT_TIME.
______________________________________________________________________
📂 项目结构
├── agents/ # LangGraph nodes & Agent logic
├── app/ # FastAPI Application & REST Endpoints
├── config/ # Central Settings (Pydantic-based)
├── delivery/ # SMTP & Email notification logic
├── docker/ # Dockerfile & Orchestration
├── mcp_server/ # Unified Tool Server (Weather + Stocks)
├── pdf_builder/ # PDF Assembly & Matplotlib integration
├── pipeline/ # LangGraph State & Graph definition
├── scheduler/ # Persistent Job Runner
└── logs/ # Application performance logs______________________________________________________________________
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
______________________________________________________________________
Created with ❤️ by the AI Automation Pipeline Team
