Skip to main content
Glama

Financial Report Generator MCP Server

by KennanYang

财务报告生成项目 - MCP学习实践

项目概述

这是一个用于学习Model Context Protocol (MCP)的财务报告生成项目。通过这个项目,您将学习如何使用MCP来构建智能的财务报告生成系统,并集成AI模型实现智能化分析。

项目目标

  • 学习MCP的基本概念和架构

  • 实现财务数据的获取和处理

  • 构建智能报告生成系统

  • 集成多种数据源和工具

  • 创建可扩展的MCP服务器

  • 集成本地AI模型(Ollama deepseek-r1:7b)

核心功能

  • 交互式公司财报生成: 支持选择或输入公司代码生成详细财报

  • 多公司支持: 支持NVDA, AAPL, MSFT, GOOGL, TSLA, AMZN, META, NFLX, AMD, INTC等10家公司

  • 多种报告类型: basic(基础), comprehensive(综合), financial_analysis(财务分析)

  • 批量生成: 支持同时生成多个公司的财报

  • MCP协议: 标准MCP工具和资源支持

  • AI增强功能: 集成Ollama deepseek-r1:7b模型,提供智能财务分析

  • 本地AI支持: 支持本地部署的AI模型,无需外部API密钥

AI功能特性

Ollama集成

  • 🎯 本地AI模型: 支持本地部署的deepseek-r1:7b模型

  • 🤖 智能分析: AI驱动的公司财务分析和投资建议

  • 📊 智能报告: AI生成的财务报告和投资分析

  • 🔄 灵活切换: 支持在Ollama和OpenAI之间切换

  • 快速响应: 本地模型,响应速度快

AI功能列表

  • AI公司分析: 使用AI分析公司财务状况和投资价值

  • AI报告生成: 使用AI生成智能财务报告

  • AI投资建议: 使用AI提供投资建议和风险评估

重要说明

🚨 演示程序使用本地数据

当前版本使用的是模拟数据,不是真实的财务数据!

  • 数据来源: 所有财务数据都是程序内部生成的模拟数据

  • 用途: 仅用于学习和演示MCP功能,不构成投资参考

  • 真实性: 股价、财务比率、公司信息等都是模拟值

  • 学习价值: 重点在于学习MCP工具的实现和使用方法

🔧 如果要接入真实API,需要修改的地方

1. 修改数据源配置

# 文件: src/mcp_server/tools/company_report_generator.py # 方法: _get_mock_financial_data() # 当前代码(模拟数据): def _get_mock_financial_data(self, symbol: str) -> Dict[str, Any]: # 返回模拟数据... # 修改为(真实API): def _get_real_financial_data(self, symbol: str) -> Dict[str, Any]: # 调用真实财务API # 例如: Alpha Vantage, Yahoo Finance, IEX Cloud等 api_key = "your_api_key" url = f"https://api.example.com/stock/{symbol}" # 发送HTTP请求获取真实数据...

2. 添加API配置

# 文件: config/financial_config.yaml # 添加真实API配置: api_providers: alpha_vantage: api_key: "your_alpha_vantage_key" base_url: "https://www.alphavantage.co/query" yahoo_finance: api_key: "your_yahoo_key" base_url: "https://query1.finance.yahoo.com"

3. 安装必要的依赖

# 添加到 requirements.txt requests>=2.25.0 yfinance>=0.1.70 alpha_vantage>=2.3.1

4. 处理API限制和错误

# 添加错误处理和重试机制 import time from requests.exceptions import RequestException def get_financial_data_with_retry(self, symbol: str, max_retries: int = 3): for attempt in range(max_retries): try: # 调用API response = requests.get(url, timeout=10) response.raise_for_status() return response.json() except RequestException as e: if attempt == max_retries - 1: raise e time.sleep(2 ** attempt) # 指数退避

MCP学习步骤

第一步:环境准备

  1. 安装Python 3.8+

  2. 安装MCP相关依赖

  3. 配置开发环境

  4. 安装Ollama(可选,用于AI功能)

第二步:理解MCP基础概念

  • MCP协议概述

  • 服务器-客户端架构

  • 工具(Tools)和资源(Resources)概念

  • 消息格式和通信协议

