Coral 是一个用 Rust + Apache DataFusion 构建的本地优先 SQL 运行时,给 AI agent 提供「一条 SQL 接口查遍 API、文件和实时数据源」的能力:agent 写 SQL,Coral 翻译成对应的 API 调用或文件读取再返回单一结果集,并内置 MCP server 把整个运行时以只读 SQL 数据库的形式暴露给 Claude Code、Codex、Cursor 等,省掉为每个数据源写 tool glue。
来源: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)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 文件,声明如何连到某个 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-speccoral-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开箱支持 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/
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-cliCoral 是 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中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
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)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 协议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 / benchmarkv0.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 是一个用 Rust + Apache DataFusion 构建的本地优先 SQL 运行时,给 AI agent 提供「一条 SQL 接口查遍 API、文件和实时数据源」的能力:agent 写 SQL,Coral 翻译成对应的 API 调用或文件读取再返回单一结果集,并内置 MCP server 把整个运行时以只读 SQL 数据库的形式暴露给 Claude Code、Codex、Cursor 等,省掉为每个数据源写…
coral 的核心功能包括:DataFusion SQL 引擎 + 跨源 JOIN 本地执行、Source spec:YAML 声明式数据源、内置 MCP server(只读 SQL 数据库形态)、捆绑数据源 + 本地文件(JSONL / Parquet)、本地优先凭证管理。
现在 agent 访问公司数据多是「一次一个 tool」,带来 tool 调用过多、重复的 auth/分页/重试逻辑、跨源推理差、token 流量高、glue 代码脆弱。Coral 把这些换成一条 SQL 接口:多个实时源统一成 SQL 表、可跨源 JOIN、可脚本化、同一运行时通过 MCP 暴露给 agent。
1. 让 coding agent 跨源回答复杂问题:如「哪些 Linear issue 在追踪还开着的 GitHub PR」,一条跨 github/linear 的 SQL JOIN 取代一串 tool 调用,准确率和成本都更优(README benchmark 复杂任务 +31% 准确、3.4x 成本效率);2.