项目简介

本项目是一个基于 Model Context Protocol (MCP) 标准构建的应用后端,专注于提供中国 A 股市场相关的金融数据查询和分析能力。它通过 MCP 标准接口向支持该协议的 LLM 客户端(如 VS Code 插件、CherryStudio 等)暴露一系列工具,使得 LLM 能够获取最新的股票信息、历史数据、财务指标、宏观经济数据等,从而增强 LLM 在金融领域的知识和分析能力。

主要功能点

  • 股票基础信息: 查询股票代码对应的公司名称、行业分类、上市日期等。
  • 历史行情数据: 获取股票在指定日期范围内、指定频率(日、周、月、分钟线)的开盘价、最高价、最低价、收盘价、成交量等数据,支持前复权、后复权、不复权。
  • 财务报表数据: 查询公司指定年份、季度的盈利能力、运营能力、成长能力、偿债能力(资产负债表)、现金流量表以及杜邦分析等详细财务指标。
  • 市场概览: 获取指定日期的所有股票列表及交易状态、查询指定日期范围内的交易日历。
  • 指数成分股: 查询沪深 300、上证 50、中证 500 等重要指数在指定日期的成分股列表。
  • 宏观经济数据: 查询存贷款基准利率、存款准备金率、货币供应量(M0, M1, M2)、SHIBOR 等宏观数据。
  • 数据分析报告: 提供基于上述数据的客观分析报告,整合多方面信息,辅助LLM理解股票状况。

安装步骤

本项目使用 Python 3.10+ 和 'uv' 包管理器。

  1. 克隆仓库:
    git clone https://github.com/24mlight/a_share_mcp_is_just_I_need.git
    cd a_share_mcp_is_just_I_need
  2. 安装 'uv': 如果你还没有安装 'uv' 包管理器,请根据其官方文档安装。通常可以通过 pipx 安装:
    pipx install uv
  3. 创建并激活虚拟环境: 在项目根目录下执行:
    uv venv
    # Windows
    .venv\Scripts\activate
    # macOS/Linux
    # source .venv/bin/activate
  4. 安装项目依赖: 在激活的虚拟环境中执行:
    uv sync

服务器配置

该 MCP 服务器是为 MCP 客户端(如支持 MCP 的 IDE 插件、桌面应用等)设计的。你需要在你的 MCP 客户端中配置如何启动这个服务器。核心是告诉客户端执行一个命令来启动 'mcp_server.py' 脚本。

大多数 MCP 客户端都需要配置以下信息:

  • 服务器名称 (Server Name): 给你的服务器起一个名字,例如 'a-share-mcp'。
  • 命令 (Command): 启动服务器的可执行文件。推荐使用 'uv'。在这里填写 'uv' 或 'uv.exe' 的完整路径(如果 'uv' 不在系统 PATH 中)。
  • 参数 (Args): 传递给命令的参数列表。对于本项目,参数需要指导 'uv' 在正确的项目目录下运行 'mcp_server.py' 脚本。
    • 第一个参数:'--directory' (告诉 'uv' 指定工作目录)
    • 第二个参数:你的项目根目录的绝对路径。请务必替换为你的实际路径,例如 'C:\Users\YourName\Projects\a_share_mcp' 或 '/home/youruser/projects/a_share_mcp'。
    • 第三个参数:'run' (告诉 'uv' 运行一个命令)
    • 第四个参数:'python' (告诉 'uv' 运行 Python 解释器)
    • 第五个参数:'mcp_server.py' (要执行的服务器脚本文件)
    • 注意:在 Windows 路径中,如果客户端要求,可能需要将路径中的反斜杠 '' 双写为 '\'。
  • 传输协议 (Transport): 选择 'stdio'(标准输入/输出),这是本项目 'mcp_server.py' 中配置的协议。
  • 工作目录 (WorkingDirectory): 虽然 '--directory' 参数已经指定,但某些客户端可能需要单独配置工作目录。如果遇到 'ModuleNotFoundError',可以尝试将此项设置为你的项目根目录的绝对路径。

配置完成后,你的 MCP 客户端应该能够检测到并启动这个 A 股数据服务器,并使其提供的工具对 LLM 可用。

基本使用方法

在已配置并成功启动此 MCP 服务器的 MCP 客户端中,你可以通过与 LLM 进行自然语言对话来利用这些工具。LLM 在需要相关数据时,会识别你的意图,并调用对应的工具获取信息。

例如,你可以问:

  • "查询一下贵州茅台(sh.600519)最近一年的日 K 线数据。"
  • "帮我看看宁德时代(sz.300750)2023年第三季度的盈利情况。"
  • "获取一下最新的沪深300指数成分股列表。"
  • "存款准备金率最近有什么变动吗?"
  • "给我一个海螺水泥(sh.600585)的基本面分析报告。"

LLM 会根据你的问题自动调用相应的工具,并将获取到的数据(通常以 Markdown 表格形式返回)用于回答你的问题。

信息

分类

数据库与文件