零密钥行情数据 MCP server(dsh bundle):5 个 MCP 工具覆盖 A股/港股/美股行情、板块排行、期货、资金流与 7×24 快讯,三层上游降级兜底。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:theBigGavin/marketingdashboard
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
📊 市场研究驾驶舱
Market Research Cockpit — 面向金融与产业研究的一屏式实时行情大屏
聚合 A股 / 港股 / 美股 · 大宗商品 · 美债收益率 · 板块热点 · 资金流 · 7×24 快讯 · 产业链自选股

🏠 来自 Gavin's Lab — 一家由 7 个 AI agent 通过 kanban board 协作运转的一人公司:公司官网 · 透明办公室(LIVE)
🛎️ 托管版筹备中 — 暂无定价、暂无上线日期。不想自己维护服务器?欢迎在 GitHub Issues 告诉我们你最看重什么。开源自托管版永久免费(MIT),不会变。
✨ 功能亮点
- 🌍 全球市场一屏掌握 — 沪深 / 恒生 / 道琼斯 / 纳斯达克 / 标普 / VIX / 美元人民币汇率,指数分钟级走势同屏联动
- 🥇 大宗商品与加密货币 — 纽约金银、伦敦金、沪金、伦铜、原油、BTC,价格与日内曲线实时刷新
- 💵 美债收益率监控 — 10Y / 2Y 收益率、2s10s 利差、收益率曲线形态与历史月度变迁
- 🔥 板块热点雷达 — 行业 / 概念板块涨跌排行,点击板块联动成分股、龙头股与资金流
- 💰 资金流向追踪 — 个股主力净流入 TOP 榜、板块资金分钟级累计曲线、热门股 / 涨幅 / 跌幅榜单
- ⛓️ 产业链全景 — 半导体、AI 算力、新能源车、机器人、创新药等产业链,上中下游标的分层展示并联动行情。支持手动编辑或从问财自动获取股票列表
- 🤖 AI 观察 — OpenRouter 日度榜单 API,追踪全球 50+ 大模型厂商 Token 消耗量趋势(支持 7d~1y 时间范围),按厂商/国家/地区堆叠面积图展示份额变化,支持 60 天以上超长历史回溯
- 💹 大模型价格竞争观察 — 2×3 网格四个面板:TTSI 支出指数趋势(全市场加权 / 闭源前沿 / 开源权重三线,纵轴从 0 起,本地
ttsi.csv(CC BY 4.0)全量历史与 RSS 日更尾部合并)、大模型价格表(约 400 个模型,智能/输入/输出/任务成本可排序)、性价比散点(智能指数 × 任务成本对数轴,厂商配色)、降价/份额变动事件流(TrakToken 每日标注) - 🪟 财报窗口(/fin) — 财报季宏观视角:财报披露日历(14 天柱状节奏 + 今日清单)、业绩预告(预喜/预悲统计条 + 净利区间明细)、行业盈利榜(规模 × 景气度双编码)、个股盈利榜(净利额/增速切换),以及单公司近 12 期财报趋势(营收净利柱线 + ROE/毛利率/净利率)
- 🏷️ 商品价格页(/goods) — 贵金属 / 基本金属 / 黑色 / 能化 / 农产品 / 国际能源 6 大分组期货主力日线趋势(新浪全历史 K 线,30d~365d 区间切换),生意社现货日度报价(历史逐日积累)与现期基差对照表
- 📰 7×24 快讯聚合 — 全球财经快讯滚动播报,宏观关键词与产业链关联新闻自动高亮
- 🖥️ 可安装为桌面应用 — 内置 PWA 支持(Web Manifest + Service Worker),浏览器地址栏一键安装,独立窗口运行
- 📺 Android TV 客户端 — 原生 WebView 壳(
android-tv/),遥控器空间导航、面板全屏放大(比例缩放+幻灯片切换)、翻牌跑马灯,适配老内核与弱 GPU - 📱 iOS Scripting 脚本 — TypeScript/TSX 脚本(
scriptable/,镜像至theBigGavin/mrd-scripting),在 Scripting App 的 WebView 中呈现驾驶舱:?tv=1TV 模式、强制横屏、忽略安全区全屏、液态玻璃退出按钮、本地开屏页(mrd logo 呼吸动画)且无白屏无缝进入实时页面 - ⚡ 零依赖数据服务 — 内置 Node 代理聚合公开行情接口,内存缓存减压,大部分接口无需 API Key,开箱即用
🆚 聚合型面板 vs 单一官方数据源
金融数据工具大致分两类:官方数据服务(单一厂商出品、API 形态、需注册申请 Key,适合深度数据接入)和聚合型面板(多源公开数据聚合一屏、开箱即用,适合看盘与研究)。mrd 属于后者。两类并不互斥,但如果你想要的是「打开就能看」,差异在这五处:
| 维度 | 单一官方数据源 | mrd(聚合型面板) |
|---|---|---|
| 数据广度 | 一家厂商的数据 | 腾讯 / 新浪 / 东方财富 / 华尔街见闻 / CNBC / Binance / 生意社等十余个公开源聚合一屏,A股 / 港股 / 美股 / 商品 / 美债同屏对照 |
| 可用性 | 上游服务挂了,就是挂了 | 缓存降级:服务端按接口 TTL 缓存 + 失败退避负缓存,上游抖动时仍展示最近一次可用数据;部分接口自动降级为浏览器直连 |
| 选股方式 | 清单式查询 | mystery_select 惊喜选股:一句概念 / 行业描述,筛出一组候选标的 |
| 上手成本 | 需注册官网、申请并保管 API Key | 零 Key 开箱即用:npm start 之后就是一屏行情(仅 AI 观察类面板可选配 Key) |
| 运维成本 | 自己接 API、自己搭展示层 | 开源自托管单进程即可跑;不想自己运维,托管版 Pro 正在筹备中 |
需要批量历史数据落库、合规审计级数据血缘的场景,官方数据服务更合适;需要一屏盯盘、跨市场对照、打开即用的场景,聚合型面板更合适。
🏗️ 架构
flowchart LR
subgraph 外部数据源
A[腾讯行情] --> D
B[新浪财经] --> D
C1[东方财富] --> D
C2[华尔街见闻] --> D
C3[CNBC / Binance] --> D
C4[同花顺问财] --> D
C5[OpenRouter 榜单] --> D
C6[Artificial Analysis API] --> D
C7[TrakToken TTSI RSS] --> D
end
subgraph 本项目
D["Node 数据代理<br/>内存 TTL 缓存"] -->|"/api/*"| E["React 19 前端<br/>轮询刷新"]
E --> F[一屏式驾驶舱 UI]
end
- 前端优先请求本站 Node 代理;代理不可用时,部分接口(腾讯系 / 见闻)自动降级为浏览器直连
- 前端统一报价中心:所有面板的价格 / 涨跌幅由单一客户端报价中心(
src/lib/market.ts)按 5s 批量拉取并分发同一快照,同一只股票全站同帧;服务端报价按代码独立缓存(5s,与客户端轮询周期对齐),集合变化只补新码 - 服务端按接口粒度设置缓存 TTL(行情 5s ~ 板块归属 24h),缓存容量有界(LRU + 定时清扫),无数据库、无外部存储
- 多用户并发友好:按代码 TTL 缓存 + inflight 去重(并发缓存失效共享同一次上游拉取)、上游失败退避(5s→2min 负缓存,宕机时不再被反复锤打)、浏览器直连兜底按 code 节流、
/api/stats暴露请求数/上游调用数/429 计数 - 现货价格由服务端每 4 小时定时采集并写入本地历史文件,无需前端在线,历史随天数自然生长
- 生产环境单进程运行:同一端口同时提供 API 与前端静态文件
🚀 快速开始
先决条件
- Node.js 18+
- 系统可用
curl(部分代理接口使用)
本地开发
npm install # 或 pnpm install
npm run dev
- 前端开发服务器:http://localhost:3000
- 数据代理服务:http://localhost:3001(Vite 自动将
/api代理过去)
生产部署
npm run build # 构建到 dist/
# 可选:配置 API Key(AI 相关面板)
# echo 'OPENROUTER_API_KEY=sk-or-v1-xxxx' > server/.env # AI 观察用量面板
# echo 'ARTIFICIAL_ANALYSIS_API_KEY=aa_xxxx' >> server/.env # 大模型价格面板
# 可选:TTSI 全量历史 — 从 traktoken.com 下载 ttsi.csv 放到
# server/data/ttsi.csv(CC BY 4.0);没有时趋势面板自动降级为 60 天 RSS 尾部
npm start # 单进程启动,访问 http://localhost:3000
Docker
docker build -t market-cockpit .
docker run -p 3000:3000 market-cockpit
安装为桌面应用(PWA)
用 Chrome / Edge 打开部署后的页面,点击地址栏右侧的 安装图标(或菜单 →「安装市场研究驾驶舱」),即可作为独立桌面应用运行,支持离线缓存静态资源、独立图标。
注意:行情接口实时拉取,离线状态下仅应用外壳可用。
Android TV 客户端
android-tv/ 目录是一个原生 WebView 壳 App(零第三方依赖),把驾驶舱搬上安卓电视/盒子。Web 端通过 ?tv=1 进入 TV 模式,与桌面版共用同一套代码。
遥控器操作模型
- 方向键空间导航:面板、导航链接、页签、滚动区均可聚焦(青色高亮框),按"边缘间距 + 轴向重叠"几何打分,正对面板优先
- OK 键:放大面板 / 激活按钮 / 切换页面
- 放大 = 全屏浮层:面板带遮罩盖满全屏,内容按原始比例整体放大(CSS zoom,上限 3x),其他面板零重排
- 放大态内:←/→ 幻灯片式切换相邻面板;↑/↓ 滚动内容(滚到顶再按 ↑ 直达页签区);页签、板块行、成分股侧栏均可用方向键到达并操作
- 返回键:还原放大面板 → 返回上一页 → 退出;菜单键:修改服务器地址
- 翻牌跑马灯:顶部行情带为航班时刻牌风格——7 个等宽卡片槽位,每隔几秒一个槽位单独翻牌轮换(弱 GPU 扛不住全宽连续滚动,翻牌只重绘小区域)
- 开屏页:Logo 呼吸动画 + 加载进度,页面就绪后淡出
TV 模式适配要点(对桌面端零影响)
- 固定 1920 CSS 像素视口,任意密度电视布局与字号一致;壳 App 按屏幕 dp 宽度计算初始缩放恰好铺满
- 旧内核兼容(< Chromium 88):
:where()/inset/flexgap均有传统写法兜底 - 弱 GPU 优化:禁用毛玻璃/阴影/全局动画,时钟与倒计时降为分钟级,长列表行数收紧(板块 200→40、快讯 60→25、榜单 30→15),报价轮询 5s→10s
- 左下角调试角标:WebView 内核版本 · 构建时间 · 实时 FPS · JS 堆内存 · 报价心跳(区分"轮询异常"与"休市静止")
使用步骤
- 构建 APK:
cd android-tv && ./gradlew assembleDebug,产物在app/build/outputs/apk/debug/app-debug.apk - 侧载安装到电视(adb:
adb install app-debug.apk,或 U 盘拷贝安装) - App 默认连接公网部署地址
https://mrd.hermes.cc.cd,开箱即用;按遥控器菜单键可随时改为局域网地址(电脑端npm start后填http://<电脑IP>:3000)
iOS Scripting 脚本
scriptable/ 目录包含一个 Scripting App(scripting.fun)脚本,用原生 WebView 呈现驾驶舱;同时镜像为独立仓库 theBigGavin/mrd-scripting,可直接导入。
特性
- 加载
https://mrd.hermes.cc.cd/?tv=1——TV 模式(D-pad 空间导航、点面板放大、触屏滑动切换) - 强制横屏、无标题栏、忽略安全区全屏(
ignoresSafeArea) - 液态玻璃退出按钮(
buttonStyle="glass",需 iOS 26) - 本地开屏页:mrd logo 呼吸动画 + 进度圈,随后无缝深色过渡进入仪表盘(无白屏闪烁)
一键安装
iPhone 上打开导入链接(需已安装 Scripting App,iOS 26+):
https://scripting.fun/import_scripts?urls=%5B%22https%3A%5C%2F%5C%2Fgithub.com%5C%2FtheBigGavin%5C%2Fmrd-scripting%5C%2Ftree%5C%2Fmain%22%5D
或直接分享 scriptable/ 下的 mrd-dashboard.scripting 文件导入。若脚本宝中已存在同名脚本,请先删除再导入,避免缓存冲突。
重新打包:.scripting 本质是 zip(STORE 存储、flag_bits=2048 UTF-8 文件名、zip 版本 20、DOS 日期 2020),内含 index.tsx、page.tsx、script.json。用 python3 scriptable/package.py 重建。
📡 API 一览
开发时前端通过 /api 访问本地代理服务:
| 接口 | 说明 |
|---|---|
/api/quotes?codes=... |
指数 / 个股实时报价 |
/api/minute?code=... |
日内分钟走势 |
/api/boards?type=...&dir=...&n=... |
行业 / 概念板块排行 |
/api/board-stocks?code=...&n=... |
板块成分股 |
/api/futures?list=... |
大宗商品 / 加密货币报价 |
/api/future-minute?code=... |
期货日内走势 |
/api/future-daily?code=...&n=... |
期货日线 K 线(默认近 400 根,内盘 nf_ / 外盘 hf_) |
/api/spot-table |
生意社现期对照表(现货价 / 期货价 / 基差,现货历史逐日积累) |
/api/chem-spot?id=...&name=... |
生意社化工现货报价(市场价中位数,历史逐日积累) |
/api/rank?sort=...&n=... |
个股榜单(涨幅 / 成交额 / 换手率) |
/api/moneyflow?n=... |
个股主力净流入排行 |
/api/stock-flows?codes=... |
批量个股资金流 |
/api/board-flow?n=... |
板块资金流向曲线 |
/api/stock-boards?code=... |
个股所属板块(行业 / 地域 / 概念) |
/api/news?page=...&size=... |
7×24 财经快讯 |
/api/treasuries |
美债收益率实时值 |
/api/treasury-history |
美债收益率历史月末曲线(2001 年至今,代码库本地存档 server/treasury-rates/ + 当年在线补充) |
/api/mystery-select?query=...&limit=... |
问财股票筛选(按概念/行业查询) |
/api/finance-main?code=... |
单公司近 12 期财报主指标(东财 F10,营收/净利/ROE/毛利率等) |
/api/finance-board?period=... |
财报宏观数据包(个股盈利榜 TOP50 + 行业聚合 TOP15 + 近期披露日历) |
/api/finance-forecast?period=... |
业绩预告(净利区间/同比/类型 + 预喜预悲统计) |
/api/chain-parse |
产业链文本解析(按段落标题自动分配上中下游) |
/api/openrouter-usage |
OpenRouter 日度榜单(厂商 Token 消耗量,本地缓存持久化积累) |
/api/aa-models |
Artificial Analysis 全模型定价(约 600 个模型:智能指数/每百万输入输出价/任务成本;24h 缓存 + 每日快照积累到 server/data/model-prices.json) |
/api/spend-index |
TrakToken TTSI 支出指数(本地 ttsi.csv 全量历史 + RSS 日更尾部合并,含降价/份额变动事件) |
/api/stats |
运行观测:请求数 / 上游调用数 / 429 计数、运行时长 |
/api/stock-search?q=... |
股票搜索(名称/拼音首字母→代码,新浪建议代理) |
/api/health |
健康检查 |
注:
/api/mystery-select与/api/openrouter-usage消耗服务端私有 API Key,仅接受同源页面请求(跨源 403);/api/aa-models需要server/.env配置ARTIFICIAL_ANALYSIS_API_KEY,端点本身保持公开(24h 缓存)。全站 API 仅向同源页面反射 CORS Origin(跨源浏览器读取不授权),并按客户端 IP 限流(公开端点 2400 次/分、私有端点 30 次/分,超限 429;经 Cloudflare Tunnel 部署时真实 IP 取CF-Connecting-IP);POST 请求体上限 256KB;/api/未命中路由返回 404 JSON。
🗂️ 项目结构
├── server/
│ ├── dev.cjs # 开发入口:同时启动 Vite 与数据代理
│ ├── index.cjs # 数据代理 + 生产静态文件服务
│ └── data/ # 运行时积累数据(gitignore):spot-history.json、
│ # model-prices.json、ttsi.csv(可选 TTSI 全量历史)
├── src/
│ ├── App.tsx # 大屏布局与路由(/ 市场驾驶舱、/ai AI观察、/goods 商品价格、/fin 财报窗口)
│ ├── AiDashboard.tsx # AI 观察页(2×3 网格:Token 消耗跨两行一列 + 4 个大模型价格面板)
│ ├── FinDashboard.tsx # 财报窗口页(面板见 components/dash/fin/)
│ ├── GoodsDashboard.tsx # 商品价格页(6 分组趋势面板 + 现货/基差面板)
│ ├── components/
│ │ └── dash/ # 驾驶舱各面板(指数/板块/资金流/快讯/产业链/AI观察/自选股/商品趋势…)
│ │ ├── Spark.tsx # 迷你走势图(A股按交易时段 / 24h 连续时间轴 / 日线按点均分)
│ │ └── WatchlistPanel.tsx # 自选股面板(支持名称/拼音搜索,localStorage 持久化)
│ ├── config/ # 指数、商品、产业链等静态配置
│ ├── hooks/ # usePolling / useSharedPolling / useClock 等通用钩子
│ └── lib/ # API 客户端、统一报价中心(market.ts)与工具函数
└── docs/ # 截图等文档资源
🛠️ 技术栈
- 前端:React 19 · Vite 7 · TypeScript · Tailwind CSS · lucide-react 图标(图表为手写 SVG)
- 后端:Node.js 原生
http(无框架)·curl/fetch - 数据源:腾讯 · 新浪 · 东方财富 · 华尔街见闻 · CNBC · Binance · 生意社 · OpenRouter · Artificial Analysis · TrakToken 等公开行情接口
⚠️ 免责声明
本项目仅用于学习与研究目的。所有行情数据来自公开网络接口,可能存在延迟或误差,不构成任何投资建议。
🤝 贡献
欢迎提交 Issue 或 PR:
- Fork 本仓库
- 创建分支
feature/xxx - 提交修改并推送
- 发起 Pull Request
📄 License
Star History
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 34028
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 5298
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1136
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
gitroomhq/postiz-agent#dsh-postiz★ 517
通过 MCP 将 DeepSeek Harness 连接到 Postiz:列出已连接的社交媒体渠道、获取各平台发帖规则,并向 X、LinkedIn、Instagram、Facebook、Threads、TikTok、YouTube、Reddit、Bluesky、Mastodon、Discord、Slack、Telegram 等平台排期、存草稿或发布帖子;附带 postiz 工作流技能。
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 507
面向 DeepSeek Harness 的本地 IMAP 发票下载、OCR 识别、归档与 Excel 报销汇总。
anysearch-team/anysearch-dsh★ 461
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。