Token导航 LogoToken导航TokenDH.com
finance gpt logo
AI代理stdio官方级别未说明来源级核验

finance gpt

MCP Server

一个AI驱动的金融研究助手,结合模型上下文协议(MCP)和多提供商LLM支持,通过RESTful API查询金融数据、分析公司并获取实时市场洞察。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
金融数据多模型支持PythonClaudeAPI集成Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

rajatKotian

提供方

rajatKotian

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv

详细介绍

FinanceGPT v2.0(金融大语言模型2.0版)

一个结合了模型上下文协议(MCP)和多供应商大型语言模型(LLM)支持的、由人工智能驱动的金融研究助手。通过RESTful API查询金融数据、分析公司并获取实时市场洞察。

建筑

FastAPI REST API
      ↓
 MCP Client Layer (LangChain-based)
      ├─ LLM Router (Gemini/Claude/OpenAI)
      └─ MCP Connector
            ↓
      MCP Server (stdio)
            ↓
    Financial Tools
    ├─ Yahoo Finance (yfinance)
    ├─ Web Scraper (BeautifulSoup4)
    └─ Internet Search (DuckDuckGo/SerpAPI)
      ↓
   MongoDB (sessions + chat history)

特点/特性

  • 支持多供应商大型语言模型(LLM)在Google Gemini、Anthropic Claude和OpenAI之间切换
  • MCP驱动的工具通过标准化的模型上下文协议获取财务数据
  • 会话管理与MongoDB存储进行持久对话
  • 实时数据实时财务报表、公司简介及市场新闻
  • 清洁架构模块化设计,关注点分离

项目结构

personal_mcp_project/
├── src/
│   ├── main.py                    # FastAPI application entry point
│   ├── api/                       # API layer
│   │   ├── models.py              # Pydantic request/response models
│   │   ├── dependencies.py        # Agent management & DI
│   │   ├── tasks.py               # Background tasks
│   │   └── routes/                # API endpoints
│   │       ├── chat.py            # Chat endpoint
│   │       ├── session.py         # Session management
│   │       └── system.py          # System info & health
│   ├── mcp_client/                # MCP client layer
│   │   ├── llm_factory.py         # LLM provider factory
│   │   ├── mcp_connector.py       # MCP server connector
│   │   └── agent.py               # Unified AI agent
│   ├── mcp_server/                # MCP server
│   │   └── server.py              # Financial tools server
│   ├── core/                      # Shared business logic
│   │   ├── tools/                 # Financial data tools
│   │   │   ├── yahoo_finance.py
│   │   │   ├── web_scraper.py
│   │   │   └── internet_search.py
│   │   └── config/                # Configuration
│   │       ├── constants.py
│   │       └── prompts.py
│   └── database/                  # MongoDB layer
│       ├── connection.py          # Database connection
│       └── repositories.py        # Data repositories
├── requirements.txt               # Python dependencies
├── start_api_server.sh           # API server startup script
└── start_mcp_server.sh           # MCP server startup script

先决条件

  • Python 3.13及以上版本
  • MongoDB 4.0+(用于会话存储)
  • API密钥:

- 根据您的指示,以下是原文内容的翻译:“Google Gemini API密钥(必需)” - Anthropic Claude API密钥(可选) - OpenAI API密钥(可选) - SerpAPI密钥(可选,用于Google搜索)

安装

1. 克隆并设置环境

# Install uv (fast Python package installer)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies using uv
uv pip install -r requirements.txt

2. 配置环境变量

创建一个 .env 项目根目录下的文件:

# Required
GOOGLE_API_KEY=your_gemini_api_key_here

# Optional LLM Providers
ANTHROPIC_API_KEY=your_claude_api_key_here
OPENAI_API_KEY=your_openai_api_key_here

# Optional Search
SERPAPI_KEY=your_serpapi_key_here

# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB_NAME=financegpt

# Server Configuration
PORT=8081

3. 启动MongoDB

# macOS (Homebrew)
brew services start mongodb-community

# Linux (systemd)
sudo systemctl start mongod

