Skip to main content
Glama
nomi982

Stock-MCP

by nomi982

Stock-MCP

一个基于 MCP (Model Context Protocol) 的 A 股数据服务器,提供实时股票行情、个股信息、历史数据等功能。

项目简介

Stock-MCP 是一个 MCP 服务器实现,集成了 AKShare 数据源,为 Claude 等 AI 助手提供 A 股市场数据接口。通过该服务器,可以轻松获取:

  • A 股市场总览数据(上交所和深交所)

  • 个股公司概况信息

  • 实时行情数据

  • 个股实时价格

  • 个股 80 天历史行情数据

系统要求

  • Python >= 3.10

  • pip 或 uv 包管理器

安装指南

方式一:使用 uv(推荐)

uv 是一个快速的 Python 包管理器,安装和依赖解析速度更快。

  1. 安装 uv(如果未安装)

    pip install uv --upgrade

    或使用腾讯源加速:

    pip install uv --upgrade -i https://mirrors.cloud.tencent.com/pypi/simple
  2. 同步项目依赖

    uv sync

方式二:使用 pip

pip install -r requirements.txt

或使用腾讯源加速:

pip install -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple

依赖说明

  • akshare (>=1.18.8):A 股数据获取库,提供实时行情、历史数据等

  • mcp (>=1.25.0):Model Context Protocol 框架,用于构建 MCP 服务器

快速开始

启动服务器

python main.py

服务器将通过 SSE (Server-Sent Events) 传输启动,默认监听本地连接。

可用工具

1. get_sse_summary()

获取 A 股市场总览数据(上交所和深交所)

参数:

返回: JSON 格式的市场总览数据,包含涨跌家数、成交量等信息

示例:

result = get_sse_summary()

2. get_stock_info(symbol)

获取个股公司概况信息

参数:

  • symbol (str):股票代码,6 位数字,如 600519(默认值)

返回: JSON 格式的公司信息,包含公司名称、行业、主营业务等

示例:

result = get_stock_info("600519")  # 贵州茅台
result = get_stock_info("000858")  # 五粮液

3. get_stock_realtime()

获取 A 股全部实时行情数据

参数:

返回: JSON 格式的全市场实时行情数据

示例:

result = get_stock_realtime()

4. get_stock_price(symbol)

获取个股实时价格

参数:

  • symbol (str):股票代码,6 位数字或带交易所前缀,如 600519SH600519(默认值)

返回: JSON 格式的实时价格数据,包含当前价、涨跌幅、成交量等

示例:

result = get_stock_price("600519")      # 上交所股票
result = get_stock_price("SH600519")    # 带前缀
result = get_stock_price("000858")      # 深交所股票

5. get_stock_history(symbol)

获取个股 80 天历史行情数据

参数:

  • symbol (str):股票代码,6 位数字,如 600519(默认值)

返回: JSON 格式的历史行情数据,包含日期、开盘价、收盘价、最高价、最低价、成交量等

示例:

result = get_stock_history("600519")  # 获取贵州茅台 80 天历史数据

股票代码说明

交易所前缀

  • SH:上海交易所(Shanghai)

  • SZ:深圳交易所(Shenzhen)

常见股票代码示例

股票名称

代码

完整代码

贵州茅台

600519

SH600519

五粮液

000858

SZ000858

中国平安

601318

SH601318

招商银行

600036

SH600036

腾讯控股

00700

HK00700

项目结构

stock-mcp/
├── main.py              # MCP 服务器主文件,定义所有工具
├── util.py              # 工具函数实现,调用 AKShare API
├── pyproject.toml       # 项目配置和依赖声明
├── uv.lock              # uv 依赖锁定文件
├── README.md            # 项目文档
├── LICENSE              # 许可证
└── .gitignore           # Git 忽略文件

使用示例

在 Claude 中使用

  1. 在 Claude 的 MCP 配置中添加此服务器

  2. 配置 SSE 传输方式

  3. 在对话中使用相关工具获取股票数据

直接调用

from main import mcp

# 获取市场总览
summary = get_sse_summary()
print(summary)

# 获取个股信息
info = get_stock_info("600519")
print(info)

# 获取实时价格
price = get_stock_price("600519")
print(price)

# 获取历史数据
history = get_stock_history("600519")
print(history)

常见问题

Q: 如何加速包安装?

A: 使用腾讯源或其他国内镜像源:

pip install -i https://mirrors.cloud.tencent.com/pypi/simple package_name

或配置 pip 配置文件 ~/.pip/pip.conf

[global]
index-url = https://mirrors.cloud.tencent.com/pypi/simple

Q: 数据来源是什么?

A: 所有数据来自 AKShare 库,该库聚合了多个数据源,提供免费的 A 股数据。

Q: 如何处理网络错误?

A: 确保网络连接正常,AKShare 依赖网络获取实时数据。如果频繁出现错误,可能是数据源暂时不可用。

Q: 支持哪些股票代码格式?

A: 支持 6 位数字代码(如 600519)和带交易所前缀的代码(如 SH600519SZ000858)。

许可证

详见 LICENSE 文件

贡献

欢迎提交 Issue 和 Pull Request!

相关资源

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nomi982/stock-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server