Evidence.dev 调研:SQL + Markdown + MCP Agent,把 BI 装进代码仓库的新范式

52次阅读
Evidence.dev 调研:SQL + Markdown + MCP Agent,把 BI 装进代码仓库的新范式

一句话钩子:6849★ · MIT · SvelteKit · DuckDB WASM —— 当所有 BI 厂商都在抢 ”AI Copilot 按钮 ” 时,Evidence 把整个 BI 平台直接搬进了你的 git 仓库,让 SQL 和 Markdown 成为报表的唯一真理,agent 通过 MCP 直接读你仓库里的报表


写在前面:BI 的两条路线

2026 年的 BI 战场正在分裂成两条路线:

  • A 路线:拖拽 + AI 助手 —— Superset、Metabase、Looker Studio、Tableau。用户友好、所见即所得,AI 在旁边给建议。问题:报表逻辑和配置藏在数据库 / YAML / GUI 状态里, 没法 code review、没法 diff、没法让 agent 自动改
  • B 路线:代码即报表 —— Evidence.dev、Lightdash、Hex。把报表写成 .md 文件,SQL 写在代码块里,版本管理走 git。

我们今天讲 Evidence 是因为它把 B 路线推到了一个极端:Markdown + SQL + 30+ 组件 + Parquet 跨源查询 + MCP 暴露给 Agent,已经不是一个 ” 轻量 BI 工具 ”,而是一个“ 可被 AI 直接消费的 BI 数据产品 ”


一、它解决什么问题

维度 数值
GitHub evidence-dev/evidence
Stars 6,849 ⭐(2026-08-14)
Forks 394
Open issues 271(活跃)
License MIT
首次 commit 2021-05-27(5 年)
主仓最近 push 2026-02-18(子包仍在 2-6 月活跃发版)
体积 296 MB(含 11MB 示例 DuckDB)
贡献者 68 人 / 总提交 9,853
核心维护者 ItsMeBrianD (2049) / hughess (1600) / archiewood (1556) / zachstence (1496)
默认分支 main
协议 MIT(双轨:Core 开源 + Studio 商业云)

一句话定位:”Business intelligence as code: build fast, interactive data visualizations in SQL and markdown”。

痛点直击
1.
报表逻辑黑洞 —— Superset 的图表配置存数据库,Metabase 存 JSON,Tableau 存 .twbx。改个图表,code review 无门,事故复盘无据。
2.
Agent 拿不到报表 —— 现有 BI 都是 GUI,AI 只能截图 OCR 解析。Evidence 直接把报表变成 .md 文件,Claude / Cursor / 任何 Coding Agent 都能读、能改、能 commit
3.
跨源查询靠 ETL —— 要查 Postgres + Snowflake + Google Sheets?以前必须 ETL 进数仓。Evidence 用 Parquet 中转 让 SQL 直接跨源 join。


二、核心能力:Everything as Code

Evidence 把 ”BI 平台 ” 拆成 5 个代码化对象,每个都有对应文件:

对象 形式 你写什么
数据源 sources/<name>/connection.yaml + .sql 一次抽取,Parquet 中转
数据查询 Markdown 文件里的 “`sql 块 任意 SQL,引用数据源
组件 Markdown 里的标签语法 <BarChart data={query} />
页面模板 一个 .md 文件 循环 / 条件 / 模板化生成
访问控制 access.yaml 页面级 + 行级权限

2.1 数据源架构(独家亮点)

这是 Evidence 最具技术含量的设计 —— Parquet 跨源查询

PostgreSQL ─┐
Snowflake  ─┤   npm run sources
BigQuery   ─┤   ─────────────►  Parquet 文件
Google Sheets ─┤                    │
CSV       ─┘                       ▼
                              Evidence SQL Engine
                              (基于 DuckDB WASM)
                                    │
                                    ▼
                          你的 .md 报表里任意 join
  • 数据源连接器支持 16+:BigQuery / Snowflake / Redshift / PostgreSQL / Timescale / Trino / MS SQL Server / MySQL / SQLite / DuckDB / MotherDuck / Databricks / Cube / Google Sheets / CSV / JavaScript
  • npm run sources 触发抽取,只重跑变化的源(增量感知)
  • 大数据源(百万行 +)支持 NODE_OPTIONS=--max-old-space-size=4096 调内存
  • 构建时可注入变量:EVIDENCE_VAR__client_id=123 → SQL 里 ${client_id} 引用

这个架构跟 Cube.js(282)的 ” 语义层 ” 思路有点像,但 Evidence 是 消费端 ,Cube.js 是 供应端。两者甚至可以串起来用 —— Evidence docs 里直接支持 Cube 作为数据源。

2.2 Markdown 报表语法

一个 .md 文件里能写:

# Monthly Revenue

```sql orders_by_month
select date_trunc('month', order_date) as month,
       sum(amount) as revenue
