ashare-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
> **Turn Chinese A-share (沪深京) financial statements into tools your LLM can call.**
> 把 A 股财报变成 LLM 可调的工具 —— 一句"平安银行 2024 年报怎么样?"直接拿到结构化三大表。
让 Claude(或任何 MCP 客户端)用一句"平安银行 2024 年报怎么样?"直接拿到结构化的资产负债表 / 利润表 / 现金流量表,字段经过精选、单位明确、缓存友好。
数据来源东方财富,通过 akshare,全部免费、无需 token。
---
为什么再做一个
GitHub 上"金融 LLM"项目大多卷在 **trading agent** 和 **SEC 10-K RAG**——前者同质化严重,后者只服务美股。**A 股 + 中文 + MCP 协议层** 的组合几乎空白。
ashare-mcp 的定位很窄:**做 A 股财报这一件事,做到能被任何 LLM 客户端十秒接入**。它不预测股价、不写研报、不替你做决策——它只把数据从东方财富搬到 LLM 的工具调用里,字段干净、单位清楚、错误明确。
快速开始
跑一次冒烟测试:
接入 Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(Mac):
重启 Claude Desktop,就能直接问:
> 帮我看一下平安银行 2024 年报,总资产、总负债、净利润、经营性现金流分别多少?
工具列表
| 工具 | 输入 | 输出 |
|---|---|---|
| get_three_statements | stock_code, year | 年报三大表(精选 ~150 字段)|
| cross_check_balance | stock_code, year | 4 条勾稽校验(3 条通用 + 1 条行业感知)+ 误差 |
| compare_peers | stock_codes[], year, metrics? | 同业 N 家横向对比 + 排名 / max-min-avg-std + ROE |
| track_company_history | stock_code, years, metrics? | 跨年时间序列 + YoY / CAGR / trend / anomalies |
| parse_document *(需 [pdf] extra)* | file_path, output_format?, lang? | PDF / DOCX / PPTX / 图片 → LLM-ready markdown(MinerU)|
代码归一化支持 000001 / SZ000001 / sz.000001 / 000001.SZ 多种格式。
cross_check_balance 当前包含 4 条勾稽(前 3 条行业通用,第 4 条行业感知):
1. **资产负债平衡** — TOTAL_ASSETS = TOTAL_LIABILITIES + TOTAL_EQUITY
2. **现金流恒等式** — NETCASH_OPERATE + NETCASH_INVEST + NETCASH_FINANCE + RATE_CHANGE_EFFECT = CCE_ADD
3. **期末/期初现金对账** — END_CCE − BEGIN_CCE = CCE_ADD
4. **营业利润分解(行业感知)**
- **银行**:OPERATE_PROFIT = OPERATE_INCOME − OPERATE_EXPENSE
- **工商企业**:OPERATE_PROFIT = TOTAL_OPERATE_INCOME − TOTAL_OPERATE_COST + OTHER_INCOME + INVEST_INCOME + FAIRVALUE_CHANGE_INCOME + ASSET_IMPAIRMENT_INCOME + CREDIT_IMPAIRMENT_INCOME + ASSET_DISPOSAL_INCOME [+ EXCHANGE_INCOME]
- **行业自动识别**:有 ACCEPT_DEPOSIT > 10 亿 走银行公式,有 TOTAL_OPERATE_INCOME + TOTAL_OPERATE_COST 走工商公式,否则 skipped(保险等暂不支持)
容忍度:前 3 条 1 万元(单项舍入),第 4 条 1000 万元(多项加总舍入累积)。字段缺失或行业无法识别时该条 skipped,不影响其它校验。实测 3 行业(银行 / 白酒 / 电池)4 家公司 2024 年报全过 4/4。
走 lru cache 联动:**先调 get_three_statements 后调 cross_check_balance,后者 |JSON-RPC over stdio| Server[ashare-mcp FastMCP server]
Web[Web 前端 React + Vite] -->|HTTP / JSON| HTTP[ashare-mcp-http FastAPI wrapper]
Curl[curl / Postman / 其它] -->|HTTP / JSON| HTTP
Server -->|共享业务层| Core[业务模块 checks / peer_compare / history]
HTTP -->|共享业务层| Core
Core -->|代码归一化| Norm[股票代码归一化 SZ/SH/BJ 自动判断]
Core -->|拉取三表| DS[数据源封装 akshare 包装层]
DS -->|缓存命中| Cache[(进程内存缓存 lru_cache)]
DS -->|缓存未命中| YearlyEM[akshare by_yearly_em]
YearlyEM -->|HTTP| EM[东方财富 财报数据接口]
DS -->|字段过滤| Filter[剔除元数据列 剔除同比列 剔除空/零字段]