# Docker
docker run -d -p 27017:27017 --name mongodb mongo:latest

4. 启动应用程序

选项A:使用启动脚本

# Make scripts executable
chmod +x start_api_server.sh start_mcp_server.sh

# Start API server
./start_api_server.sh

# MCP server starts automatically when API server receives requests

选项B:手动启动

# Start API server
PORT=8081 PYTHONPATH=. .venv/bin/python3 src/main.py

# MCP server starts automatically when API server receives requests

API 将位于 http://localhost:8081

API 使用

健康检查

curl http://localhost:8081/health

创建聊天会话

curl -X POST http://localhost:8081/session/create \
  -H "Content-Type: application/json" \
  -d '{"provider": "gemini"}'

发送聊天消息

curl -X POST http://localhost:8081/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "What is Apple'\''s current stock price?",
    "provider": "gemini"
  }'

与不同供应商聊天

# Using Claude
curl -X POST http://localhost:8081/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Analyze Tesla'\''s financials",
    "provider": "claude"
  }'

# Using OpenAI
curl -X POST http://localhost:8081/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Compare Microsoft and Google",
    "provider": "openai"
  }'

继续会话

curl -X POST http://localhost:8081/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "What about their debt ratios?",
    "session_id": "your-session-id-here",
    "provider": "gemini"
  }'

获取系统信息

curl http://localhost:8081/system/info

可用工具

MCP服务器提供了以下金融工具:

  1. 获取股票价格 - 获取当前股票价格和基本信息
  2. 获取损益表 - 获取公司损益表
  3. 获取资产负债表 - 获取资产负债表数据
  4. 获取现金流 - 获取现金流量表
  5. 获取公司信息 - 获取详细的公司简介
  6. 搜索网络 - 在网上搜索财经新闻和信息
  7. 抓取网址 - 从特定URL中提取内容

大型语言模型(LLM)提供商

Google Gemini(默认)

  • 模型: gemini-2.0-flash-exp
  • 最适合:快速响应,逻辑清晰
  • 温度:0.2

Anthropic Claude(注:此处“Anthropic”通常指的是一个专注于人工智能研究的公司名,而“Claude”可能是该公司的某个具体模型或项目的名称,但直接翻译时,我们保持原样以体现其专有性)

  • 模型: claude-3-5-sonnet-20241022
  • 最适合用于:复分析,详细解释
  • 温度:0.2

OpenAI(开放人工智能研究所)

  • 型号: gpt-4o-mini
  • 最适合:性能与成本均衡
  • 温度:0.2

发展

使用Insomnia进行测试

该项目包含一个即开即用的Insomnia集合,用于API测试:

  1. 进口系列/进口收藏品

- 打开Insomnia(注:Insomnia通常指一款API测试工具,此处“打开”根据上下文可能意为启动或访问该工具) - 首选 进口/出口导入数据来自文件 - 选择 insomnia_collection.json

  1. 收藏内容包括

- 18+ 个预设请求 - 所有3家大型语言模型(LLM)提供商(Gemini、Claude、OpenAI) - 会话管理端点 - 示例财务查询 - 环境配置

  1. 快速入门:
   # Start MongoDB
   brew services start mongodb-community

   # Start API server
   PORT=8081 PYTHONPATH=. .venv/bin/python3 src/main.py

然后使用Insomnia来测试端点!

《失眠指南》.md 以获取详细说明。

运行测试

# Install test dependencies
uv pip install pytest pytest-asyncio httpx

# Run tests
pytest tests/

