中国 A 股金融数据 MCP server:11 个 fin_data__* 工具(行情/K线/财务/日历/特色数据/公告/EDB/对账/基金/指数),同花顺免费官方 REST 主干 + AKShare 兜底 + Wind 独家域,降级全程可观测;上下文压缩(实测结果侧 -72.2%);离线 10 年数据湖;BYOK 零平台密钥。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:v587d/capital-generation
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
[!IMPORTANT] 本项目长期处于探索阶段,不提供任何形式的金融服务,不承诺任何投资回报。 投资需审慎, 盈亏自负,与本项目一概无关。
愿大家的财富数字就像"text generation"一样,不断增长,永不停止。
[!NOTE] 先安装 Deepseek Harness(DSH) ,本项目自 2.5.0 起适配 DSH
@0.2.0-rc.2。 需要 DSH ≥ 0.2.0-rc.2:2.4.x 那一档是在 0.1.7 上验的,本版起基线抬到 0.2.0-rc.2——Windows 桌面端携带的正是这一版, 装在桌面端里要用0.2.0-rc.2(npm i -g @deepseek-ai/dsh@0.2.0-rc.2)。再往前,0.1.5 的 settings 与 preset 挂载面已被上游删除,装在旧版上会起不来。 建议使用 Deepseek/deepseek-flash(High thinking) 搭配本项目, GPT / Claude 尚未充分测试,理论亦可。
💬 Slogan
Next-Gen AI-Driven Capital Generation.
📄 样例
📑 目录
📦 安装到 DSH Web Profile
从 GitHub 安装插件(构建产物 lib/ 已随仓库提交,无需克隆本项目或自行构建):
dsh plugin --profile web add github:v587d/capital-generation
安装后,重启 Web profile 使装配生效。密钥填在 「插件」页(0.1.7 起第三方插件的可编辑面就在这里,
不在「设置」页):已安装列表点开 @v587d/capital-generation → 「包含的组件」里的 capital-config
那一行 → 行详情页的配置段:
| ① 「插件」页 → 已安装 | ② 该 bundle 的 capital-config 行 |
③ 卡片:四个密钥 + 本地回退开关 |
|---|---|---|
[!NOTE]
- 四把密钥都免费申请:必填 同花顺(fuyao)(行情、财务等结构化数据) 与 AnySearch(实时网络搜索);推荐 Wind Alice(公告与权威新闻,每天送 300 积分)与 PaddleOCR AIStudio(每天 2 万页 OCR 免费额度)。 除这四把之外不再需要任何 key:
data_collector的腾讯 / 东财公开能力与web_retriever的九个 具名来源查询工具都走公开端点,装好即可用(明细见 data_collector 能力总表、 web_retriever 能力)。- 卡片里粘贴保存即可,无需重启——新开的 Capital 会话就生效。密钥值只写进 DSH 的 credentials 域 (配置里只存引用名,值从不随响应出网),字段旁只会显示「已配置密钥 / 未配置」。
- 不想用卡片界面也可以直接写
~/.dsh/.credentials.yaml,名字用FUYAO_API_KEY、ANYSEARCH_API_KEY、WIND_API_KEY、PADDLE_OCR_TOKEN,插件会自动读取。- 卡片中间的 「允许启动本地提取网页内容」 开关(默认开启)控制抓取回退:开启时 AnySearch 抓取失败 会自动改由本机直连抓取该页面(回执
via标注local-http),关闭则失败原样回传。
简单用法
| 选择 Capital 模式 | 设为默认模式 |
|---|---|
| 新会话在 Agent Preset 选择器中选择 Capital 模式 | 也可以在 设置 → Agent 预设 里把 Capital 模式设为默认 |
🔍 What
Capital Generation 是面向中国散户,适用于日常证券研究的 DSH 插件,简单地说:
Agent preset(人设):面向金融场景的 Capital 模式,与 DSH 默认的标准、PTC、极简、创造模式并列。
多 Agent 分工,原始数据不进上下文:所有 Agent(含主 Agent)都不直接接触原始结构数据, 需要时由下级按需提取、提炼后回传。目前覆盖以下 Subagent(
data_analyst为预留角色,暂未启用):角色 层级 一句话 data_collector主 Agent 直属(可续接) 收集结构化数据:69 个 capability(同花顺 61 + 腾讯公开 3 + 东财 5),后两类零密钥 data_junior主 Agent 直属(可续接) 清洗、整理、基础统计与透视:读 Dataset 默认 describe_dataset,时间换算一律由宿主完成data_analyst主 Agent 直属 用编程技能分析上游数据(仍在开发中,委派行 disabled) web_retriever主 Agent 直属(可续接) 外部非结构化数据:检索 / 具名来源查询 / 文档解析,共 14 个工具 visualization_specialistdata_junior的 one-shot 子 Agent出图:只收 profile_ref、只回chart_ref,不接触原始 rows,不直接向主 Agent 发消息逐角色职责与更多细节见 Agent 角色与 DSH 能力复用。
沿用 DSH 官方基础设施,不自行实现底层机制:预设挂载、Subagent 编排、人设与技能注入、工作区约定、 上下文压缩、数据持久化与用户级资产、配置与凭据、工具注册、用户交互——全部走官方扩展面,插件只带 persona、toolFilter 与工具实现。这些通道的上游契约由 22 条探针逐条看守(
npm run check:dsh); 11 条复用清单见 Agent 角色与 DSH 能力复用。
🧭 多 Agent 编排(截图)
主 Agent 不直接碰原始结构数据:行情与财务由
data_collector取,清洗与 profile 由data_junior做, 外部材料由web_retriever取回,出图是data_junior名下一次性的visualization_specialist。 下面是 DSH 官方「任务管理」视图里的真实一轮(右下角可切树状图 / 时间轴),点击可查看原图。
主 Agent 与三个常驻角色 · data_junior 名下的一次性出图子 Agent |
|---|
卡片上的「可续接 / 一次性」两种形态正好对上上面的角色表:三个直属下级是 continuable 的常驻角色
(send_message 可反复来回),出图那一层是 one-shot。这一轮共 9 个子代理:3 个常驻 + 6 个一次性出图。
📊 data_collector 能力总表
data_collector 能力总表 列出全部 69 个数据 capability(元数据 / A股行情与财务 / 估值竞价 / 盘面特色 / 指数 / 基金 / 腾讯公开行情 fallback / 东方财富资金与筹码),含端点路径、主要参数(必填以 * 标注)、是否分页与用途,并说明不覆盖的模块及原因。表格由 npm run docs:capabilities 从 source 定义生成,测试断言「文档 == 实现」。
构成:同花顺 Fuyao 61 个(需 FUYAO_API_KEY)、腾讯公开 HTTP 3 个(tencent_quote / tencent_kline / tencent_ticks)、东方财富 HTTP 5 个(龙虎榜汇总与单票、限售解禁日历、板块行情排名、板块资金流);后两类为公开端点,无需额外密钥。
🌐 web_retriever 能力
三个工作面共 14 个工具,逐个的上游、参数与用途见 web_retriever 能力(同样由测试断言「文档 == 实现」):
- 检索(4):
anysearch_search发现候选、web_retriever_fetch按 URL 取正文(失败可按开关回退本机直连),wind_docs_announcements/wind_docs_news(Wind Alice)是官方公告与权威新闻的默认第一选择。 - 来源查询(9,全部公开端点、零密钥):财联社 / 华尔街见闻 / 东财三条 7×24 快讯互为备份,东财个股新闻 与研报列表、新浪研报、同花顺机构一致预期 EPS、巨潮互动易(深市)、上证e互动(沪市)。
- 文档解析(1):
ocr(PaddleOCR,14 个工具里唯一要 Token 的)把 PDF 研报 / 公告或图片解析成 markdown。
来源边界(深沪不可互换、北交所两边都没有)、翻页纪律(该翻页就翻到没有、空结果是真事实) 与回传格式见 capital-web-protocol。
📈 图表呈现(截图)
出图只有一个入口:
data_junior的可视化 gate → one-shotvisualization_specialist。 序列数据不进模型上下文;图表由宿主以官方deliverables/presented登记为本轮交付物, 在收尾的「本轮文件改动 / 交付」行点开即可在右侧看到可交互图表。以下均为真实会话截图,点击可查看原图。
| 侧栏自包含 HTML:折线 | 侧栏自包含 HTML:K 线 + 量价 |
|---|---|
| 某股票近一月日成交额 | 某股票近一月日线·量价 |
| 同一窗口:左侧报告 · 右侧侧栏图表 |
|---|
chart.html 自包含(内联图表库与数据),可离线打开、零外部请求;图内保留
Lightweight Charts™ v5.2.1 (Apache-2.0) 归属信息。
📌 自选股(用户级清单)
自选股是宿主级的用户资产,不是 Agent 能力:清单与报价快照存在 DSH 的存储域里、跨 workspace 通用, 模型工具表与 persona 零变化(Agent 既读不到、也写不动这份清单)。出网只由用户动作触发—— 无轮询、无自动重试;沿用已填的同花顺(fuyao)密钥,不新增任何 key。
| 「指令」菜单里的入口 | 面板:搜索 / 添加 / 删除 / 刷新报价 |
|---|---|
输入 /(与左下角 + 是同一份菜单)打开,只在 Capital 会话出现 |
默认播种四条主要沪深指数,删空不重建 |
- 搜索添加:输证券代码(不带后缀,如
300750)或中文名(如宁德时代)都能命中,多命中时列候选 由用户点选;覆盖 A 股 / 指数 / ETF 三类,候选最多 10 条,清单上限 10 条。 - 每行:名称在上,代码 + 类型徽标(指数 / 股票 / ETF) 在下,最新价与涨跌幅右对齐(红涨绿跌); 行尾一个「更多」键,展开是**「置顶」(把这条提到第一行)与「移除」**。删除走面板内二次确认。
- 报价:底部是本次快照的更新时间。打开面板即刷一次(清单为空则只读本地、不出网),此后只有 点「刷新报价」才出网,同一时刻只允许一次刷新在途。
- 报错:位置跟着出错的那一下走,颜色只有两档——黄 = 动作没成(搜索失败占下拉那一行,
替换「没有匹配的标的」;添加失败如「最多 10 条」留在输入框下方,改一个字不清它),
红 = 数据不可信(整批刷新失败跟在「刷新报价」下面,单只取不到数才在价格位画红色
—)。 取数失败不等于没有价:上一次成功的快照照画,只降一档色并在 tooltip 里说清是哪一刻的; 一条都没落地的批次不推进底部那个更新时间。 - 边界:清单落在
~/.dsh/storages/capital_watchlist.json(官方存储域,不在任何 workspace 目录内); 浏览器半边只与本机 loopback 上的宿主路由对话,且该路由接宿主的认证围栏——密钥与上游调用全在宿主侧。
🔧 本地开发、构建、测试
npm install
npm run build # 生成 lib/ 与三个浏览器端产物(chart-ui、capital-config、capital-watchlist)
npm test # 构建后运行全部测试
npm run check:dsh # 检查上游 DSH 扩展面兼容性,升级/发布前建议跑
npm run smoke:boot # 真实 boot graph 冒烟:装配能起、预设能解析、卡片有座位
npm run verify:sessions # 发布前复核真实会话日志可被冷加载(需本机已装 dsh)
构建产物 lib/ 已随仓库提交,普通用户从 GitHub 安装时无需本地构建;只有需要改插件源码或
维护子包时才需要执行以上命令。
📝 Changelog
2.5.0 — 2026-09-30
- 基线抬到 DSH
0.2.0-rc.2(Windows 桌面端携带的就是这一版)。抬之前先在临时目录装一份同号跑 预演:接口账本 23 条全部通过,并用它真起了一次 dsh 进程(预设不 broken、四行 active、三颗客户端 bundle 到位、自选股路由的认证围栏正确)。详见 CHANGELOG.md。 - 自选股每行加「更多」菜单(置顶 / 移除),用官方
Menuprimitive 且portal: true:清单区是滚动 容器,就地画的浮层会被裁掉(最后几行点开什么都看不见),Escape 也得在 capture 阶段被菜单吃掉, 否则按 Esc 关掉的是整个面板。 - 置顶不重排磁盘:只多一格可选的
pinned_at,顺序在读取时算——写成必填会让已有记录被判invalid-record,靠删了重插改顺序会把整份清单重写 N 遍。旧记录无需迁移。 - 修复 Windows 上一道静默失效的闸门:shell 工具在两端名字不同(
bash/pwsh),闸门原先只认bash,在 Windows 上两层判定一次都不触发且不报错。现在两端共用一份名字定义,拒绝文案也同时点名 两个工具。 - 修复"失败说不清原因"这一族:打包闸门经
.cmd垫片启动会拿到空 stderr;persona 字段名核对用:拆 PATH,在 Windows 上永远找不到声明文件于是静默跳过。现在子进程一律绕开 shell、PATH 用平台 分隔符,定位逻辑只有一份实现。
从 2.4.x 升级需要先把宿主升到 0.2.0-rc.2(npm i -g @deepseek-ai/dsh@0.2.0-rc.2),插件侧无工具
改名、无入参变化、无新增密钥。更早版本(2.4.1 及以前)的变更历史见
CHANGELOG.md,GitHub Release 说明也从那里复制。
🤝 贡献
可自行克隆本项目,按上方「本地开发、构建、测试」执行。 由于本项目正在迭代中,具体贡献规则见CONTRIBUTING,提 PR 前建议 rebase. 欢迎提 issue 和 PR.
📜 MIT
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 31292
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 3854
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1128
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
gitroomhq/postiz-agent#dsh-postiz★ 499
通过 MCP 将 DeepSeek Harness 连接到 Postiz:列出已连接的社交媒体渠道、获取各平台发帖规则,并向 X、LinkedIn、Instagram、Facebook、Threads、TikTok、YouTube、Reddit、Bluesky、Mastodon、Discord、Slack、Telegram 等平台排期、存草稿或发布帖子;附带 postiz 工作流技能。
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 474
面向 DeepSeek Harness 的本地 IMAP 发票下载、OCR 识别、归档与 Excel 报销汇总。
anysearch-team/anysearch-dsh★ 438
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。