ahshare-mcp
AHShare MCP Server
纯 TypeScript 实现的中国 A 股市场数据 MCP 服务器
概述
ahshare-mcp 是一个基于 Model Context Protocol (MCP) 的服务器,为 AI 助手(如 Claude Desktop、VS Code Copilot)提供中国 A 股市场金融数据访问能力。
核心特点:与 Python 版 akshare-one-mcp 功能兼容,但使用 纯 TypeScript 实现,零 Python 依赖。
与 Python 版的区别
维度 | Python 版 | TypeScript 版 |
语言 | Python 3.12+ | TypeScript 5.x |
运行时 | CPython | Node.js 22+ |
数据源 | 通过 | 直接调用 HTTP API |
Python 依赖 | ❌ 必需 | ✅ 零依赖 |
技术指标 | pandas 计算 | 纯 TS 数学实现 |
部署 | Python + pip/uv | 单 Node.js 进程 |
镜像大小 | ~500MB | ~150MB |
MCP 工具数 | 9 | 12(含股东/基金持股) |
Related MCP server: A-Share MCP Server
功能特性
📊 市场数据(3 个工具)
历史 K 线 — 日/周/月/分钟级,支持前/后复权,多数据源
实时行情 — 最新价、涨跌幅、市值、PE/PB
34 种技术指标 — SMA/EMA/MACD/RSI/BOLL/ATR/CCI/ADX/MFI 等
💰 财务报表(4 个工具)
资产负债表 — 总资产、固定资产、货币资金、存货、负债
利润表 — 营业收入、营业成本、营业利润、净利润
现金流量表 — 经营/投资/筹资现金流
财务指标 — 三表合并关键指标
👥 股东数据(3 个工具)
十大股东 — 排名、持股数、持股比例、变动详情
十大流通股东 — 类型分类(基金/QFII/券商/保险)
基金持股 — 全量(不限于前10),1000+ 条记录
📰 其他(2 个工具)
个股新闻 — 东方财富新闻搜索
内部交易 — 董监高增/减持记录
时间信息 — 当前时间 + 最近交易日
安装
前提条件
通过 npm 安装
npm install -g ahshare-mcp从源码安装
git clone https://github.com/terrysun1216/ahshare-mcp-ts.git
cd ahshare-mcp-ts
npm install
npm run build使用
Claude Desktop 集成
在 Claude Desktop 配置文件中添加:
{
"mcpServers": {
"ahshare-mcp": {
"command": "npx",
"args": ["ahshare-mcp"]
}
}
}或在 VS Code Copilot 中:
{
"mcpServers": {
"ahshare-mcp": {
"command": "npx",
"args": ["tsx", "/path/to/ahshare-mcp-ts/src/main.ts"]
}
}
}命令行
# stdio 模式(默认,供 MCP 客户端使用)
ahshare-mcp
# HTTP 模式(供远程/Web 客户端使用)
ahshare-mcp --streamable-http --port 8081示例对话
配置后,在 Claude 中可以这样对话:
"帮我查看贵州茅台 600519 最近 30 天的日线走势和 MACD 指标"
"贵州茅台最新的十大股东是谁?持股市值多少?"
"对比一下 600519 和 000858 的 PE、ROE 等财务指标"
"有哪些基金重仓持有了贵州茅台?"
MCP 工具列表
# | 工具名 | 描述 | 数据源 |
1 |
| 当前时间、时间戳、最近交易日 | 新浪 |
2 |
| 历史 K 线数据 + 34种技术指标 | 东方财富/新浪 |
3 |
| 实时行情(价格/涨跌/市值/PE/PB) | 东方财富 |
4 |
| 个股新闻 | 东方财富 |
5 |
| 资产负债表 | 东方财富 |
6 |
| 利润表 | 东方财富 |
7 |
| 现金流量表 | 东方财富 |
8 |
| 三大报表合并关键指标 | 东方财富 |
9 |
| 董监高内部交易 | 雪球 |
10 |
| 十大股东 + 十大流通股东 | 东方财富 F10 |
11 |
| 十大流通股东明细 | 东方财富 F10 |
12 |
| 基金持股明细(全量) | 新浪财经 |
34 种技术指标
类别 | 指标 |
趋势 | SMA, EMA, MACD, APO, PPO, TRIX, ULTOSC |
动量 | RSI, CCI, ADX, DX, MFI, MOM, CMO, WILLR |
波动率 | BOLL, ATR, SAR |
成交量 | OBV, AD, ADOSC |
方向 | PLUS_DI, PLUS_DM, MINUS_DI, MINUS_DM |
变化率 | ROC, ROCP, ROCR, ROCR100 |
其他 | AROON, AROONOSC, BOP, STOCH, TSF |
架构
┌─────────────────────────┐
│ MCP Client │
│ (Claude Desktop / VS Code) │
└──────┬──────────────────┘
│ JSON-RPC (stdio / HTTP)
┌──────┴──────────────────┐
│ MCP Server Layer │
│ @modelcontextprotocol/ │
│ sdk + Hono + Zod │
├──────────────────────────┤
│ Service Layer │
│ 行情 / 财务 / 股东 / 新闻 │
├──────────────────────────┤
┌──────────┼──────────┬──────────────┤
│ │ │ │
┌────┴───┐ ┌───┴────┐ ┌───┴───┐ ┌───────┴──┐
│东方财富 │ │ 新浪 │ │ 雪球 │ │ 指标引擎 │
│ HTTP │ │ HTTP │ │ HTTP │ │ 34 函数 │
└────────┘ └────────┘ └───────┘ └──────────┘数据流向:MCP Client → JSON-RPC → MCP Server → Service → HTTP Provider → 东方财富/新浪/雪球公开 API
零 Python 依赖:直接从 TypeScript 调用各数据源的公开 HTTP 接口,使用 Node.js 内置 fetch API。
技术栈
包 | 版本 | 用途 |
| ^1.29 | MCP 协议实现 |
| ^4.12 | HTTP 框架 |
| ^4.4 | 参数校验 + 类型推导 |
| ^5.9 | 类型系统 |
| ^4.1 | 测试框架 |
仅 3 个生产依赖,与 Lyna 项目使用完全相同的技术栈。
开发
# 安装依赖
npm install
# 开发运行(stdio 模式)
npm run dev
# 开发运行(HTTP 模式)
npm run dev:http
# 运行测试
npm test
# 编译
npm run build项目结构
src/
├── main.ts # CLI 入口
├── config.ts # 全局配置
├── calendar.ts # 交易日历
├── server/ # MCP Server (stdio + HTTP)
├── tools/ # 12 个 MCP 工具定义
├── services/ # 业务逻辑层
├── providers/ # HTTP API 层(东方财富/新浪/雪球/F10)
├── indicators/ # 34 个技术指标纯函数
└── types/ # Zod Schema + TS 类型测试
全部 13 个 E2E 测试通过,使用真实数据验证:
npm test # 单元测试
npx tsx tests/e2e-all-tools.test.ts # 端到端测试许可证
MIT © Terry
致谢
AKShare — 底层数据源研究和参考
akshare-one-mcp — Python 版 MCP 参考实现
Lyna — TypeScript MCP 架构参考
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure 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/terrysun1216/ahshare-mcp-ts'
If you have feedback or need assistance with the MCP directory API, please join our Discord server