代码结构

  • src/main.py 翻译为中文是:“源代码/主文件.py” 或者更简洁地 “主程序文件.py”(根据上下文,“src”通常表示“source code”的缩写,即“源代码”)最小化的FastAPI应用设置(62行代码)
  • src/api/ 翻译为中文是:“源代码/接口(目录)/”。不过,这里的“src”通常代表“source code”(源代码)的缩写,而“api”代表“application programming interface”(应用程序编程接口),所以更自然的翻译可能是“源代码/接口(文件夹)/”或者根据上下文简化为“源码/接口/”。但直接翻译“src/api/”保持原样结构的话,就是“源代码/接口(目录)/”路由、模型和依赖项的清晰分离
  • src/mcp_client/ 翻译为中文是:源代码目录/mcp客户端/基于LangChain的MCP集成
  • src/mcp_server/ 翻译为中文是:“源代码/mcp服务器/” 或者根据具体上下文,也可以翻译为“源代码目录下的mcp服务器部分/”。不过,通常在技术文档或文件结构描述中,我们可能会直接保留“src/mcp_server/”这样的路径表示,因为它已经是一种通用的、被广泛理解的文件路径表述方式。但如果需要将其含义解释得更明确一些,上述翻译是一个不错的选择独立MCP服务器,配备金融工具
  • src/database/ 翻译为中文是:源代码/数据库/用于会话和消息的MongoDB存储库

添加新工具

  1. 在(某处/某系统中)创建工具函数 src/core/tools/
  2. 添加工具定义到 src/mcp_server/server.py
  3. MCP客户端自动发现并使用新工具

添加新的大型语言模型(LLM)提供商

  1. 添加提供商到 LLMProvider \enum in\ 翻译为中文是:“枚举在(或:在枚举中)”。不过,这个翻译可能需要根据具体的上下文来调整,因为“enum in”本身可能是一个编程或技术语境下的短语,具体含义可能因上下文而异。如果“enum in”是一个特定的编程语言结构或命令的一部分,那么翻译时可能需要考虑其在该语言或上下文中的特定含义。但基于一般的理解,“enum in”可以翻译为“枚举在(或:在枚举中)” llm_factory.py
  2. 在(系统/应用中)实现提供者案例 LLMFactory.create()
  3. 安装所需的LangChain集成包

故障排除

MongoDB 连接被拒绝

# Check if MongoDB is running
ps aux | grep mongod

# Start MongoDB
brew services start mongodb-community  # macOS
sudo systemctl start mongod            # Linux

导入错误

# Ensure PYTHONPATH is set
export PYTHONPATH=.

# Or use the startup scripts which set it automatically
./start_api_server.sh

未找到MCP服务器

MCP服务器路径已自动检测。如果您移动了文件:

# Update path in src/mcp_client/mcp_connector.py
server_script_path = os.path.join(project_root, "src", "mcp_server", "server.py")

API密钥错误

确保 .env 文件位于项目根目录,且包含正确的API密钥:

# Verify .env file
cat .env | grep API_KEY

部署

生产环境的环境变量

# Set secure MongoDB URI
MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/

# Use production API keys
GOOGLE_API_KEY=prod_key_here

# Adjust server settings
PORT=8080
WORKERS=4

Docker 部署(即将推出)

# Dockerfile example
FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY src/ ./src/
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8080"]

示例查询

尝试以下示例查询来测试系统:

  • “苹果目前的负债权益比是多少?”
  • “比较特斯拉和里维安的现金流”
  • “关于英伟达的最新消息”
  • “分析微软的收入趋势”
  • “顶级的人工智能芯片公司有哪些?”

架构优势

  1. 模块化每个组件(API、MCP客户端、MCP服务器、工具)都是独立的
  2. 可扩展性易于添加新的大型语言模型(LLM)提供商或金融工具
  3. 可维护性代码结构清晰,职责单一
  4. 可扩展性无状态API设计,使用外部会话存储
  5. 可测试性松耦合实现全面测试

做出贡献

这是一个个人作品集项目,但欢迎提出建议!

许可证

MIT 许可证 - 欢迎将此项目作为您自己工作的参考。

联系

对于此项目的疑问或反馈,请在GitHub上提交一个问题。

______________________________________________________________________

使用(某材料/技术等)建造FastAPI、LangChain、MCP、MongoDB、yfinance、BeautifulSoup4,以及☕(一杯咖啡)

目录标签

目录标签

金融数据多模型支持PythonClaudeAPI集成金融分析本地部署AI助手实时数据RESTfulAPI

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP