cnstock-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
cnstock · 中国股票数据 CLI
一条命令拿到 A 股行情、财报、估值和研报。免 API Key、零配置、多源自动降级。

上面是真实终端输出录制的动画,不是示意图。
为什么不用 akshare / tushare
akshare | tushare | cnstock | |
语言 | Python | Python | Node / TypeScript |
安装 |
|
|
|
API Key | 不需要 | 需要 token | 不需要 |
接口失效时 | 直接报错 | 直接报错 | 自动切换备用数据源 |
与 AI 集成 | 需要自己封装 | 需要自己封装 | 内置 MCP server |
最关键的差异是第三行。这些公开接口都没有 SLA:开发期间实测过东方财富的行情接口在请求变多后所有分片同时断开连接,而 datacenter、腾讯、新浪仍然正常。只绑一个源的工具会在你不知情时静默失效,所以 cnstock 每次调用都按顺序尝试多个源,并在输出里用 source 字段告诉你这次是谁答的。
Related MCP server: stock-mcp-server
快速开始
# 直接用,不用安装
npx @wilshi/cnstock quote 600519
# 检索股票
npx @wilshi/cnstock search 茅台
# 财报 + TTM 折算
npx @wilshi/cnstock financials 600519
# 估值测算
npx @wilshi/cnstock value 600519 --growth 0.1 --discount 0.12
# 生成完整研报
npx @wilshi/cnstock report 600519 > 茅台研报.md任何命令加 --json 都输出结构化 JSON,方便管道处理:
npx @wilshi/cnstock quote 600519 --json | jq .price命令一览
命令 | 作用 |
| 按代码、名称或拼音首字母检索 |
| 实时行情、市值、PE/PB、行业概念 |
| 前复权日 K 线( |
| 财报摘要与 TTM 折算( |
| 估值测算,自动选模型 |
| 完整 Markdown 研究简报 |
作为 MCP 服务使用
cnstock 同时是一个 MCP server,可以直接接进 Claude Desktop、Cursor 等支持 MCP 的客户端:
{
"mcpServers": {
"cnstock": {
"command": "npx",
"args": ["-y", "--package", "@wilshi/cnstock", "cnstock-mcp"]
}
}
}提供的 6 个工具:cnstock_search、cnstock_quote、cnstock_kline、cnstock_financials、cnstock_valuation、cnstock_report。
接上之后就能直接问:
「茅台现在贵吗?按 10% 折现率帮我算一下。」
两个它做得比别家认真的地方
1. TTM 不是随便取一期
A 股财报是累计口径——三季报的净利润是 1 到 9 月的累计值,直接当年度数据用会严重失真。cnstock 按 最新累计 + 上年年报 - 上年同期 折算 TTM,并把计算依据一起输出:
TTM 归母净利 821.61 亿元
TTM 口径 TTM = 2026年 三季报累计 + 2025年报 - 2025年同期2. 不同生意用不同估值模型
公司类型 | 模型 | 原因 |
一般盈利公司 | 两阶段 DCF | 净利润可近似所有者收益 |
银行 / 保险 / 证券 | PB-ROE | 金融企业净利被存款与拨备主导,不等于自由现金流 |
亏损公司 | 明确标注不适用 | 应改用 PS 或重置成本 |
对银行套 DCF 会算出荒谬的「安全边际」——平安银行用 DCF 会显示低估 69.8%,而正确做法是用 Gordon 增长形式的 合理 PB = (ROE - g) / (r - g)。cnstock 会自动识别并切换。
此外它会反推当前股价隐含的增速:茅台现价隐含 5 年增速约 14.2%,你可以自己判断这个预期是否合理。
也支持 Docker
MCP server 以 stdio 通信,容器内不需要暴露端口:
docker build -t cnstock-mcp .
docker run --rm -i cnstock-mcp非 root 运行,多阶段构建。
财务排雷(全市场)
cnstock 现在能做两件事:查数据,以及扫描全市场的财务风险。
# 单公司体检
npx @wilshi/cnstock audit 600519
# 全市场扫描:分「高危 / 关注」两级
npx @wilshi/cnstock scan --limit 20
# 只看高危
npx @wilshi/cnstock scan --tier red全市场扫描:检查 5563 家,[红] 112 家,[黄] 1240 家
[红] 高危 300212 *ST易录 [ST]
· 净资产为负:-19.53 亿
· 连续两年亏损:-28.65 亿 / -27.17 亿
· 经营现金流连负:-2.41 亿 / -1.59 亿扫描 5563 家约 50 秒,之后命中本地缓存是 1 秒级。
规则是怎么选的(不是拍脑袋)
这些规则用 **313 家 ST/*ST 公司作为验证集**跑过全市场回测,按区分能力筛选:
规则 | ST 命中率 | 正常公司误报率 | 提升倍数 |
净资产为负 | 28.0% | 0.8% | 37.14x |
连续三年亏损 | 39.7% | 10.2% | 3.87x |
连续两年亏损 | 49.8% | 16.9% | 2.95x |
经营现金流连负 | 20.2% | 8.3% | 2.43x |
高商誉 > 50% | 2.3% | 1.0% | 2.45x |
「提升倍数」= ST 公司触发概率 ÷ 正常公司触发概率。1x 等于随机,越高越有区分力。
一个被公开否定的设计
我们最初还实现了「净利现价比」(经营现金流 ÷ 净利润),直觉上是最可靠的造假信号。但全市场验证显示它的提升倍数是 0.16x —— 反而是反指标:ST 公司触发它的概率比正常公司还低。
原因:该规则只对「有盈利但现金流差」的公司生效,而 ST 公司大多处于亏损状态,直接跳过了这条规则。
所以它没有进入 scan。 相关实验代码保留在 scripts/rule-compare.ts 与 scripts/rule-combo.ts,可复现。
分层而不是打分
验证也说明了一件事:不存在又准又全的单一规则集。
组合 | ST 命中 | 误报 | 标记家数 |
仅净资产为负 | 27.6% | 0.8% | 40 |
净资产+连续亏损 | 63.6% | 17.7% | 893 |
全部规则 | 73.9% | 39.0% | 1964 |
规则加得越多召回越高,但全加进去会标出 39% 的 A 股 —— 等于没标。所以产品输出分层:红灯只放高置信度信号,黄灯保留覆盖面。
它不能做什么(重要)
不能识别财务造假。 造假检测需要的信号(跨期调节、虚构收入、关联交易非关联化)无法用比率分析可靠识别,且缺乏有效的统计验证方法。
不能预测爆雷。 上述验证用的是「当前财务状态 vs 当前 ST 状态」的横截面区分度,不是时序预警能力。
数据是重述后的。 已被处罚公司的历史报表都经过追溯调整,无法还原「事发前原始披露」的数字。
不构成投资建议。 输出的是「需人工复核」,不是「卖出」。
已知局限和后续验证计划见 docs/red-flag-design.md。
项目结构
├── src/
│ ├── cli.ts # 命令行入口
│ ├── mcp.ts # MCP server 入口
│ ├── index.ts # 库导出
│ ├── datasource/
│ │ ├── index.ts # 多源降级编排
│ │ ├── eastmoney.ts # 东方财富
│ │ ├── tencent.ts # 腾讯(备用)
│ │ ├── sina.ts # 新浪(兜底)
│ │ └── types.ts
│ └── analysis/
│ ├── valuation.ts # DCF / PB-ROE / TTM
│ └── report.ts # Markdown 研报
└── scripts/mcp-smoke.mjs # MCP 协议冒烟测试数据源
能力 | 主源 | 备用 |
行情 / 估值 | 东方财富 | 腾讯 → 新浪 |
日 K 线 | 东方财富 | 腾讯 |
财报 | 东方财富 datacenter | — |
检索 | 东方财富 searchapi | — |
均为公开接口,无需注册。行业与概念标签只有东方财富提供;降级到备用源时这些字段为空,输出会如实标注。
免责声明
本项目是数据工具,不构成投资建议。数据来自第三方公开接口,可能存在延迟、缺失或口径差异;估值结果对假设高度敏感。据此操作风险自担。
License
MIT © 2026 WilShi
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
China A-share data for AI agents: 57 read-only tools plus 6 tools for your own watchlist.
China A-share market data over MCP: 22 tools for quotes, K-line, financials, money flow, top-trader boards, sectors, macro, convertible bonds and factor screening. Five tools need no API key, so you can connect and try it immediately.
China A-share market data for research, backtesting and AI agents via MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time quotes, fund flows, and corporate announcements for Chinese A-share stocks. It enables users to search for stocks, analyze financial indicators, and summarize quarterly reports through natural language.-
- AlicenseAqualityCmaintenanceReal-time A-share stock data for AI assistants. Provides real-time stock prices, K-line data, financial indicators, and sector fund flow analysis for Chinese A-share market. Multi-source data validation ensures accuracy.74MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to query Chinese A-share stock data, including stock basics, historical prices, financial reports, and macroeconomic indicators.1MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to query real-time A-share stock data, including quotes, fund flows, sector flows, and K-line history, without needing an API key.518MIT