v587d/capital-generation
面向中国股市小散户的金融投资智能体。Next-Gen AI-Driven Capital Generation.
已收录
2
Tools
Bundle 已验证
功能介绍
中国 A 股金融数据 MCP server:11 个 fin_data__* 工具(行情/K线/财务/日历/特色数据/公告/EDB/对账/基金/指数),同花顺免费官方 REST 主干 + AKShare 兜底 + Wind 独家域,降级全程可观测;上下文压缩(实测结果侧 -72.2%);离线 10 年数据湖;BYOK 零平台密钥。
适合
- 处理中国 A 股行情、K 线、财务、日历、公告、基金、指数和宏观数据的 Agent 与分析人员。
- 需要明确数据溯源,并可观察同花顺、AKShare 与 Wind 之间降级过程的工作流。
- 需要压缩金融数据结果以节省上下文的 Agent 会话。
- 需要通过离线十年日线数据湖进行全市场扫描的研究工作流。
不适合
- 超出已说明的中国 A 股、基金、指数及相关宏观数据范围的市场。
- 不愿或无法自行提供同花顺或 Wind 凭据,但又需要依赖这些数据源专属领域的用户。
- 无法接受同花顺免费服务高频请求限制的工作负载。
- 要求 Wind 独家分钟线、公告或指数基本面具备备用数据源的工作流;这些领域未提供降级源。
README
Capital Generation
[!IMPORTANT] 愿大家的财富数字就像“text generation”一样,不断增长,永不停止。
Slogan
Next-Gen AI-Driven Capital Generation.
What
面向中国股市小散户的金融投资智能体
Why
- 聪明的中国散户急需AI辅助投资决策。
- 绝大多数AI智能体并未将智能带入金融场景。
- coding agent的设计思路对financial Agent并非有效。
- financial agent != model + harness + skills/MCP/tools/prompt…
- 因为financial agent更强调有机结合。恰逢 DeepSeek Harness 问世,我们一起做一些新鲜的尝试。
BYOK
[!WARNING] 本项目不提供第三方 API Key,需你自行申请。仓库内不保存任何密钥。
申请 Key
- Wind:免费获取 API Key,每天送 1000 积分(有效期 1 天),初始 2000 积分。→ 访问官网申请
- 同花顺:免费获取 API Key,免费使用,对高频请求有限制。→ 访问官网申请
- AKShare:无需 Key,作为免费兜底源直接可用。
配置方法
拿到 Key 后,任选以下一种方式配置,推荐使用 credentials 文件:
-
将 Key 写入
~/.dsh/.credentials.yaml(权限建议0600):ths_api_key: "你的同花顺 API Key" wind_api_key: "你的 Wind API Key" -
或者通过环境变量注入:
export THS_API_KEY="你的同花顺 API Key" export WIND_API_KEY="你的 Wind API Key" -
重启 DSH / 重新启动 MCP server 后生效。未配置的源会给出 warning 并自动降级到可用兜底源,不会阻断启动。
[!TIP] 如果你通过 DSH 接入,且选择环境变量方式,请确认
cordis.patch.yml的env中显式透传了THS_API_KEY/WIND_API_KEY;否则 DSH 的 MCP 子进程可能拿不到 Key。
能力一览(v0.3.1)
统一金融数据访问入口:11 个 fin_data__* MCP 工具,一个入口覆盖 A 股行情 / K线 / 财务 / 日历 / 特色数据 / 公告 / 宏观 EDB / 双源对账 / 基金 / 指数。
| 工具 | 说明 | 主干 → 兜底 |
|---|---|---|
fin_data__search_symbols |
名称/代码消歧 → 唯一 canonical code | 同花顺 → AKShare |
fin_data__get_quote |
A股行情快照(批量 ≤50,不含中文名) | 同花顺 → AKShare |
fin_data__get_klines |
日K(≤1 年窗口引导)+ 分钟线(仅单交易日,Wind 独家) | 同花顺 → AKShare / Wind |
fin_data__get_financials |
三表 + 财务指标 | Wind → 同花顺 → AKShare |
fin_data__get_calendar |
A股近一年交易日历 | 同花顺 → AKShare |
fin_data__get_special_data |
涨停池/连板/热榜/龙虎榜/异动(anomaly-stock 需 thscodes) |
同花顺 → AKShare |
fin_data__get_announcements |
公告检索(Wind 独家 RAG,无降级源,content 已截断 + url 兜底) | Wind |
fin_data__get_edb |
EDB 宏观/行业指标(Wind 主干,AKShare 白名单兜底) | Wind → AKShare |
fin_data__reconcile |
双源对账(未复权,只比数据时点,分歧交 LLM 裁决) | THS × AKShare |
fin_data__get_fund_data |
基金(净值/收益/持仓/持有人/快照/K线) | 同花顺 → Wind |
fin_data__get_index_data |
指数(行情/K线/成分/基本面) | 同花顺 → Wind |
每个结果携带溯源信封:source(同花顺/Wind/AKShare)+ tier(free/quota/paid)+ ts + warnings[]。降级从不静默;分钟线/公告/指数基本面无降级源,明确告知。
设计哲学
- 三源架构,不是三源平权:同花顺(免费官方 REST)为行情主干,AKShare(免费)兜底,万得 Wind(权威)负责财务/分钟线/公告/EDB 等独家域。
-
上下文预算优先(v0.3.1 实测,真实 KEY):结果侧 -72.2%、工具面 -9.2%/轮。公告全文截断(
truncated显式标注 + url 兜底)、K线表头外提(meta+rows)、schema 去冗余 title——全部在”工具 schema 冻结 + 降级可观测”红线上完成。 -
契约纪律:工具名与参数 schema 一经发布即冻结,任何变更走
docs/DESIGN_REVIEW.md评审记录;数据模型 L1 身份 / L2 语义 / L3 标注分层,vendor 字段只标注、不转换。 -
BYOK:所有 Key 由使用者自备(同花顺/Wind),存在
~/.dsh/.credentials.yaml,仓库零密钥。
快速开始
# 1. 环境: Python 3.12+ / uv
uv sync
# 2. 配置 Key (env 或 DSH credentials 文件)
# THS_API_KEY=sk-... WIND_API_KEY=ak-...
# 或写入 ~/.dsh/.credentials.yaml (0600)
# 3. DSH 接入: cordis.patch.yml 增加一行
- insert:
- id: finance-unified
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: fin
transport: stdio
command: uv
args: ['run', '--directory', '/path/to/capital-generation', '-m', 'servers.mcp_data']
failOnStartupError: true
# 4. 本地验证
uv run python scripts/ci.py # ruff + pytest + 双源契约
uv run pytest tests -q # 205 passed + 10 skipped
数据湖(离线资产)
官方同花顺 marketdb CLI(MIT)整体集成:全市场 10 年日K + 复权因子 + 近 10 交易日增量,四层表 raw/calc/dim/stg + 8 项质量校验。纯离线,不进 LLM(用户裁定):全市场扫描类需求走 scripts/lake.py CLI,工具面明示不支持。
项目结构
core/ # 纯 Python 数据域: domain (L1/L2/L3 模型) + adapters (THS/Wind/AKShare)
servers/ # MCP 薄壳 (FastMCP): 只注册 fin_data__* 工具, 渲染层含上下文压缩
config/ # 数据即配置: chains.yaml / error_map.yaml / render.yaml / symbols.json
scripts/ # ci.py / lake.py / live-probe.py / measure_tokens.py (token 基线)
tests/ # 离线单测 + fixtures (三源可比性)
assets/ # 效果图
文档
-
docs/DESIGN_REVIEW.md— 设计决策与 schema 评审记录(改设计前先读) -
docs/DEGRADATION.md— 降级链与错误分类(降级可观测红线) -
docs/DATA_MODEL.md— L1/L2/L3 数据模型契约 -
docs/LESSONS.md— 契约事实与坑(THS/Wind 实测) -
docs/DESIGN_CONTEXT_BUDGET.md— 上下文 token 预算方案与实测 -
docs/CONTEXT_BUDGET_RESULTS.md— v0.3.1 优化前后正式对比数据
路线图
| 版本 | 内容 |
|---|---|
| v0.1.0 → v0.3.0 | 数据层:三源架构、对账引擎、数据湖、基金/指数域、CI |
| v0.3.1(当前) | 上下文 token 优化(结果侧 -72.2%)、LLM-first 错误消息 |
| v0.4.0 | 接口覆盖补全(THS 4 端点 + Wind fund_nav 修复)+ MCP 异常报错统一 |
| v0.5.0 | 编排层 fin_agent__ask(plan-only,TS DSH 插件,数据层零改动) |
License
Apache-2.0(含 NOTICE)。同花顺/万得 API 为第三方商业服务,其条款独立于本仓库;Key 由使用者自备(BYOK)。
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:v587d/capital-generation。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。