返回市场
中国股市MCP

中国股市MCP

作者:xinkuang5 星标更新:2025-10-20

项目介绍

china-stock-mcp

smithery badge 基于 akshare-one 的产品。构建的 MCP(模型上下文协议)服务器提供了访问中国股市数据的接口,提供了一系列工具来获取金融信息,包括历史股票数据、实时数据、新闻数据和财务报表。

🚀 核心功能

  • 双模式操作 支持标准 I/O 本地模式和 HTTP 网络模式
  • 广泛的金融数据 全面访问 A/B/H 股数据
  • 实时数据 支持实时股票价格、交易信息等
  • 财务报表 资产负债表、损益表、现金流量表等
  • 技术指标 自动计算并添加 30 多种技术指标
  • 新闻数据 股票相关新闻和公告信息
  • 易用性 易于与 AI 助手(如 Claude、Cursor 等)集成,配置简单
  • 数据缓存 内置内存和磁盘缓存机制,提高数据检索效率和响应速度
  • 容器化 支持 Docker 部署

🛠️ 架构概述

主要组件

  • server.py MCP 服务器核心,定义所有工具和数据接口
  • __main__.py 命令行入口,支持多种操作模式
  • FastMCP 框架:处理 MCP 协议通信
  • akshare-one 库:提供访问中国股市数据的基础能力
  • cache_utils.py 缓存工具,提供内存和磁盘缓存功能

支持的数据源

  • 数据源切换 内置 _fetch_data_with_fallback 机制支持根据优先级自动切换数据源。当首选数据源失败或返回空数据时,系统会自动尝试备份数据源,从而提高数据检索的稳定性和可靠性。

  • 东方财富 (eastmoney, eastmoney_direct)

  • 新浪财经

  • 雪球 (xueqiu)

📋 可用工具

1 获取股票的历史行情数据,支持多种数据源和技术指标 (get_hist_data)

获取历史股票市场数据。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • interval 时间周期:分钟、小时、天、周、月、年。默认:天
  • interval_multiplier (整数): 时间周期倍数
  • start_date (字符串): 开始日期,格式 YYYY-MM-DD
  • end_date (字符串): 结束日期,格式 YYYY-MM-DD
  • adjust 调整类型:无、前复权 (qfq)、后复权 (hfq)。默认:无
  • indicators_list (字符串 | 列表): 要添加的技术指标,可以是逗号分隔的字符串 (例如:'SMA,EMA') 或字符串列表 (例如:['SMA', 'EMA'])。支持的指标包括:SMA, EMA, RSI, MACD, BOLL, STOCH, ATR, CCI, ADX, WILLR, AD, ADOSC, OBV, MOM, SAR, TSF, APO, AROON, AROONOSC, BOP, CMO, DX, MFI, MINUS_DI, MINUS_DM, PLUS_DI, PLUS_DM, PPO, ROC, ROCP, ROCR, ROCR100, TRIX, ULTOSC。常用指标:SMA, EMA, RSI, MACD, BOLL, STOCH, OBV, MFI,建议不超过 10 个。
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

2 获取股票的实时行情数据,支持多种数据源 (get_realtime_data)

获取实时股票市场数据,支持的数据源包括:东方财富、雪球。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

3 获取股票相关的新闻数据 (get_news_data)

获取股票相关的新闻数据

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

4 获取公司的资产负债表数据 (get_balance_sheet)

获取公司的资产负债表数据

参数:

  • symbol (股票代码): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

5 获取指定股票代码的公司的利润表数据 (get_income_statement)

获取公司的利润表数据

参数:

  • symbol 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

6 获取指定股票代码的公司的现金流量表数据 (get_cash_flow)

获取公司的现金流量表数据

参数:

  • symbol (股票代码): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

7 获取股票的近 100 个交易日的资金流向数据 (get_fund_flow)

获取股票过去 100 个交易日的资金流向数据。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

8 获取公司的内部股东交易数据 (get_inner_trade_data)

获取公司内部股东交易数据

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

9 获取三大财务报表的关键财务指标 (get_financial_metrics)

获取三大财务报表的关键财务指标

参数:

  • symbol (股票代码): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

10 获取当前时间(ISO 格式、时间戳)和最近一个交易日 (get_time_info)

获取当前时间(ISO 格式、时间戳)和最近一个交易日

参数:

11 获取指定股票的基本概要信息 (get_stock_basic_info)

获取基本股票概要信息,支持 A 股和港股

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

12 获取单个宏观经济指标数据 (get_macro_data)

获取单个宏观经济指标数据

参数:

  • indicator 要获取的宏观经济指标。支持的指标包括:货币供应量 (money_supply),GDP,CPI,PMI,股票概况 (stock_summary)。默认:'gdp'
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

13 分析散户和机构投资者的投资情绪 (get_investor_sentiment)

分析散户和机构投资者的投资情绪

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

14 获取指定股票的股东情况 (get_shareholder_info)

获取股东信息

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

15 获取指定股票公司的主要产品或业务构成 (get_product_info)

获取产品信息

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

16 获取股票的业绩预测数据,包括预测年报净利润和每股收益 (get_profit_forecast)

获取股票的业绩预测数据。

