mcpField
S
search2chart-mcp

search2chart-mcp

本地服务
github.com/iqingyoung数据与分析08 周前更新

关于 search2chart-mcp

search2chart-mcp 是面向 MCP 客户端的图表服务,可将表格数据或 CSV/XLSX 文件转换为 ECharts 图表。它针对不同客户端调整内联图片输出,并同时生成可交互 HTML。

主要功能

  1. 01表格数据生成图表
  2. 02读取 CSV/XLSX 文件
  3. 03适配多种内联图片格式
  4. 04生成可交互 HTML
  5. 05列出图表类型与配色

适用场景

  1. 01在 Agent 对话中查看数据图表
  2. 02将 CSV 或 XLSX 转为可交互图表
  3. 03排查客户端支持的图片格式

MCP 相关

作为 MCP 服务,提供从结构化数据或文件生成图表、列出图表类型的工具。可通过配置选择内联图片输出模式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"iqingyoung-search2chart": {
"command": "npx",
"args": [
"-y",
"search2chart-mcp"
]
}
}
}
启动命令npx -y search2chart-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmsearch2chart-mcp0.4.1

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
dataarray是表格数据:数组的数组(首行可当表头)或对象数组
titlestring否图表标题
widthnumber否图表宽度(px)
heightnumber否图表高度(px)
columnsarray否可选列名
paletteenum否配色方案default | warm | cool | business
chartTypeenum否auto 按数据自动选 饼/柱auto | bar | line | pie
returnDataboolean否是否附带清洗后的完整数据(JSON)
returnHtmlboolean否是否额外返回 HTML 原文
returnImageboolean否是否返回 image content block(SVG,部分客户端不支持会报错)

详细介绍

来自项目 README

DSH Market MCP Downloads

search2chart-mcp

Turn any tabular data into inline charts directly inside agent conversations. Zero runtime dependencies, multi-client adaptive.

把「任意表格数据」变成直接内联在 agent 对话流里的图表。零运行时依赖,多端自适应。

image

安装

# 方式一:DSH 原生插件(DeepSeek Harness 用户推荐,真·内联)
dsh plugin --profile web add dsh-chart

# 方式二:npx(通用 MCP server,无需 clone)
npx search2chart-mcp

# 方式三:git clone
git clone https://github.com/iqingyoung/search2chart-mcp.git

两条路径

路径目录适用
通用 MCP servermcp/ZCode / Claude Desktop / Cursor / WorkBuddy / Trae / Codex / DSH 通用
原生 DSH 插件dsh/DeepSeek Harness(真·内联,图片直接进对话)
  • 用 MCP 客户端 → 用 mcp/,对话框直接出图
  • 用 DSH 且想要原生体验 → 用 dsh/;DSH 里也能用 mcp/(走文件链接)
  • 两者可并存

快速开始

1. 在你的 MCP 配置里加入
{
  "mcpServers": {
    "search2chart-mcp": {
      "command": "npx",
      "args": ["search2chart-mcp"],
      "env": {}
    }
  }
}

如果 npx 拉不到,用 clone 后的绝对路径:"command": "node", "args": ["<仓库>/mcp/server.js"]

2. 首次接入:测试你的 Agent 能渲染哪种图片

不同 Agent 渲染器对图片格式支持各异。先用 all 模式一次性测试:

临时配置(在 MCP 配置里加环境变量):

{
  "env": {
    "ECHARTS_INLINE_MODE": "all"
  }
}

发给 Agent 的测试 prompt:

用 chart_from_data 生成一个简单柱状图。
数据:[["城市","销量"],["北京",120],["上海",200],["广州",150]]
标题:城市销量对比
chartType:bar

Agent 返回 3-4 行图,分别标记为:

  • 【1·data URI】 — 自包含 base64,无需联网
  • 【2·localhost http】 — 本地 HTTP 服务
  • 【3·file://】 — 本地文件路径
  • 【4·CDN 公网 https】 — GitHub + jsDelivr 公网地址

哪个在对话框里真正渲染成了图片,你的 Agent 就支持哪种。

3. 固定模式
能渲染的格式设置
data URI ✅ECHARTS_INLINE_MODE=inline(默认)
file:// ✅ECHARTS_INLINE_MODE=file
localhost http ✅ECHARTS_INLINE_MODE=inline
CDN 公网 https ✅ECHARTS_INLINE_MODE=cdn
MCP image block ✅inline + 调用时 returnImage:true
都显示不了ECHARTS_INLINE_MODE=none,用 .html 交互图
Agent 自动检测

工具结果里已内置 Agent 指令,告诉模型如何根据用户反馈自动设置模式:

[Agent]: 返回 4 行图片,哪张正常显示?
[User]:  3正常
[Agent]: 确认了。file:// 可渲染 → 请设置 ECHARTS_INLINE_MODE=file

已知客户端实测:ZCode → file,OpenCode → inline(data URI),WorkBuddy → cdn,DSH → inline(localhost http),Claude/Cursor → inline + returnImage:true。

核心能力

多客户端内联适配

通过 ECHARTS_INLINE_MODE 环境变量控制内联行为:

模式行为适用客户端
inline(默认)data URI → localhost http → file:// 自动 fallbackOpenCode / DSH / 通用
file只输出 file:// 本地路径ZCode
cdn上传 GitHub+jsDelivr,输出公网 httpsWorkBuddy
all测试模式:一次返回所有格式首次接入时测试
none纯文本(.html 路径 + 数据),无内联纯文本模型 / 终端
CDN 公网图床
  • SVG → PNG 栅格化(@resvg/resvg-js,可选依赖)
  • GitHub Contents API 上传 + jsDelivr CDN 加速
  • GitHub Actions 定时清理(默认保留 3 天)
清洗数据留存

结果附带完整数据(JSON,代码块包裹),让纯文本模型在上下文里继续做占比/趋势/对比分析,无需看图。returnData: false 可关。

自包含可交互 HTML

图表同时写入 .html 文件,浏览器打开即支持 hover / 缩放 / 类型切换 / 配色调整。

工具

工具作用
chart_from_data结构化数据 → 图表 HTML + 内联图片
chart_from_fileCSV/XLSX 路径 → 图表 HTML + 内联图片
list_chart_types列出支持的类型 / 配色与字段约定

字段约定:第一列 = 类别轴;其余列 = 数值序列(多列即多序列);chartType: auto 按数据自动选 饼/柱。

接入各客户端

详见 mcp/README.md。

目录

search2chart-mcp/
├── mcp/              # 跨端 MCP server(内联 SVG + 可交互 HTML)
│   ├── server.js     # MCP stdio 协议 + 工具入口
│   ├── lib/
│   │   ├── chart.js      # 数据归一化 + ECharts option
│   │   ├── html.js       # 自包含可交互 HTML
│   │   ├── svg.js        # 零依赖 SVG 渲染器
│   │   ├── httpserver.js # 本地 HTTP 服务
│   │   ├── rasterize.js  # SVG→PNG
│   │   ├── upload.js     # GitHub + jsDelivr CDN
│   │   └── parse.js      # CSV/XLSX 解析
│   └── scripts/
│       ├── selftest.js    # 端到端自检
│       └── verify_cdn.cjs # CDN 端到端验证
├── dsh/              # 原生 DSH 内联插件
├── LICENSE
└── README.md

License

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。