coral 是什么?

Coral 是一个用 Rust + Apache DataFusion 构建的本地优先 SQL 运行时,给 AI agent 提供「一条 SQL 接口查遍 API、文件和实时数据源」的能力:agent 写 SQL,Coral 翻译成对应的 API 调用或文件读取再返回单一结果集,并内置 MCP server 把整个运行时以只读 SQL 数据库的形式暴露给 Claude Code、Codex、Cursor 等,省掉为每个数据源写 tool glue。

⭐ 4,932 Stars 🍴 159 Forks Rust Apache-2.0 作者: withcoral 商业引流:中
来源:README 首段 + How Coral works 节 + Cargo.toml(datafusion/arrow) 查看 GitHub 仓库 →

为什么值得关注

现在 agent 访问公司数据多是「一次一个 tool」,带来 tool 调用过多、重复的 auth/分页/重试逻辑、跨源推理差、token 流量高、glue 代码脆弱。Coral 把这些换成一条 SQL 接口:多个实时源统一成 SQL 表、可跨源 JOIN、可脚本化、同一运行时通过 MCP 暴露给 agent。它给出了少见的硬 benchmark——用 Claude Opus 4.6 在 82 个真实任务上对比直连 provider MCP(Datadog/Sentry/Linear/Slack/GitHub),整体准确率 +20%、成本效率 2 倍、延迟 -42%,复杂编码类任务准确率 +31%、成本效率 3.4 倍。「用 SQL 取代逐源 tool 调用」这个角度 + 可复现 benchmark + 纯 Rust 本地实现,是它 6 周拿到 3.5K★ 的根因。

来源:README 'Why Coral' + benchmark 段(withcoral.com/benchmarks)

核心功能

DataFusion SQL 引擎 + 跨源 JOIN 本地执行

coral-engine crate 基于 Apache DataFusion 53 + Arrow + sqlparser 实现 SQL 运行时。因为每个源都呈现为 SQL 表,可以在一条语句里 JOIN 不同源(如 linear.attachments JOIN github.pulls),Coral 先从各自后端 API/文件取数,再在本地把 JOIN 算完返回。配合 query pushdown(把过滤/列裁剪下推到源)和缓存,减少不必要的 API 流量。

来源:Cargo.toml(datafusion/arrow/sqlparser)+ README 'Joins across sources' / 'Built for production'
Source spec:YAML 声明式数据源

一个 source spec 是 YAML 文件,声明如何连到某个 API 或本地数据集、暴露哪些表和列。`coral source add github` 安装 github 源后,查询时以 github SQL schema 出现,github.issues / github.pulls 等表即可查。sources/ 目录分 core(官方捆绑)和 community 两类,coral-spec crate 负责 spec 解析。也可自己写 custom source 接任意 HTTP API 或本地数据集。

来源:README 'Sources' / 'Bundled sources' + sources/{core,community} 目录 + crates/coral-spec
内置 MCP server(只读 SQL 数据库形态)

coral-mcp crate 提供 `coral mcp-stdio`,把 Coral 以只读 SQL 数据库的形式呈现给 agent:`claude mcp add --scope user coral -- coral mcp-stdio`(Claude Code)/ `codex mcp add coral -- coral mcp-stdio`(Codex),Cursor/VS Code/Claude Desktop/OpenCode 同理。agent 用 list_catalog / search_catalog / coral.tables / coral.table_functions 做 catalog 发现,再用 SQL 查可见 schema。

来源:README 'Use Coral with an agent' + crates/coral-mcp
捆绑数据源 + 本地文件(JSONL / Parquet)

开箱支持 Datadog、GitHub、Linear、Sentry、Stripe 等多个 API 源,外加本地 JSONL 和 Parquet 文件。`coral source discover` 列出当前 build 里有哪些捆绑源;捆绑 spec 不复制到配置目录,而是查询时从当前二进制解析,升级二进制即拿到更新后的 manifest,无需重新 add 源。

来源:README 'Bundled sources' / 'Local state'
本地优先凭证管理