第三步:实现基础MCP服务器

  • 创建MCP服务器框架

  • 实现基本的工具注册

  • 处理客户端请求

第四步:开发财务数据工具

  • 实现数据获取工具

  • 实现数据处理工具

  • 实现报告生成工具

第五步:集成外部数据源

  • 连接财务API

  • 处理CSV/Excel文件

  • 数据库集成

第六步:高级功能实现

  • 智能报告生成

  • 数据可视化

  • 报告模板系统

  • AI模型集成

第七步:测试和优化

  • 单元测试

  • 集成测试

  • 性能优化

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 安装Ollama(可选,用于AI功能)

# 下载并安装Ollama # 访问 https://ollama.ai 下载安装包 # 安装deepseek-r1模型 ollama pull deepseek-r1:7b

3. 运行演示

纯MCP功能演示

# 运行纯MCP功能演示(包含交互式选择) python interactive_company_demo_real.py

AI+MCP集成演示

# 运行AI+MCP集成演示(需要Ollama服务运行) python ai_mcp_demo.py

4. 启动MCP服务器

# 启动纯MCP服务器 python -m src.mcp_server.server # 或者直接运行交互式演示,其中包含服务器启动选项

AI功能使用

前置条件

  1. 安装Ollama服务

  2. 下载deepseek-r1:7b模型:ollama pull deepseek-r1:7b

  3. 启动Ollama服务:ollama serve

使用AI功能

from mcp_server.tools.ai_enhanced_report_generator import AIEnhancedReportGenerator # 初始化AI工具(使用Ollama) ai_tool = AIEnhancedReportGenerator( ollama_url="http://localhost:11434", ollama_model="deepseek-r1:7b", use_ollama=True ) # 使用AI分析公司 result = await ai_tool.call_tool(CallToolRequest( method="tools/call", params={ "name": "ai_analyze_company", "arguments": { "symbol": "NVDA", "analysis_type": "comprehensive" } } ))

项目结构

financial-report/ ├── README.md # 项目说明 ├── requirements.txt # Python依赖 ├── interactive_company_demo_real.py # 纯MCP功能演示(交互式) ├── ai_mcp_demo.py # AI+MCP集成演示 ├── config/ # 配置文件 │ ├── mcp_config.json # MCP配置 │ ├── financial_config.yaml # 财务数据配置 │ └── ollama_config.yaml # Ollama配置 ├── src/ # 源代码 │ └── mcp_server/ # MCP服务器实现 │ ├── server.py # 主服务器 │ ├── tools/ # MCP工具 │ │ ├── company_report_generator.py # 公司财报生成工具 │ │ ├── financial_data.py # 财务数据工具 │ │ ├── report_generator.py # 报告生成工具 │ │ ├── ai_enhanced_report_generator.py # AI增强报告生成器 │ │ └── ollama_client.py # Ollama客户端 │ └── resources/ # MCP资源 │ └── financial_reports.py # 财务报告资源 ├── output/ # 输出目录 │ └── reports/ # 生成的报告 └── docs/ # 文档 └── README.md # 详细文档

关键学习点

  1. MCP协议理解: 学习MCP的请求-响应模式

  2. 工具开发: 实现自定义MCP工具

  3. 资源管理: 处理MCP资源

  4. 错误处理: 实现健壮的错误处理机制

  5. 性能优化: 优化MCP服务器性能

使用示例