from needful_things.orders
group by 1
order by 1
```

<BarChart data={orders_by_month} x=month y=revenue />

{#each months as month}
  ## {month.label}

  <DataTable data={orders_by_month.filter(r => r.month === month.value)} />
{/each}
  • SQL 块命名 orders_by_month → 后续组件直接引用
  • 模板语法 Svelte 风格({#each} / {#if} / {variable}
  • 30+ 组件:<AreaChart> / <BarChart> / <LineChart> / <DataTable> / <Dropdown> / <TextInput> / <Map> / <Heatmap> / <BigValue> / <FunnelChart>

2.3 Git 集成(”Ship like software”)

官网最打眼的卖点不是技术,是 工作流

能力 Evidence 给的
Push to Deploy merge → 自动部署到 Netlify / Vercel / 自托管
Instant Rollback 任意 commit 一键回滚
Branch Previews 每个 PR 一个独立预览 URL
CI PR 自动跑校验 + e2e 测试

这意味着改报表跟改代码走完全一样的流程 —— code review、版本对比、权限审批、A/B 上线 全部免费拿到。这是 Superset/Metabase 永远给不了的能力。

2.4 部署选项

  • Cloud:Evidence Studio(闭源 SaaS,含 analytics agent)
  • Netlify / Vercel:静态站点天然契合
  • 自托管:Docker / Node.js / 任意静态服务器
  • 嵌入:Embedded JS SDK / White-labeled 完整品牌定制

三、Analytics Agent:MCP 时代的差异化(最值得装的理由)

这是 2026 年 Evidence 区别于所有其他 BI 的 最大杀招

官网 8/14 改版后重磅推出的 “Analytics Agent”:

维度 详情
协议 MCP(Model Context Protocol,Claude Desktop / Cursor / ChatGPT / OpenClaw 都能接)
可用入口 Slack、MCP client、CLI
核心能力 1 Understands your project —— 把仓库里所有 dashboard 当作 agent 的 context,不需要 RAG 重新索引
核心能力 2 Builds new insights —— 团队成员让 agent 自己建报表 + 自己存档
核心能力 3 Custom context —— 你可以在仓库里写一份 ” 业务说明 markdown”,agent 立刻 get
核心能力 4 Skills —— 自建分析 playbook(包含可视化 + 输入框 + 澄清问题)
核心能力 5 Evals & Observability —— 跟踪 agent 准确率 + 失败分析

对飞熊读者(INTP / Coding Agent 重度用户)的真实意义:你不用截图给 AI 看你的 BI 了,你直接把 Evidence 仓库 clone 下来,agent 自己读、自己分析、自己提修改 PR。

架构层价值

传统 BI:数据 → BI 平台 → 截图 → OCR → AI 看图分析
Evidence:数据 → .md 报表(版本管理) → MCP → Agent 直接读源码 → Agent 自己改 → PR

后者是 机器原生 的,前者是 机器模拟人。在 2026 年的 AI 时代,前者的天花板肉眼可见。


四、可视化与编辑器能力

4.1 30+ 组件矩阵

类别 组件数 代表
图表 12 AreaChart / BarChart / LineChart / ScatterPlot / BubbleChart / FunnelChart / HeatMap / Sankey / USMap / Map / ECharts / Plot
数据展示 6 DataTable(带 sparkline + 副总计 + 图片)/ BigValue / Sparkline / Html / Tabs / Accordion
输入控件 8 Dropdown / TextInput / NumberInput / DateInput / DateRange / Checkbox / Radio / Slider
布局 4 Grid / Tabs / Columns / Modal
自定义 Custom Svelte components(套娃复用)
导出 2 PDF / XLSX(multi-tabbed)

4.2 编辑器生态

工具 状态
VSCode 扩展 Evidence.evidence-vscode —— 一键建项目 + 状态栏 Start 按钮
CLI npx degit evidence-dev/template
Cloud Editor Evidence Studio 自带(无需本地安装)
第三方 IDE JetBrains 系列没有官方插件,但 SvelteKit 生态能 cover

4.3 报表消费

能力 实现
Scheduled Emails 任意页面定时发到邮箱(日报 / 周报 / 月报)
Page-level Access 单文件 access.yaml 控制谁能看
Row-level Access 按行级数据权限
Usage Analytics 哪些报表被读、谁在读(read receipts)
Embed JS SDK / iframe + token 签名
White-label 完整品牌定制(logo / 域名 / 主题色)
Multi-tenancy 多客户 / 多工作区 / 多权限

五、对比 Superset / Metabase / Lightdash / Hex / Cube.js

把 Evidence 跟已调研的 14 篇 BI / 数据栈项目放一起看:

维度 Evidence.dev Superset (270) Metabase (274) Lightdash (272) Hex Cube.js (282)
范式 Code-based (MD+SQL) Drag-and-drop Drag-and-drop Code-based (YAML+SQL) Notebook+SQL Headless 语义层
License MIT Apache-2.0 AGPL+Commercial MIT 闭源 Apache-2.0
Stars 6.8K 66K 48K 4.5K 5.5K
适合谁 工程师 + Agent 全公司 全公司 数据团队 数据科学家 数据团队 / BI 厂商
报表存在哪 .md 文件(git) DB metadata DB metadata .yml 文件(git) Notebook API / Cache
Agent 接入 原生 MCP 部分 MCP 支持
跨源查询 Parquet 中转 弱(要 JDBC) dbt 集成 SQL cells 任意下游
学习曲线 中(要会 Svelte+SQL) 中(要会 dbt+YAML)
部署方式 Static / Cloud Docker Docker / Cloud Cloud / Self Cloud API
Git 版本管理 ✅ 天生 ❌ DB only ❌ DB only ⚠️ 部分
AI Agent 改报表 ✅ PR 直提 ⚠️ 部分 ⚠️ ⚠️
最新动态 Studio 重写(26Q2) 5.x 持续 0.5x 持续 dbt 深度集成 Series C 语义层标准

核心判断

选 Evidence 的场景
– ✅ 你的团队主要写代码 / 写 SQL,不想碰拖拽 GUI
– ✅ 你希望报表逻辑可 code review / 可版本回溯 / 可让 Coding Agent 改
– ✅ 你用 Claude / Cursor / ChatGPT 等 Coding Agent 想让它
直接读报表、改报表

– ✅ 你需要跨 PostgreSQL + Snowflake + Google Sheets 跨源 join,不想搞 ETL
– ✅ 你想用 git PR 工作流管理报表上线

不选 Evidence 的场景
– ❌ 你的报表消费者主要是
非技术 PM / 业务方(他们不会写 SQL / Markdown)
– ❌ 你已经重度投入 dbt + Lightdash,且不需要 Agent 集成
– ❌ 你的数据量是 TB 级实时(Parquet 中转架构会有延迟)
– ❌ 你想要成熟的 admin UI / 权限模型(Evidence Studio 在补,但还没 Metabase 成熟)

跟 7/15 EmDash CMS(141)的横向关系

维度 Evidence EmDash
底层 SvelteKit + DuckDB Astro + MCP
领域 BI 报表 内容 CMS
核心范式 SQL+MD 写报表 Markdown 写文章
Agent 接入 Studio Analytics Agent 原生 MCP server
目标用户 数据团队 内容团队

两者代表同一波趋势:把 ” 专家工具 ” 从 GUI 拉回代码仓库,让 Coding Agent 能直接读写。Evidence 管数据产品,EmDash 管内容产品


六、实战:3 步跑通一个 Evidence 项目

6.1 安装(3 种方式任选)

方式 A:VSCode 扩展(最推荐)

1. VSCode Marketplace 搜
Evidence → 装 Evidence.evidence-vscode

2.
F1Evidence: New Evidence Project

3. 状态栏点
Start Evidence → 自动 npm install + npm run dev

方式 B:CLI(geek 路线)

npx degit evidence-dev/template my-bi
cd my-bi
npm install
npm run dev
# → http://localhost:3000

方式 C:Docker

docker run -p 3000:3000 -v $(pwd):/evidence evidence/dev

6.2 配数据源(5 分钟)

  1. 浏览器打开 http://localhost:3000/settings
  2. 选数据源类型(如 PostgreSQL)→ 填连接信息
  3. Evidence 自动测试连接 + 写 sources/<name>/connection.yaml
  4. sources/postgres/.sql 文件定义要抽取的表:
    sql
    -- sources/postgres/orders.sql
    select * from orders where created_at > '2026-01-01'
  5. npm run sources → 自动生成 Parquet

6.3 写第一份报表(10 分钟)

新建 pages/index.md

# Monthly Revenue

```sql revenue_by_month
select date_trunc('month', order_date) as month,
       sum(amount) as revenue
