← all repositories
withcoral/coral

SQL runtime that turns your agent's API chaos into JOINs

A local-first Rust tool that exposes APIs and files as SQL tables so agents can query across sources instead of gluing tools together.

coral
Velocity · 7d
+79
★ / day
Trend
steady
star history

What it does Coral is a local SQL runtime written in Rust that sits between your agents and your data sources. You add sources—GitHub, Linear, Stripe, local Parquet files, whatever—via YAML specs, then query them as ordinary SQL tables from the CLI or over MCP. The agent writes SELECT ... JOIN; Coral translates that into API calls, handles pagination, and returns a clean result set.

The interesting bit The MCP integration is the real hook. Coral exposes itself as a read-only SQL database to Claude Code, Cursor, Codex, and friends, complete with a “skills” package that teaches agents to discover schemas via coral.tables before querying. Their own benchmark claims 31% better accuracy and 3.4× cost efficiency on complex coding tasks versus direct provider MCPs—though simpler fact-retrieval tasks barely budged.

Key highlights

  • Bundled sources for Datadog, GitHub, Linear, Sentry, Slack, Stripe, plus local JSONL/Parquet
  • Cross-source SQL JOINs executed locally after fetching from each backing API
  • Credentials stored locally, never shipped to a remote server
  • Query pushdown and caching to reduce API chatter
  • Custom source specs via YAML for anything not bundled

Caveats

  • Read-only by design; don’t expect writes or mutations back to APIs
  • Benchmarks are self-run (82 tasks, Claude Opus 4.6) and the README doesn’t disclose methodology details
  • Windows support is manual zip extraction, not a proper installer

Verdict Worth a look if you’re tired of watching your agent burn tokens on five separate API calls just to correlate a GitHub PR with a Linear issue. Skip it if your workflow is already simple enough that direct MCP tools don’t hurt, or if you need write access.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.