OpenRadar

Project · Rust · Added June 7, 2026

coral

Coral is a local-first SQL runtime that gives AI agents one query interface over APIs, files, and live data sources — no more brittle tool glue.

5,140 stars 213 forks View on GitHub

Coral

Overview

Coral is a Rust CLI that lets you — and your AI agents — run SQL queries across APIs, files, and live data sources as if they were all in one database. It hit 5,000 GitHub stars in two months after its April 2026 launch, which tracks: developers have been hand-rolling API-to-SQL adapters for years, and this eliminates that entire category of glue code.

The project is built by Withcoral, a team that clearly spent time thinking about how agents actually interact with data in production. Their benchmark report tested 82 real-world tasks against Datadog, Sentry, Linear, Slack, and GitHub using Claude Opus 4.6. The results are hard to ignore: agents using Coral were 20% more accurate and 2x more cost-efficient than agents calling each provider’s MCP directly. For complex multi-hop tasks — the kind coding agents deal with constantly — accuracy jumped 31% and cost efficiency hit 3.4x.

The core idea is dead simple. You install a “source” (GitHub, Linear, Stripe, local JSONL files, whatever), and Coral exposes it as SQL tables in a local schema. Your agent writes SELECT statements instead of making five separate API calls with different auth headers, pagination logic, and error handling. Coral handles the translation, caching, and result assembly. You can JOIN across sources — pull GitHub issues and Linear tickets in one query — and Coral executes the join locally after fetching each side.

Why it matters

The agent tool-use problem is real and getting worse. Every MCP server, every custom tool, every API integration adds token overhead, latency, and failure modes. Anthropic’s own research shows that tool-use accuracy drops sharply as the number of available tools grows past a dozen. Coral compresses an entire data layer into one tool that speaks SQL — a language every LLM already knows well.

For fullstack developers specifically, this changes how you think about data access in agent workflows. Instead of writing custom TypeScript wrappers around the GitHub API, Linear API, and your Postgres database, you install three Coral sources and let your agent write cross-source joins. The agent gets structured tabular results instead of sprawling JSON payloads. You get inspectable, reproducible queries instead of opaque chains of tool calls.

The MCP integration is the real hook. Coral exposes its runtime over MCP, so Claude Code, Cursor, and other AI tools can query your connected sources without any custom integration work. It’s one of those tools that makes you wonder why this abstraction didn’t exist sooner.

Key Features

Unified SQL Over Any Source. Every data source — whether it’s the GitHub API, a Stripe account, a local Parquet file, or a Datadog instance — becomes a SQL schema with typed tables. You query them all with standard SQL syntax. No custom adapters, no API-specific SDK imports, no pagination logic to maintain.

Cross-Source JOINs. This is where Coral gets genuinely powerful. Because every source is a SQL schema, you can write a single SELECT that joins GitHub pull requests with Linear issues, filters by Sentry error counts, and sorts by Datadog metrics. Coral fetches from each backing system and assembles the result set locally. Try doing that with five separate MCP tool calls.

Local-First Architecture. Coral runs on your machine. Credentials are stored locally and never leave your device. Query results are cached locally. There’s no cloud service to sign up for, no data leaving your network. For developers working with sensitive internal APIs, this matters a lot.

MCP Server Built In. Expose Coral’s runtime over MCP with a single flag. Your AI agent — Claude Code, Cursor, VS Code Copilot, whatever — can then write SQL queries against all your connected sources through one interface. No bespoke tool glue per provider. The agent gets a consistent tabular result format regardless of the underlying source.

Bundled Sources for Common Tools. GitHub, Linear, Datadog, Sentry, Stripe, Slack, and more come bundled. Each source is a YAML spec that declares API endpoints, authentication requirements, and table schemas. Run coral source discover to see what’s available, or write your own spec for any HTTP API or local dataset.

Query Pushdown and Caching. Coral doesn’t naively fetch everything and filter in memory. It pushes filters and limits down to the API layer where possible, reducing unnecessary API traffic. Results are cached to avoid redundant calls. This keeps things responsive even with complex cross-source queries.

Read-Only by Design. Coral is explicitly a read layer. It doesn’t mutate your data sources. This makes it safe to give agents broad access — they can query anything you’ve connected, but they can’t accidentally delete your Linear backlog or close your GitHub issues. That safety boundary is intentional and important.

Use Cases

Pros and Cons

Pros:

Cons:

Getting Started

# Install on macOS
brew install withcoral/tap/coral

# Install on Linux
curl -fsSL https://withcoral.com/install.sh | sh

# Discover available bundled sources
coral source discover

# Add a source interactively (e.g., GitHub)
coral source add --interactive github

# Query connected sources with SQL
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
"

# Join across sources
coral sql "
  SELECT a.issue_identifier, a.url, p.state
  FROM linear.attachments a
  JOIN github.pulls p ON p.html_url = a.url
  WHERE p.owner = 'withcoral' AND p.repo = 'coral'
"

# Expose Coral over MCP for your AI agent
coral mcp

Alternatives

Direct Provider MCPs — Each SaaS tool (GitHub, Linear, Datadog) offers its own MCP server. This works for single-source queries, but it falls apart fast when you need data from multiple sources. Each MCP adds its own tool definitions, authentication, and response format. Coral’s benchmark showed 20% better accuracy and 2x cost savings compared to this approach. Use direct MCPs only if you truly need data from a single source.

Custom API Wrappers — Writing TypeScript or Python functions that call each API and return structured data is the traditional approach. It works, but it’s O(n) maintenance — every new source means new auth logic, pagination handling, error cases, and type definitions. Coral eliminates this by standardizing the interface as SQL. Use custom wrappers only when you need full write access or complex business logic that SQL can’t express.

Composio — Composio connects 250+ tools to AI agents with pre-built integrations. It’s more mature and covers more services, but it’s cloud-hosted and focuses on action execution (read + write), not data querying. Coral is local-first, read-only, and SQL-native. Choose Composio when you need agents to perform actions across tools. Choose Coral when you need agents to reason across data.

Verdict

Coral is the kind of tool that makes you feel stupid for not thinking of it first. The idea of exposing every API as SQL tables is obvious in hindsight, and the execution is solid — Rust performance, local-first security, MCP integration out of the box. The benchmark numbers (20% accuracy improvement, 2x cost efficiency for agents) are the strongest I’ve seen for any data-layer tool targeting AI workflows.

It’s not going to replace your entire data stack, and the read-only design means you still need separate tool calls for mutations. But for the specific problem of “my agent needs to query data from five different SaaS tools,” Coral is the cleanest solution I’ve found. If you’re building agent workflows in 2026 and you’re tired of writing API glue code, this should be on your shortlist. The 5K stars in two months suggest the developer community already agrees.

Related

Shared tags