关于 mcp-dashboards
MCP Dashboards 是一个 MCP 服务,可在 AI 对话中直接渲染交互式图表、仪表板、流程图和 KPI 组件。它面向需要把分析结论可视化的用户,无需切换到电子表格或其他工具。
主要功能
- 0132 个图表工具,覆盖 45+ 图表子类型
- 0221 个内置主题与多种视觉目录
- 03实时轮询,按计时器自动刷新数据
- 04支持 PNG、PPT、A4 与 CSV 导出
- 05可编辑流程图,支持拖拽与步进播放
适用场景
- 01在对话中比较季度收入并生成柱状图
- 02以仪表板展示月度销售 KPI 与趋势线
- 03实时监控加密货币价格或投资组合总额
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 render_* 系列图表工具、仪表板与目录工具,客户端调用后在对话内渲染结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Dashboards
你的 AI 能聊数据,现在还能展示数据。
问题
我们用 AI 做各种事——分析、报告、策略。但当你真正想看清数据中的故事时,却只能把数字复制到电子表格里,再自己制作图表。对话中有洞见,数据可视化却在别处。
解决方案
MCP Dashboards 可在 AI 对话中直接呈现交互式图表、仪表板和 KPI 小组件。它提供 32 种图表工具,涵盖 45 种以上的图表子类型(柱状图支持堆叠和下钻,hero 有 11 种变体,流程图有 6 种节点类型和 5 种边样式等)、21 种主题、4 个可视化探索目录、实时轮询以及 PNG/PPT/A4 导出功能——全部由单个 MCP 服务提供。无需切换浏览器标签页,无需复制粘贴,也无需切换上下文。
适用范围
| 客户端 | 在聊天中交互式呈现 | 方式 |
|---|---|---|
| Claude Desktop | 是(MCP Apps) | 使用下方的 stdio 配置 |
| claude.ai(网页) | 是(MCP Apps) | 远程连接器 |
| ChatGPT | 是(MCP Apps) | 通过 Developer mode 使用远程服务(Settings → Apps → Advanced) |
| VS Code GitHub Copilot | 是(MCP Apps) | stdio 配置 |
| Goose / Postman / MCPJam | 是(MCP Apps) | stdio 或远程连接 |
| Claude Code(CLI) | 工具 + 浏览器预览备用方案 | 使用下方的 claude mcp add;图表会在本地浏览器标签页中打开 |
ChatGPT 和 claude.ai 需要托管在远程的端点(见下方的 Streamable HTTP 模式);桌面客户端则会在本地启动服务。
重要
唯一的官方 npm 包是
mcp-dashboards,由本仓库发布。名称相似的软件包并非我们的产品:mcp-dashboards-shared曾是恶意软件(参见 OSSF 公告 MAL-2026-4296,已于 2026 年 5 月由 npm 安全团队移除)。请仅安装mcp-dashboards。
快速开始
Claude Desktop
将以下内容添加到你的 claude_desktop_config.json:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"dashboard": {
"command": "npx",
"args": ["-y", "mcp-dashboards", "--stdio"]
}
}
}
Claude Code / VS Code
claude mcp add dashboard -- npx -y mcp-dashboards --stdio
远程连接(Streamable HTTP)
npx mcp-dashboards
# Server starts on http://127.0.0.1:3001/mcp
默认绑定到 localhost。如果需要将其开放到网络,或允许来自非 localhost 来源的浏览器访问,请参阅配置。
支持的客户端
适用于任何兼容 MCP Apps 的客户端:Claude Desktop、Claude Web、VS Code(GitHub Copilot)、Goose、Postman、MCPJam。ChatGPT 支持正在逐步推出。
只需开口询问
无需学习 API。用日常语言描述你的需求:
- “按地区对比 Q1 和 Q2 的收入,并用柱状图展示”
- “用圆环图展示我的投资组合配置,并采用董事会议室主题”
- “构建一个包含月度销售 KPI 和趋势线的仪表板”
- “在世界地图上按国家展示网站流量”
- “实时跟踪 Bitcoin 价格,每 30 秒更新一次”
- “展示从注册到购买的转化漏斗”
- “用雷达图按业绩为团队排名”
- “将我的多 Agent 工作流绘制成流程图,并允许我逐步查看”
AI 会选择合适的工具、整理数据,并在对话中直接渲染图表。点击任意数据点,即可提出后续问题。
不知道从何开始? 询问 “显示目录”——这会打开一个主仪表板,其中每个自定义维度都有一个实时可视化图块(图表对应真实柱状图,主题对应饼图,主视觉变体对应进度环,效果对应霓虹发光卡片)。点击任意图块,再点击 Ask,即可深入查看对应的子目录。
交互式图表,而非图片
每个图表都是直接在对话中渲染的交互式 HTML:
- 在对话中探索——悬停查看工具提示,点击进行选择(结果会反馈给 AI),通过面包屑导航逐层深入,在地图和热力图上滚动缩放,最高可放大 12 倍
- 可编辑流程图——拖动节点、多选、右键重命名,通过缩略导航图和节点列表进行导航,逐步播放流程,然后将布局同步回 AI 以保存
- 实时轮询——按定时器从任意 API 自动更新的实时图表
- 导出到任意位置——PPT(16:9 幻灯片)、A4(分页并智能分页)、PNG、CSV
所有工具
| 工具 | 类型 | 最适合 | |------|------|----------| | `render_pie_chart` | 饼图/环形图 | 构成——“整体由什么组成?” | | `render_bar_chart` | 柱状图 | 比较——垂直、水平、堆叠、下钻 | | `render_line_chart` | 折线图/面积图 | 趋势——平滑曲线、渐变填充、时间序列 | | `render_scatter_chart` | 散点图 | 关系——单点标签、注释、象限 | | `render_candlestick_chart` | 蜡烛图 | 金融——带成交量柱的 OHLC 数据 | | `render_radar_chart` | 雷达图 | 多维度比较——技能、分数、产品属性 | | `render_treemap_chart` | 矩形树图 | 层级——按数值调整大小的嵌套矩形 | | `render_sankey_chart` | 桑基图 | 流向——阶段间的资金、用户或资源流动 | | `render_wordcloud_chart` | 词云 | 频率——根据文本分析生成不同大小的词语 | | `render_boxplot_chart` | 箱线图/小提琴图 | 分布——四分位数、异常值、密度形状 | | `render_live_chart` | 实时图表 | 实时数据——按定时器自动轮询任意 MCP 工具 | | `poll_http` | 数据代理 | 从任意 HTTP 端点获取 JSON——使用安全预设或公开 URL | | `render_bullet_chart` | 子弹图 | KPI 与目标对比——带标签的 2-8 个区间带 | | `render_lollipop_chart` | 棒棒糖图 | 排名——简洁的圆点,可选目标标记 | | `render_dumbbell_chart` | 哑铃图 | 差距——带刻度标签和区间带的前后对比 | | `render_variance_chart` | 差异图 | 预算——实际值与预算对比,并用颜色标示超支或节余 | | `render_funnel_chart` | 漏斗图 | 转化——分阶段展示流失,并标注百分比 | | `render_slope_chart` | 斜率图 | 变化——两个时期之间的排名变化 | | `render_waffle_chart` | 华夫图 | 比例——用 10x10 网格展示构成 | | `render_sparkline_chart` | 迷你图 | 紧凑趋势——带变化指标的迷你卡片 | | `render_radial_cluster` | 径向图 | 健康检查——带状态的多指标环形仪表 | | `render_waterfall_chart` | 瀑布图 | 累积变化——展示影响的级联柱形 | | `render_heatmap_chart` | 热力图 | 强度——用颜色映射的二维网格 | | `render_geo_chart` | 地理图/地图 | 地理数据——按数值用颜色标示国家(分级统计地图) | | `render_bubble_map` | 气泡地图 | 标记地图——在纬度/经度坐标处显示不同大小的圆圈 | | `render_timeline_chart` | 时间线 | 进度——带状态指示器的里程碑跟踪器 | | `render_flowchart` | 流程图 | 工作流、流水线、架构、Agent 流程——基于卡片的丰富 DAG,支持状态、拖动、缩放和实时轮询 | | `render_hero_metric` | 主视觉指标 | KPI 小组件——11 种变体(进度环、宝石、光球、NPS 等) | | `render_dashboard` | 仪表板 | 全方位展示——KPI 卡片和响应式网格中的多个图表 | | `render_table` | 表格 | 数据——可排序列、条纹行、CSV 导出 | | `render_from_json` | 自动检测 | 任意 JSON 数据——自动选择最合适的图表 | | `render_from_url` | URL 获取 | 从 URL 获取 JSON 并自动生成可视化 |发现/目录——用于浏览可用内容的可视化入口:
| 工具 | 展示内容 | 适用场景 |
|---|---|---|
render_catalog | 包含 4 个实时预览图块的主目录 | 不知道从哪里开始。点击任意图块,点击 Ask,然后深入查看。 |
render_chart_catalog | 全部 32 种图表类型及迷你预览 | 为数据寻找合适的图表 |
render_theme_catalog | 全部 21 种主题及颜色/排版/效果 | 选择主题 |
render_hero_catalog | 全部 11 种主视觉指标变体 | 选择 KPI 小组件样式 |
render_effects_catalog | 全部 5 种效果预设,每种都应用于实际卡片 | 选择动画/光晕样式 |
每种图表仍可通过 typography=<name> 配置排版(主题中列出了 8 种选项)——只是没有单独的目录,因为如果不为每张卡片加载字体,这 8 种选项在视觉上完全相同;而为了一个预览工具进行构建并不值得。
应该使用哪种图表?
| 问题 | 最佳图表 | 也适用 | |----------|-----------|------------| | “整体由什么构成?” | 饼图/华夫饼图 | 矩形树图、堆叠条形图 | | “数值如何比较?” | 条形图 | 棒棒糖图、子弹图、雷达图 | | “随时间的趋势如何?” | 折线图 | 迷你图、斜率图 | | “是否达到了目标?” | 子弹图 | 差异图、径向图 | | “差距在哪里?” | 哑铃图 | 差异图 | | “X 与 Y 有什么关系?” | 散点图 | 热力图 | | “转化率是多少?” | 漏斗图 | 瀑布图、桑基图 | | “各时期之间发生了哪些变化?” | 斜率图 | 哑铃图 | | “财务状况如何?” | K 线图 | 折线图 | | “展示 KPI” | 核心指标 | 仪表板 | | “分布情况如何?” | 箱线图 | 小提琴图(相同工具) | | “资金/流量流向哪里?” | 桑基图 | 矩形树图 | | “各选项在不同维度上的得分如何?” | 雷达图 | 热力图 | | “热门关键词有哪些?” | 词云 | 条形图、矩形树图 | | “用户/销售/收入分布在哪里?” | 地理地图 | 气泡地图、热力图 | | “实时监控” | 实时图表 | - |主题
内置 21 种主题。将 theme 传递给任意工具。
| 系列 | 主题 |
|---|---|
| 经典 | boardroom、corporate、sales-floor、golden-treasury、clinical、startup、ops-control、tokyo-midnight、zen-garden、consultant |
| 黑色/AI | black-tron(青色霓虹)、black-elegance(暖金色)、black-matrix(绿色黑客风) |
| 森林 | forest-amber(秋色)、forest-earth(赤陶色) |
| 天空 | sky-light(清爽蓝色)、sky-ocean(深海军蓝)、sky-twilight(日落色) |
| 办公 | office-red(企业红、白色背景——适合报告) |
| 灰色/ML | gray-hf(暖黄色点缀)、gray-copilot(深色背景上的青绿色) |
可将 palette、typography(8 种选项:system、mono、professional、editorial、bold、techno、cyberpunk、luxury)和 effects(5 种预设:none、subtle、shimmer、neon、energetic)自由组合。
实时轮询
可从任意 API 自动更新的实时图表。实时图表通过 poll_http 轮询数据,该工具支持两种模式:
安全预设(经过身份验证的 API)
通过环境变量配置预设。凭据保留在服务端,不会出现在对话中。
{
"mcpServers": {
"dashboard": {
"command": "npx",
"args": ["-y", "mcp-dashboards", "--stdio"],
"env": {
"POLL_PRESET_T212_CASH_URL": "https://live.trading212.com/api/v0/equity/account/cash",
"POLL_PRESET_T212_CASH_HEADERS": "{\"Authorization\": \"Bearer YOUR_API_KEY\"}"
}
}
}
}
然后询问:“实时监控我的投资组合总额和盈亏” - AI 会使用 render_live_chart,并设置 pollArgs: { preset: "t212_cash" }。
命名方式: POLL_PRESET_<NAME>_URL 和 POLL_PRESET_<NAME>_HEADERS(JSON 对象)。
公共 URL(无需身份验证)
对于公共 API,直接使用 URL:
“显示每 30 秒更新一次的 Bitcoin 价格” - 使用 pollArgs: { url: "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" }。
工作原理
基于 MCP Apps 构建。你要求 AI 将数据可视化,AI 会调用合适的工具,图表随即以内嵌形式显示在对话中。完全自包含——无需 CDN,也不会发出外部请求。
支持 MCP Apps(内嵌渲染):Claude Desktop、VS Code Insiders + MCP Apps 扩展、Goose、Postman。
不支持 MCP Apps? 没问题。每个图表响应还会附带一个可点击链接,可在浏览器中打开同一交互式图表:
http://localhost:PORT/chart/{id}- 聊天中的可点击链接。由绑定到 127.0.0.1 的轻量级同机 HTTP 服务提供支持,并在首次预览请求时按需启动。file:///.../chart-{id}.html- 可持久保存和分享的文件。HTML 内容相同,会写入磁盘,因此可以通过电子邮件发送、存档,或在服务关闭后打开。
为什么同时提供两种链接:Claude Code (VS Code) 会从聊天 Markdown 中移除 file://、vscode:// 和 command:// URL scheme,因此只有 http:// 能生成可用的可点击链接。提供 file:// 路径是为了分享和离线查看。工具注释(readOnlyHint、idempotentHint、openWorldHint)可帮助客户端理解工具行为。
配置
均为可选项。默认值安全可靠——仅在需要覆盖时设置。
| 环境变量 | 默认值 | 作用 |
|---|---|---|
MCP_DASHBOARDS_RETAIN_DAYS | 7 | 图表预览 HTML 文件在磁盘上的保留时长。0 表示禁用自动清理。 |
MCP_DASHBOARDS_DISABLE_PREVIEW | 未设置 | 紧急开关——不写入 HTML 文件、不启动预览服务,也不提供预览链接。在 MCP Apps 客户端中仍可内嵌渲染。 |
MCP_HTTP_BIND_HOST | 127.0.0.1 | HTTP 传输的绑定主机。默认仅绑定本地主机。仅在信任所在网络时才设置为 0.0.0.0。 |
MCP_CORS_ALLOWED_ORIGINS | 仅限 localhost | 允许从浏览器调用 HTTP 端点的来源列表,以逗号分隔。设置此项可添加非 localhost 来源(例如 https://your-app.com)。 |
MCP_URL_ALLOWLIST | 空 | 可绕过 render_from_url / poll_http SSRF 防护的主机名列表,以逗号分隔。仅用于你完全信任的内部端点。 |
MCP_OUTBOUND_RATE_PER_SEC | 10 | 对出站 HTTP 调用按主机限流。 |
MCP_OUTBOUND_BURST | 20 | 限流生效前可立即发出的初始请求数。 |
POLL_PRESET_<NAME>_URL | - | 用于实时轮询的服务端预设 URL。请参阅实时轮询。 |
POLL_PRESET_<NAME>_HEADERS | - | 与对应预设 URL 匹配的身份验证标头(JSON 对象)。 |
磁盘上的内容
图表 HTML 文件写入 <system temp>/mcp-dashboards/,并在 7 天后自动删除。建议使用图表自带的下载按钮(PNG / PPT / A4)永久保存内容。
随时让 AI “列出图表文件” 或 “删除超过 1 天的图表文件”——这会调用 list_chart_files / delete_chart_files。
**要求:**Node.js 18+。
贡献
git clone https://github.com/KyuRish/mcp-dashboards.git
cd mcp-dashboards
npm install
npm run build
npm run serve # http://localhost:3001
npm run dev # watch mode
支持
如果 MCP Dashboards 对你有帮助:
由 Rishabh Dogra 构建——欢迎在 LinkedIn 上联系。
隐私
所有处理均在本地完成。不会收集、传输或在外部存储任何数据。
只有在你明确提出要求时才会进行外部调用——render_from_url 和 poll_http 需要使用你提供的 URL 或预设。二者都会拒绝访问私有、环回或链路本地地址(例如你的 192.168.* 网络、位于 169.254.169.254 的 AWS 元数据等),避免被提示词注入的 AI 悄悄访问内部服务。它们还会按主机名限流,防止失控循环导致你的 IP 被真实 API 封禁。
环境变量预设中的凭据不会离开你的设备。浏览器预览服务和可选的 HTTP 传输默认都绑定到 127.0.0.1,其他设备无法访问。图表 HTML 文件保存在系统临时文件夹中,并在 7 天后自动删除。请参阅配置以更改上述设置。
许可证
FSL-1.1-MIT - 可免费用于任何用途,但不得用于构建有竞争关系的商业产品。每个版本在发布两年后转为 MIT 许可证。如需商业授权,请联系 [email protected]。
第三方软件
打包的 UI 产物(dist/mcp-app.html)内嵌了来自 Chart.js、html2canvas-pro、Luxon、TopoJSON 和 Dagre 项目的开源库,这些库依据 MIT 或 ISC 许可证分发。完整的署名信息和许可证文本见 THIRD_PARTY_LICENSES.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。