`coral source add` 时从同名环境变量读取变量与 secret,或 `--interactive` 交互提示;这些值存在本地(config.toml 存非密元数据,secrets 在同一本地信任边界内单独存放,imported spec 存 workspaces//sources//manifest.yaml),仅在查询时使用,凭证不离开本机。配置目录可用 CORAL_CONFIG_DIR 覆盖。

来源:README 'Authentication' / 'Local state' + crates/auth
CLI + onboard 向导 + agent skills

coral-cli 提供 `coral sql "..."` 直接跑查询、`coral source add/discover`、`coral onboard` 交互式向导。另发布一套 skills(`npx skills add withcoral/skills`)教 coding agent 走 discovery-first 的 SQL 工作流(先 list_catalog / coral.tables 发现 catalog 再写 SQL)。

来源:README Quickstart / 'Use Coral with an agent' + crates/coral-cli

技术架构

Coral 是 Cargo workspace(edition 2024),按职责拆 crate:coral-engine(DataFusion + Arrow + sqlparser 的 SQL 运行时核心)、coral-spec(YAML source spec 解析)、coral-cli(命令行)、coral-mcp(MCP stdio server)、coral-api / coral-client(API 与客户端层)、coral-app、auth/*(凭证)。数据流是「agent/用户写 SQL → Coral 解析 → 按涉及的 source 把谓词/列下推、并发用 reqwest 调各后端 API 或读本地文件 → 在本地用 DataFusion 把多源结果 JOIN/聚合算完 → 返回单一 tabular 结果集」。明确定位为只读读层(read layer by design),不做写入。sources/ 分 core(官方)和 community,UI(139 文件)和 docs(46 文件)独立。本地状态在平台配置目录:config.toml(非密元数据)、workspaces/<ws>/sources/<source>/manifest.yaml(imported spec)、secrets 单独存;捆绑 spec 不落盘、查询时从二进制解析以便随升级更新。设计判断:用成熟的 DataFusion 做引擎、把数据源抽象成 YAML spec + SQL schema、只做只读层——这套取舍很克制,避免了自造 SQL 引擎和承担写入一致性的复杂度;唯一要权衡的是「所有源都映射成 SQL 表」对非表格型 API(深层嵌套、图状)的建模可能不够自然。

来源:Cargo.toml(workspace members)+ crates/ 子目录 + README How Coral works / Local state

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) datafusion 53 + datafusion-functions-json + datafusion-tracing — SQL 引擎与 JSON 函数datafusion 53… arrow 58 / parquet 58 — 列式内存与文件格式arrow 58 / par… sqlparser 0.59 — SQL 解析sqlparser 0.59 reqwest 0.12(rustls-tls + http2 + system-proxy)— 调后端 APIreqwest 0.12(… tokio full + tokio-stream — 异步运行时tokio full + t… DataFusion SQL 引擎 + 跨源 JOIN 本地执行DataFusion SQL 引擎… Source spec:YAML 声明式数据源Source spec:YAML… 内置 MCP server(只读 SQL 数据库形态)内置 MCP server(只… 捆绑数据源 + 本地文件(JSONL / Parquet)捆绑数据源 + 本地文件… 本地优先凭证管理 CLI + onboard 向导 + agent skillsCLI + onboard 向导… coral 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言Rust(edition 2024,rust-toolchain.toml 固定工具链)框架Apache DataFusion 53(SQL 查询引擎)+ Arrow 58 / Parquet(列式数据)+ sqlparser 0.59
datafusion 53 + datafusion-functions…arrow 58 / parquet 58sqlparser 0.59reqwest 0.12(rustls-tls + http2 + sy…tokio full + tokio-streamMCP stdio server(coral-mcp crate)
本地 CLI 二进制,无后端服务;安装 macOS 走 brew install withcoral/tap/coral、Linux 走 curl https://withcoral.com/install.sh | sh;测试用 cargo-nextest;发布用 release-please(v0.2.1);clippy + deny.toml 做依赖审计;本地状态存平台配置目录(CORAL_CONFIG_DIR 可覆盖);Apache-2.0 协议
来源:Cargo.toml + rust-toolchain.toml + README Quickstart/Development

快速上手

# 1. 安装 brew install withcoral/tap/coral # macOS curl -fsSL https://withcoral.com/install.sh | sh # Linux # 2. 看 build 里有哪些捆绑源 coral source discover # 3. 加一个源(交互式填变量/密钥;或用同名环境变量脚本化) coral source add --interactive github # 或:GITHUB_TOKEN=ghp_... coral source add github # 4. 查数据 coral sql "SELECT schema_name, table_name FROM coral.tables ORDER BY 1,2" coral sql "SELECT number, title, state, created_at FROM github.issues \ WHERE owner='withcoral' AND repo='coral' AND state='open' ORDER BY created_at DESC LIMIT 10" # 5. 接入 agent(内置 MCP server,只读 SQL 数据库形态) claude mcp add --scope user coral -- coral mcp-stdio # Claude Code codex mcp add coral -- coral mcp-stdio # Codex # 教 agent discovery-first SQL 工作流 npx skills add withcoral/skills # 交互式向导可代替上面步骤:coral onboard
来源:README Quickstart / Use Coral with an agent 原文

使用场景

1. 让 coding agent 跨源回答复杂问题:如「哪些 Linear issue 在追踪还开着的 GitHub PR」,一条跨 github/linear 的 SQL JOIN 取代一串 tool 调用,准确率和成本都更优(README benchmark 复杂任务 +31% 准确、3.4x 成本效率);2. 把可观测/项目管理数据接给 agent:Datadog/Sentry/Linear/GitHub/Stripe 等捆绑源统一成 SQL 表,agent 通过 MCP 只读查询,省掉每个 provider 的 tool glue;3. 本地数据分析:把 JSONL / Parquet 文件当 SQL 表查,和 API 源混合 JOIN;4. 脚本化数据工作流:用 `coral sql` 在 CI 或脚本里取结构化 tabular 结果,而不是解析各 API 的 sprawling JSON;5. 对凭证不出本机有要求的团队:所有 secret 只在本地信任边界内、仅查询时使用。

来源:README Why Coral / Joins across sources / Authentication / benchmark

优势与局限

优势

  • 角度新且有硬数据支撑:用一条 SQL 接口取代逐源 tool 调用,并给出 82 任务 / Claude Opus 4.6 的可复现 benchmark(整体 +20% 准确、2x 成本效率、-42% 延迟),不是空喊「省 token」
  • 技术选型克制:用成熟的 Apache DataFusion 做引擎而非自造 SQL,明确定位只读读层、不碰写入一致性,把复杂度控制在「翻译 + JOIN + 缓存」上
  • Rust 工程质量高:edition 2024、cargo-nextest 测试、release-please 发版、clippy + deny.toml 依赖审计、rust-toolchain 固定,crate 按 engine/cli/mcp/spec/auth 职责清晰拆分
  • 数据源可扩展性好:source = 声明式 YAML spec,bundled(core)与 community 分离,写 custom source 接任意 HTTP API 或本地数据集,不用改引擎代码
  • 本地优先与隐私:凭证只在本地信任边界、仅查询时使用、不离开机器;config.toml 与 secrets 分离存储,对合规敏感团队友好
  • agent 接入顺滑:内置 MCP server 一行接 Claude Code/Codex/Cursor,配套 skills 教 discovery-first SQL 工作流,降低 agent 误用成本

局限

  • 可扩展性风险:「所有源都映射成 SQL 表」对深层嵌套 / 图状 / 事件流类 API 的建模可能不自然,复杂 API 的 spec 编写与列裁剪能力是隐性门槛;非捆绑源要用户自己写 spec 并维护
  • 可维护性风险:bundled source spec 跟二进制走(升级二进制才更新 manifest),意味着源 API 变更后用户必须等上游发新版二进制才能修复,自己改本地 spec 与捆绑 spec 的优先级关系需要清楚理解
  • 可测试性风险:核心价值是「跨多个真实外部 API 的 SQL 翻译 + JOIN 正确性」,这类端到端行为依赖各 provider 的真实响应,难做纯离线回归;benchmark 是整体统计,单源 spec 的正确性覆盖程度未在材料中说明
  • 稳定性风险:v0.2.x 早期版本(最新 v0.2.1),API/CLI/spec 格式都可能演进;查询依赖外部 API 的可用性与限流,单源故障或限流会直接影响跨源查询
  • 性能风险:query pushdown + caching 是关键优化,但对不支持服务端过滤的 API,Coral 需先拉回较多数据再本地过滤,大结果集的内存与延迟成本未量化;跨源 JOIN 的本地计算规模上限也未说明
  • 只读定位的边界:明确不做写入,凡是需要「查到后改」的 agent 工作流仍要回退到各 provider 的写 API / tool,Coral 只覆盖读这一半
来源:综合 README + Cargo.toml + crates 结构 + benchmark 段

最新版本

v0.2.1(2026-05-14)。最近 5 个 release:v0.1.3 (2026-04-15) → v0.1.4 (2026-04-22) → v0.1.5 (2026-04-27) → v0.2.0 (2026-05-06) → v0.2.1 (2026-05-14),约每周到两周一个版本,用 release-please 自动化发版(Cargo.toml 版本号带 x-release-please-version 标记)。仍处 0.x 早期阶段。

来源:GitHub Releases API(5 个 tag)+ Cargo.toml release-please 标记

总结评价

如果你在给 agent 接公司数据、又被「一次一个 tool、token 爆炸、跨源推理差」困扰,Coral 提供了一个有说服力的替代思路:一条 SQL 接口 + 内置 MCP,且拿出了 Claude Opus 4.6 的可复现 benchmark(整体 +20% 准确、2x 成本效率)。务实建议:1) 先用捆绑源(GitHub/Linear/Datadog 等)跑通 `coral source add` + `coral sql` + `claude mcp add ... coral mcp-stdio`,体验跨源 JOIN 的实际收益再决定是否自写 source;2) 它是只读层——需要「查到后写回」的工作流仍要配各 provider 的写 API,别期待它替代全部 tool;3) 接非捆绑 API 要做好写 YAML spec 的工作量预期,深层嵌套/图状 API 的建模不一定顺;4) 0.2.x 早期版本,CLI/spec 格式可能变,生产用先锁具体 release;5) 凭证本地优先这点对合规团队是加分项,但跨源查询的可用性受各上游 API 限流影响,关键链路要有降级预案。

来源:综合分析

常见问题

coral 是什么?

Coral 是一个用 Rust + Apache DataFusion 构建的本地优先 SQL 运行时,给 AI agent 提供「一条 SQL 接口查遍 API、文件和实时数据源」的能力:agent 写 SQL,Coral 翻译成对应的 API 调用或文件读取再返回单一结果集,并内置 MCP server 把整个运行时以只读 SQL 数据库的形式暴露给 Claude Code、Codex、Cursor 等,省掉为每个数据源写…

coral 有哪些核心功能?

coral 的核心功能包括:DataFusion SQL 引擎 + 跨源 JOIN 本地执行、Source spec:YAML 声明式数据源、内置 MCP server(只读 SQL 数据库形态)、捆绑数据源 + 本地文件(JSONL / Parquet)、本地优先凭证管理。

coral 为什么最近很受关注?

现在 agent 访问公司数据多是「一次一个 tool」,带来 tool 调用过多、重复的 auth/分页/重试逻辑、跨源推理差、token 流量高、glue 代码脆弱。Coral 把这些换成一条 SQL 接口:多个实时源统一成 SQL 表、可跨源 JOIN、可脚本化、同一运行时通过 MCP 暴露给 agent。

coral 适合哪些使用场景?

1. 让 coding agent 跨源回答复杂问题:如「哪些 Linear issue 在追踪还开着的 GitHub PR」,一条跨 github/linear 的 SQL JOIN 取代一串 tool 调用,准确率和成本都更优(README benchmark 复杂任务 +31% 准确、3.4x 成本效率);2.

透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-05-22 02:21. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件