from postgres.orders
group by 1
order by 1
```

<BarChart data={revenue_by_month} x=month y=revenue title="Revenue Trend" />

保存 → dev server 自动重载 → http://localhost:3000 看到图表。

6.4 部署(选一个)

# Vercel(零配置)npx vercel

# Netlify(拖拽 dist 目录也行)npm run build && netlify deploy --prod --dir=build

# 自托管(任何静态服务器)npm run build
# 把 build/ 目录拷到 nginx / caddy

6.5 接 Claude Desktop(杀手级玩法)

~/.config/claude_desktop_config.json

{
  "mcpServers": {
    "evidence": {
      "command": "npx",
      "args": ["-y", "evidence-mcp-server"],
      "env": {"EVIDENCE_PROJECT_PATH": "/path/to/your/project"}
    }
  }
}

然后在 Claude Desktop 里直接说:” 帮我把月营收图表改成按品类拆分 ”,agent 自己读 .md → 自己改 SQL → 自己提 PR。


七、风险与坑

7.1 商业化分叉风险 ⚠️

Evidence 现在是 双轨制

Evidence Core(MIT 开源)

Evidence Studio(闭源云服务,含 analytics agent / cloud editor / embedded / white-label)

类似 MongoDB(SSPL)+ Atlas / GitLab CE + EE 的关系。风险 :未来如果 Studio 跑通,Core 可能放缓。 目前 2026 上半年观察:Core 仍在 2-6 月频繁发版(universal-sql / trino / sqlite / snowflake 等数据源子包都更新),活跃度 OK,但需要长期跟踪。

7.2 SvelteKit 学习曲线

Markdown 模板语法是 Svelte 风格({#each} / {#if}),如果团队只用过 React/Vue,需要适应期。 模板能力远强于普通 BI —— 真正的 ” 用代码表达报表逻辑 ”。

7.3 Parquet 中转架构的延迟

每次报表查询会触发 Parquet 抽取(如果源数据变了)。TB 级实时场景不适合,但百 GB 级以下 + ETL 已经处理过的数据源,体验非常好。

7.4 Markdown 报表对非技术 PM 不友好

业务方不会写 .md 不会写 SQL。解法
– 用 Evidence Studio 的 cloud editor(GUI)
– 或者用 Hex(notebook 风格)+ 团队里有 SQL 能力的人

7.5 Open issues 271 个

不算失控(Metabase 是 4K+),但说明:
– 项目活跃是真活跃
– 也意味着响应慢的 issue 不少
– 重大 bug 修复 SLA 不一定有保证

7.6 vs dbt 生态的边界

Lightdash(272)跟 dbt 是深度绑定(dbt models 直接当数据源)。Evidence 也支持 dbt,但定位不同:Evidence 是消费端,Lightdash 是 dbt-native BI。如果你已经重度用 dbt,Lightdash 更顺。


八、总结:3 个 ” 最值得装的理由 ” + 1 句 ” 先试一周 ”

最值得装的理由

  1. MCP Analytics Agent 是 2026 年 BI 唯一杀招 —— 其他 BI 都在给 ”AI 按钮 ” 做装饰,Evidence 直接让 agent 读写你的报表仓库。agent 原生消费 BI 数据,这不是小升级,是范式跃迁。
  2. Code review / Git / CI 是 BI 从未有过的工作流 —— 报表跟代码走完全一样的发布流程:A/B 上线、回滚、PR 审批、分支预览。 从此告别 ” 谁改了我的报表 ” 事故
  3. 跨源 Parquet 查询是中型公司的 ETL 救星 —— 不需要 Airbyte + dbt + Cube.js 全链路搭一遍,直接 SQL 跨 PostgreSQL + Snowflake + Google Sheets join。 省掉一条 ETL pipeline

先试一周

如果你有以下任一场景,今晚花 30 分钟跑一下

npx degit evidence-dev/template my-bi-test
cd my-bi-test && npm install && npm run dev

接一个你已有的 PostgreSQL / BigQuery 数据源 → 写一份月营收报表 → 改改 SQL 看 dev server 实时刷新 → 推到 git 看 PR 预览。如果你在第 20 分钟开始想 ” 为什么 Superset 不这么做 ”,那就对了


参考

正文完