日报自动化系统

一个智能自动化系统,通过统一MCP服务器获取实时天气和股票市场数据,由LangGraph AI代理处理,并生成为精美的PDF报告。

  • by LAKHANATOLIYA
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 LAKHANATOLIYA/MCP_Report_Model

使用说明

🚀 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+
  • Docker&Docker编写 (推荐)
  • 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 -d

3.本地安装

python -m venv venv
venv\Scripts\activate  # Windows
source venv/bin/activate  # Mac/Linux

# Install dependencies
pip install -r requirements.txt

4.配置

创建一个 .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