纯MCP功能演示

  1. 运行 python interactive_company_demo_real.py

  2. 选择功能:1 (生成单个公司财报)

  3. 选择公司:输入公司代码(如 NVDA)或数字(如 1

  4. 选择报告类型:1(基础), 2(综合), 3(财务分析)

  5. 查看生成的报告

批量生成财报

  1. 选择功能:2 (批量生成多个公司财报)

  2. 输入公司代码:NVDA,AAPL,MSFT

  3. 选择报告类型

  4. 等待批量生成完成

AI+MCP集成演示

  1. 确保Ollama服务运行:ollama serve

  2. 运行 python ai_mcp_demo.py

  3. 查看AI功能演示:

    • AI公司分析

    • AI报告生成

    • AI投资建议

    • AI与MCP工具协作

支持的公司

代码

公司名称

行业

NVDA

NVIDIA Corporation

半导体

AAPL

Apple Inc.

消费电子

MSFT

Microsoft Corporation

软件

GOOGL

Alphabet Inc.

互联网服务

TSLA

Tesla Inc.

汽车

AMZN

Amazon.com Inc.

电子商务

META

Meta Platforms Inc.

社交媒体

NFLX

Netflix Inc.

流媒体

AMD

Advanced Micro Devices

半导体

INTC

Intel Corporation

半导体

报告内容详解

报告类型说明

1. basic - 基础财报

  • 基本信息(公司名称、股票代码、行业分类)

  • 财务数据摘要(股价、市值、收入、利润等)

  • 基本财务比率(资产负债率、利润率等)

2. comprehensive - 综合财报(推荐)

  • 完整财务数据

  • 详细财务比率分析

  • 业务分析(核心业务、增长驱动因素、竞争优势)

  • 风险因素分析

  • 投资建议

  • 技术分析(52周高低点、均线、RSI)

  • 市场表现(收益率数据)

3. financial_analysis - 财务分析报告

  • 深度财务分析

  • 行业对比

  • 趋势分析

  • 投资风险评估

报告内容示例

NVIDIA (NVDA) 综合财报示例

NVIDIA Corporation (NVDA) 财务报告 ============================================================ 基本信息: - 公司名称: NVIDIA Corporation - 股票代码: NVDA - 行业分类: Technology - Semiconductors - 报告类型: comprehensive - 报告期间: latest - 生成时间: 2025-08-08 08:23:11 财务数据摘要: - 当前股价: $450.25 - 市值: $1.1T - 营业收入: $60.9B - 净利润: $29.8B - 总资产: $106.1B - 总负债: $25.3B 财务比率分析: - 资产负债率: 24.00% - 净利润率: 49.00% - 资产收益率: 28.00% - 股本收益率: 89.00% - 市盈率: 15.10 - 市净率: 13.40 业务分析: NVIDIA是全球领先的图形处理器(GPU)和人工智能计算平台提供商。 核心业务: - GPU业务: 游戏、数据中心、专业可视化 - AI计算: 数据中心GPU、自动驾驶、机器人 - 软件平台: CUDA、AI框架、开发工具 增长驱动因素: - AI革命推动数据中心GPU需求激增 - 游戏市场持续增长 - 自动驾驶和机器人技术发展 - 云计算和边缘计算扩张 竞争优势: - 技术领先优势明显 - 强大的生态系统和开发者网络 - 专利组合和知识产权保护 - 与主要云服务提供商的深度合作 风险因素: 主要风险因素: 1. 宏观经济风险: 经济周期波动可能影响需求 2. 竞争风险: 行业竞争加剧可能影响市场份额 3. 技术风险: 技术变革可能影响产品竞争力 4. 监管风险: 政策变化可能影响业务运营 5. 供应链风险: 供应链中断可能影响生产和交付 6. 汇率风险: 汇率波动可能影响国际业务 7. 市场风险: 股票价格波动风险 投资建议: 投资建议: 买入 理由: 估值适中,财务状况稳定,具有投资价值 风险提示: - 本报告仅供参考,不构成投资建议 - 投资有风险,入市需谨慎 - 请根据自身情况做出投资决策 - 建议咨询专业投资顾问 技术分析: - 52周最高: $505.48 - 52周最低: $138.84 - 50日均线: $435.2 - 200日均线: $320.15 - 相对强弱指数(RSI): 65.80 市场表现: - 年初至今收益率: 85.00% - 过去一年收益率: 225.00% - 过去三年收益率: 450.00%

使用方法详解

方法一:自动演示版本

python interactive_company_demo.py
  • 自动演示所有功能

  • 无需用户输入

  • 适合快速了解功能

方法二:真正交互式版本

python interactive_company_demo_real.py
  • 需要用户实际输入

  • 支持单个和批量生成

  • 完整的交互体验

使用步骤详解

单个公司财报生成

  1. 启动程序

    python interactive_company_demo_real.py
  2. 选择功能

    📋 请选择功能: 1. 生成单个公司财报 2. 批量生成多个公司财报 3. 退出
  3. 查看公司列表

    📋 正在获取可用公司列表... NVDA: NVIDIA Corporation AAPL: Apple Inc. MSFT: Microsoft Corporation ...
  4. 选择公司

    • 输入公司代码:NVDA

    • 或输入数字:1 (选择NVIDIA)

  5. 选择报告类型

    1. basic - 基础财报 2. comprehensive - 综合财报 (推荐) 3. financial_analysis - 财务分析报告
  6. 生成报告

    🚀 正在生成 NVDA 的 comprehensive 财报... ✅ 财报生成成功!

批量公司财报生成

  1. 选择批量功能

    2. 批量生成多个公司财报
  2. 输入公司代码

    请输入要生成财报的公司代码,用逗号分隔 (如: NVDA,AAPL,MSFT): 公司代码: NVDA,AAPL,MSFT
  3. 选择报告类型

    1. basic - 基础财报 2. comprehensive - 综合财报 3. financial_analysis - 财务分析报告
  4. 批量生成

    🚀 开始批量生成 3 个公司的 comprehensive 财报... [1/3] 正在生成 NVDA 的财报... ✅ NVDA 财报生成成功! [2/3] 正在生成 AAPL 的财报... ✅ AAPL 财报生成成功! [3/3] 正在生成 MSFT 的财报... ✅ MSFT 财报生成成功!

输出文件

所有生成的报告都会自动保存到 output/ 目录:

output/ ├── company_report_NVDA_20250808_082311.txt ├── company_report_AAPL_20250808_082312.txt ├── company_report_MSFT_20250808_082313.txt └── ...

文件命名格式:company_report_{公司代码}_{时间戳}.txt

注意事项

  • 当前版本使用模拟数据,实际应用中可集成真实财务API

  • 报告中的投资建议仅供参考,不构成实际投资建议

  • 所有报告自动保存到 output/ 目录

  • interactive_company_demo_real.py 是已发布的公众号文章基础,请勿修改

  • AI功能需要本地Ollama服务支持,确保模型名称正确(deepseek-r1:7b)

故障排除

常见问题

  1. 导入错误

    ImportError: attempted relative import with no known parent package
    • 解决方案:确保在项目根目录运行脚本

  2. 公司代码错误

    ValueError: 不支持的公司代码: XXX
    • 解决方案:检查公司代码是否正确,参考支持的公司列表

  3. 文件保存失败

    PermissionError: [Errno 13] Permission denied
    • 解决方案:检查output目录权限,或手动创建output目录

  4. Ollama连接失败

    ConnectionError: Cannot connect to Ollama service
    • 解决方案:确保Ollama服务运行,检查端口11434是否开放

获取帮助

如果遇到问题,请:

  1. 检查错误信息

  2. 确认运行环境

  3. 查看日志文件

  4. 参考本文档

扩展功能

添加新公司

src/mcp_server/tools/company_report_generator.py 中的 companies 字典添加新公司:

self.companies = { "NEW": {"name": "New Company", "sector": "Technology", "industry": "Software"}, # ... 其他公司 }

自定义报告模板

修改 _create_company_report 方法来自定义报告格式和内容。

集成真实数据

替换 _get_mock_financial_data 方法,集成真实的财务数据API。

贡献指南

欢迎提交Issue和Pull Request来改进这个项目。

Demo文件说明

简化后的文件结构

项目已经简化为两个核心演示文件:

1. interactive_company_demo_real.py - 纯MCP功能演示

  • 功能: 展示纯MCP工具的核心能力

  • 特点:

    • 交互式用户输入

    • 支持单个和批量财报生成

    • 多种报告类型选择

    • 完整的MCP工具演示

  • 用途: 学习MCP基础概念和工具使用

  • 注意: 此文件是已发布公众号文章的基础,请勿修改

2. ai_mcp_demo.py - AI+MCP集成演示

  • 功能: 展示AI模型与MCP工具的完美结合

  • 特点:

    • 集成Ollama deepseek-r1:7b模型

    • AI驱动的财务分析

    • 智能报告生成

    • AI投资建议

    • AI与MCP工具协作演示

  • 用途: 学习AI模型与MCP工具的集成方法

  • 前置条件: 需要运行Ollama服务

使用建议

  1. 初学者: 先运行 interactive_company_demo_real.py 学习MCP基础

  2. 进阶用户: 运行 ai_mcp_demo.py 体验AI增强功能

  3. 开发学习: 查看 src/ 目录下的源代码实现

部署指南

Vercel 部署

项目概述

这是一个包含Python MCP服务器和Next.js Web界面的财务报告系统。

部署配置

1. 项目设置
  • Framework Preset: Next.js

  • Root Directory: ./web-interface

  • Build Command: npm run build

  • Output Directory: .next

  • Install Command: npm install

2. 环境变量配置

在Vercel项目设置中添加以下环境变量(如果需要):

# 数据库连接(如果有) DATABASE_URL=your_database_url # API密钥(如果需要) API_KEY=your_api_key # 其他配置 NODE_ENV=production
3. 部署步骤
步骤1: 连接GitHub仓库
  1. 在Vercel中点击"New Project"

  2. 选择GitHub仓库: KennanYang/financial-report

  3. 选择分支: master

步骤2: 配置项目
  • Project Name: financial-report (或您喜欢的名称)

  • Framework Preset: Next.js

  • Root Directory: ./web-interface

  • Build Command: npm run build (自动检测)

  • Output Directory: .next (自动检测)

步骤3: 环境变量

根据需要在"Environment Variables"部分添加配置

步骤4: 部署

点击"Deploy"按钮开始部署

4. 项目结构说明
financial-report/ ├── web-interface/ # Next.js前端应用(Vercel部署目标) │ ├── src/ │ │ ├── app/ # Next.js App Router │ │ ├── components/ # React组件 │ │ └── lib/ # 工具函数和常量 │ ├── package.json │ ├── next.config.ts │ └── vercel.json # Vercel配置文件(在web-interface目录中) ├── src/ # Python MCP服务器(不在Vercel部署) └── config/ # 配置文件
5. 注意事项
  1. Python后端: MCP服务器部分不会部署到Vercel,Vercel只部署Next.js前端

  2. API路由: Next.js API路由位于 web-interface/src/app/api/

  3. 静态资源: 公共文件位于 web-interface/public/

  4. 构建输出: 构建后的文件位于 web-interface/.next/

6. 自定义域名(可选)

部署成功后,您可以在Vercel项目设置中配置自定义域名。

7. 自动部署

每次推送到 master 分支时,Vercel会自动触发新的部署。

故障排除

常见问题
  1. 构建失败: 检查 npm run build 是否在本地成功

  2. 依赖问题: 确保 package.json 中的依赖版本兼容

  3. 环境变量: 检查必要的环境变量是否已配置

本地测试

在部署前,建议在本地测试:

cd web-interface npm install npm run build npm start

支持

如果遇到部署问题,请检查:

  1. Vercel部署日志

  2. 本地构建是否成功

  3. 环境变量配置

  4. 项目依赖版本兼容性

许可证

MIT License

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    Provides tools to get financial data (stock prices, company information) and generate financial visualizations through the Model Context Protocol.
    Last updated -
    10
    4
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    Enables AI assistants to access and analyze financial data including stock information, company fundamentals, and market insights through the Financial Modeling Prep API.
    Last updated -
    17
    59
    TypeScript
    Apache 2.0
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    Advanced server for simulating financial models and stochastic processes, offering tools for generating simulations, calculating financial metrics, and visualizing results with interactive components.
    Last updated -
  • -
    security
    F
    license
    -
    quality
    Enables deep analysis of SEC EDGAR filings through universal company search, document content extraction, and advanced filing search capabilities. Provides AI-ready access to business descriptions, risk factors, financial statements, and full-text search across any public company's SEC documents.
    Last updated -

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KennanYang/financial-report'

If you have feedback or need assistance with the MCP directory API, please join our Discord server