使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的股票数据服务器,利用 Yahoo Finance (YFinance) API 提供股票市场的实时和历史数据。它允许支持 MCP 协议的 LLM 客户端(如 Claude Desktop)通过标准化的方式访问股票信息,进行金融分析和投资决策。

主要功能点

  • 实时股票价格查询: 获取指定股票代码的最新价格。
  • 历史数据下载: 以 CSV 格式下载股票的历史价格数据,支持自定义时间周期。
  • 股票对比: 比较两支股票的价格,辅助进行相对表现分析。
  • 投资组合管理:
    • 添加自选股: 将股票代码添加到个人自选列表。
    • 移除自选股: 从自选列表移除股票。
    • 查看自选股列表: 获取当前自选股的代码列表。
    • 获取自选股价格: 批量获取自选股的最新价格。
    • 准实时自选股价格: 获取缓存的准实时自选股价格,访问速度更快。

安装步骤

  1. 安装 uv 包管理器: 按照仓库 README.md 提供的命令安装 'uv' 包管理器。
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 创建项目目录并初始化:
    mkdir mcp-yfinance-server
    cd mcp-yfinance-server
    uv init
  3. 创建并激活虚拟环境:
    uv venv
    source .venv/bin/activate  # Linux/macOS
    .venv\Scripts\activate  # Windows
  4. 安装依赖:
    uv add "mcp[cli]" yfinance
  5. 复制服务器代码: 将仓库中的 'stock_price_server.py' 文件复制到当前项目目录 'mcp-yfinance-server' 下。
    # 假设 stock_price_server.py 在上级目录
    cp ../stock_price_server.py .

服务器配置

要将此 MCP 服务器连接到 MCP 客户端(例如 Claude Desktop),您需要配置 MCP 客户端的服务器列表。以下是 'mcpServers' 配置项的 JSON 示例,您需要将其添加到 MCP 客户端的配置文件中。

{
  "mcpServers": {
    "yfinance-stock-server": {
      "command": "/ABSOLUTE/PATH/TO/uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/YOUR/mcp-yfinance-server",
        "run",
        "stock_price_server.py"
      ]
    }
  }
}

配置参数说明:

  • '"yfinance-stock-server"': 服务器名称,您可以自定义,用于在 MCP 客户端中标识该服务器。
  • '"command"': 'uv' 包管理器的绝对路径。请替换为您的 'uv' 可执行文件的实际路径。您可以使用 'which uv' (Linux/macOS) 或 'Get-Command uv' (PowerShell) 查找。
  • '"args"': 启动服务器的参数列表。
    • '"--directory"': 指定项目目录的绝对路径,请替换为您的 'mcp-yfinance-server' 目录的实际路径。
    • '"run"': 'uv run' 命令用于运行 Python 脚本。
    • '"stock_price_server.py"': 服务器脚本文件名。

请务必将 '/ABSOLUTE/PATH/TO/uv' 和 '/ABSOLUTE/PATH/TO/YOUR/mcp-yfinance-server' 替换为您的实际路径。

基本使用方法

  1. 启动 MCP 服务器: 在 'mcp-yfinance-server' 目录下,运行以下命令启动服务器。
    uv run stock_price_server.py
  2. 配置 MCP 客户端: 将上述服务器配置 JSON 添加到您的 MCP 客户端配置文件中,并确保路径配置正确。
  3. 在 MCP 客户端中使用: 在支持 MCP 协议的客户端(如 Claude Desktop)中,您可以使用自然语言指令调用服务器提供的工具。例如:
    • 询问 “特斯拉和苹果的股票价格哪个更高?” 客户端将调用 'compare_stocks' 工具。
    • 询问 “我想查看特斯拉过去一个月的历史股价数据。” 客户端将调用 'get_stock_history' 工具。
    • 询问 “将苹果、特斯拉和腾讯加入我的自选股。” 客户端将调用 'add_to_watchlist' 工具。

请参考仓库 README.md 和工具列表,了解更多使用方法和示例。

信息

分类

商业系统