参数:

  • symbol (股票代码): 股票代码 (例如:'600519')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

17 获取分红送股详情 (get_stock_fhps_detail)

获取指定股票的分红送股详情数据。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

18 获取筹码分布数据 (get_stock_cyq)

获取指定股票的筹码分布数据。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • date (字符串): 查询日期,格式 YYYY-MM-DD
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

19 获取股票研究报告 (get_stock_research_report)

获取指定股票的研究报告数据。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

20 获取流通股东数据 (get_stock_circulate_stock_holder)

获取指定股票的流通股东名单。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

21 获取高管变动数据 (get_stock_management_change)

获取指定股票的高管变动数据。

参数:

  • symbol (股票代码): 股票代码 (例如:'000001')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

22 获取限售解禁数据 (get_stock_restricted_release_queue)

获取指定股票的限售解禁数据。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

23 获取 A 股代码和名称 (get_stock_a_code_name)

获取所有 A 股股票的代码和名称。

参数:

  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

24 获取股票估值数据 (get_stock_value)

获取指定股票的估值数据。

参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

25 计算指定个股的波动率指标 (get_stock_volatility)

使用分钟级别历史市场数据计算指定股票的波动率指标。 参数:

  • symbol (字符串): 股票代码 (例如:'000001')
  • start_date 开始日期
  • end_date (字符串): 结束日期
  • period (整数): 时间周期,以分钟为单位 (例如:'1', '5', '15', '30', '60')
  • adjust (字符串): 调整类型:无、前复权 (qfq)、后复权 (hfq)。默认:无
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

26 获取所有指数的代码和基本信息 (get_all_cni_indices)

获取所有指数的代码和基本信息,移除实时波动数据,并支持缓存。

参数:

  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

27 获取指定指数的日频率历史行情数据 (get_cni_index_hist)

获取指定指数的日频率历史市场数据。

参数:

  • symbol (字符串): 指数代码 (例如:'399005')
  • start_date (字符串): 开始日期,格式 YYYYMMDD (例如:'20230114')
  • end_date (字符串): 结束日期,格式 YYYYMMDD (例如:'20240114')
  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

28 获取指定指数的成分股样本详情 (get_cni_index_detail)

获取指定指数的成分股样本详情。

参数:

  • symbol (字符串): 指数代码 (例如:'399001')
  • date (字符串): 日期,格式 YYYYMM (例如:'202404')
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

29 获取技术选股指标数据,包括创新高、创新低、连续上涨、连续下跌、持续放量、持续缩量、向上突破、向下突破、量价齐升、量价齐跌、险资举牌。(get_stock_technical_rank)

参数:

  • indicator_name (字符串): 要获取的技术指标名称 (例如:新高 - 新月度高点,新高 - 新半年高点,新高 - 新年度高点,新高 - 历史最高点,新低 - 新月度低点,新低 - 新半年低点,新低 - 新年度低点,新低 - 历史最低点,连续上涨,连续下跌,持续放量,持续缩量,向上突破 - 5 日均线,向上突破 - 10 日均线,向上突破 - 20 日均线,向上突破 - 30 日均线,向上突破 - 60 日均线,向上突破 - 90 日均线,向上突破 - 250 日均线,向上突破 - 500 日均线,向下突破 - 5 日均线,向下突破 - 10 日均线,向下突破 - 20 日均线,向下突破 - 30 日均线,向下突破 - 60 日均线,向下突破 - 90 日均线,向下突破 - 250 日均线,向下突破 - 500 日均线,量价齐升,量价齐跌,保险资金控股)
  • output_format (字面量): 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

30 获取所有行业板块实时行情数据 (get_stock_board_industry_summary)

参数:

  • output_format 输出数据格式:json, csv, xml, excel, markdown, html。默认:markdown

🚀 安装和操作

方法 1:使用 Smithery

通过 Smithery 自动安装到 Claude Desktop:

npx -y @smithery/cli install @xinkuang/china-stock-mcp

方法 2:使用 Docker

拉取镜像

docker pull ghcr.io/xinkuang/china-stock-mcp:latest

运行容器

docker run -p 8081:8081 ghcr.io/xinkuang/china-stock-mcp:latest

方法 3:本地源码安装

环境要求

  • Python 3.12+
  • Git
  • uv (推荐的 Python 包管理器)

克隆仓库

git clone https://github.com/xinkuang/china-stock-mcp
cd china-stock-mcp

安装依赖

# 推荐使用 uv 包管理器
uv sync

# 或者使用 pip
pip install -r requirements.txt

运行服务器

stdio 模式(默认,适用于本地 MCP 客户端):

uv run -m china_stock_mcp

HTTP 模式(用于远程访问):

uv run -m china_stock_mcp --streamable-http --host 0.0.0.0 --port 18081

服务器将在 http://localhost:8081/mcp 提供服务。

⚙️ MCP 配置示例

Claude Desktop 配置

编辑 claude_desktop_config.json

方法 1:本地源码

{
  "mcpServers": {
    "china-stock-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/china_stock_mcp",
        "run",
        "china-stock-mcp"
      ]
    }
  }
}

方法 2:通过 uvx

{
    "mcpServers": {
        "china-stock-mcp": {
            "command": "uvx",
            "args": [