金融分析服务器

一个定制的模型上下文协议(MCP)服务器,提供高级金融分析、股票监控和实时市场情报,适用于投资组合管理、市场摘要和股票警报等场景。

  • by osamadev
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 osamadev/financial_mcp_server

使用说明

金融MCP服务器

用于高级财务分析、股票监控和实时市场情报的自定义模型上下文协议(MCP)服务器。该服务器为投资组合管理、市场摘要、股票警报和上下文财务见解提供了一套工具和API端点,旨在与Claude Desktop和其他兼容MCP的客户无缝集成。


主要特点

  • 实时股价监控:跟踪和提醒用户定义的股票和阈值的价格变动。
  • 投资组合管理:添加、删除和查看持久投资组合中的跟踪股票。
  • 市场概述:检索实时全球市场数据,包括指数、最大赢家/输家和新闻头条。
  • 背景金融见解:分析用户查询,提取金融实体,获取和总结相关新闻,并生成可操作的提示。
  • 自动警报:接收有关价格阈值、交易机会和系统错误的电报通知。
  • 可定制配置:基于JSON的扇区和股票配置,用于灵活的警报。
  • 强大的日志记录和错误处理:详细的日志和错误消息,用于透明度和故障排除。

系统概述

核心端点和工具

  • 财务上下文(查询:str)
    • 从用户查询中提取股票代码和关键字,获取并总结相关新闻,并返回结构化上下文和提示以供下游分析。
  • market_summary()
    • 返回全球市场的实时摘要,包括指数、热门股和新闻头条。
  • get_portfolio()
    • 检索用户投资组合中跟踪的股票的当前列表。
  • add_stock(股票代码:str) / remove_stock(股票代码:str)
    • 在投资组合中添加或删除股票,缓存无效和验证。
  • 投资组合警报(random_string:str)
    • 返回投资组合或特定股票(如果提供)的所有触发警报。
  • check_stock_alerts(股票代码:str) / single_stock_alert(股票代码:str)
    • 返回特定股票的警报,并提供详细的错误处理。

自动警报

  • 电报集成:将格式化的警报和摘要发送到配置的Telegram聊天。
  • 交易机会:检测并通知可操作的交易信号。

上下文总结

  • 新闻摘要生成器:使用本地LLM(Ollama/Mistral)生成详细的、带有情感标签的财经新闻文章摘要。
  • 快速构建器:构建一个具有市场意识的提示,供下游LLM或助手使用。

文件结构

config/
  alerts_config.json         # Main alert configuration (sector/ticker/thresholds)
  tech_alerts_config.json    # Tech sector-specific alerts
services/
  alerts.py                  # Core alert logic
  tech_alerts.py             # Tech sector alert logic
  telegram_alerts.py         # Telegram integration
  market_summary.py          # Market data and news
  summarizer.py              # News summarization (LLM)
  fetcher.py                 # Web data fetching
  context_builder.py         # Prompt/context construction
  intent_parser.py           # Financial entity extraction
  portfolio.py               # Portfolio management
server.py                    # MCP server entry point and API definitions
requirements.txt             # Python dependencies

配置和定制

警报配置(config/alerts_config.json)

  • 按部门组织股票,并可定制价格上限/下限和描述。
  • 示例结构:
{
  "Tech Giants": {
    "AAPL": {"above": 200, "below": 180, "description": "Apple Inc."}
  },
  "Financial": {
    "JPM": {"above": 160, "below": 140, "description": "JPMorgan Chase"}
  }
}

环境变量

将这些设置为 .env 文件或系统环境:

TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
SERPAPI_API_KEY=your_serpapi_key

从Claude Desktop安装和运行

先决条件

  • Python 3.7+
  • 克劳德桌面 (或任何兼容MCP的客户端)
  • 电报机器人凭据(用于提醒)
  • 互联网连接(用于市场/新闻数据)

分步指南

  1. 克隆存储库

    git clone <this-repo-url>
    cd Finance_MCP_Server
    
  2. 创建和激活虚拟环境

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 再进行

    pip install -r requirements.txt
    
  4. 配置环境变量

    • 创建一个 .env 使用API密钥和令牌在项目根目录中创建文件:
      TELEGRAM_BOT_TOKEN=your_bot_token
      TELEGRAM_CHAT_ID=your_chat_id
      SERPAPI_API_KEY=your_serpapi_key
      
  5. 编辑警报配置

    • 修改 config/alerts_config.json 和 config/tech_alerts_config.json 设定你的股票、行业和门槛。
  6. 使用CLI安装MCP服务器

    • 使用MCP CLI为Claude Desktop安装和注册服务器:
      mcp install server.py --name "Financial MCP Server"
      
    • 这将把服务器注册为自定义MCP工具,使其可被Claude Desktop和其他MCP客户端发现。
  7. 通过MCP CLI运行MCP服务器

    • 使用MCP CLI启动服务器:
      mcp run server.py
      
    • 服务器将启动并通过stdio监听MCP请求。
  8. 从克劳德桌面连接

    • 在Claude Desktop中,添加一个新的自定义MCP服务器连接。
    • 将可执行文件/命令设置为 mcp run server.py (或从MCP CLI列表中选择已注册的“金融MCP服务器”)。
    • Claude Desktop将使用MCP协议与服务器通信,启用所有描述的工具和端点。

示例:Claude桌面MCP服务器配置

安装并注册金融MCP服务器后,您可以将其添加到Claude Desktop配置中。这是一个样品 claude_desktop_config.json 代码片段:

{
  "mcpServers": {
    "Financial-MCP-Server": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "server.py"
      ],
      "env": {
        "SERPAPI_API_KEY": "",
        "TELEGRAM_BOT_TOKEN": "",
        "TELEGRAM_USER_ID": "",
        "OPENAI_API_KEY": "",
        "ALPHA_VANTAGE_API_KEY": ""
      }
    }
  }
}
  • 更新 env 部分,根据需要使用实际的API密钥和令牌。
  • 此配置可确保Claude Desktop能够使用正确的环境和命令行参数启动您的金融MCP服务器并与之通信。

在Claude Desktop中使用您的工具

安装并连接自定义金融MCP服务器后,所有可用工具将自动出现在Claude Desktop的工具菜单中。您可以单独启用或禁用每个工具,从而可以直接从Claude界面轻松访问财务背景分析、市场摘要、投资组合管理和股票警报等功能。

下面是一个屏幕截图,显示了如何在Claude Desktop中列出和切换MCP服务器中的工具:

  • 每个工具(例如。, financial_context, market_summary, add_stock等等)可以根据需要启用或禁用。
  • 这种无缝集成允许您在Claude Desktop中使用自然语言和基于工具的工作流与您的财务分析服务器进行交互。

使用示例

  • 获取市场摘要:使用 market_summary 获取实时指数、动态和新闻的工具。
  • 管理投资组合:使用 add_stock, remove_stock,以及 get_portfolio 更新和查看您跟踪的股票。
  • 接收警报:配置阈值并接收价格变动和交易机会的电报通知。
  • 上下文分析:使用 financial_context 分析查询,提取股票行情,并获取摘要新闻和市场提示。

故障排除和日志

  • 所有日志都将写入 financial_mcp.log 在项目根中。
  • 对于调试,请检查日志文件,并确保您的环境变量和配置文件正确。
  • 如果您遇到Telegram或新闻获取问题,请验证您的API密钥和互联网连接。