The execution layer for AI agents. Act across more of your systems with precise controls: safer, faster and more efficient than MCP tools and gateways.
AI EngineeringGive agent toolsGive agent knowledgeRust
An event-driven framework designed to build and orchestrate multi-agent AI systems. It enables seamless integration of AI agents with real-world data sources and systems, facilitating complex, multi-step workflows.
ACI.dev is the open source tool-calling platform that hooks up 600+ tools into any agentic IDE or custom AI agent through direct function calling or a unified MCP server. The birthplace of VibeOps.
Coral **One MCP server for every service your agents use, with your credentials and your rules. ** Agents write short TypeScript programs. Coral runs them in a sandbox, adds the credentials, and checks every call against your policy. Why Coral Connecting an agent to many services usually means many MCP servers, a token pasted into each one, and every tool definition loaded into every prompt. Coral replaces that with one server: **Smaller context, fewer round trips. ** The agent searches for the
operations it needs instead of loading them all up front. It then sends one program that can call several operations and return only the fields the answer needs. ** When a program works, the agent saves it as a function. The next time, it calls that function in one step instead of finding the operations and writing the program again. Saved functions are typed and appear in search alongside provider operations. ** Coral stores your tokens and adds them to each call
. Programs run in an isolated sandbox with no secrets, no network access, and no imports. ** Set each operation to allowed, approval required, or disabled. A call that needs approval waits until a person approves it. ** Review each program and the calls it made in the Coral UI. ** Run Coral on your laptop or on your own server. Your data, credentials, and usage history stay with you. Coral includes setup recipes for GitHub, Linear, Jira, Notion, Gmail, Stripe, Datadog, Sentry, HubSpot
, and more. You can add any service that has an OpenAPI document or an MCP server. ** Download the desktop app for macOS, Linux, or Windows from the releases page, or run a shared server for your team. ** A provider is one service your agents can use. Pick one from the catalog, or bring your own OpenAPI document or MCP server. ** Each workspace in Coral has its own MCP URL. Copy it from the Coral UI and add it to your
MCP client: Now ask your agent something that needs that provider, such as "What are my open pull requests? " Setup guides and the configuration reference are at withcoral. How Coral works The agent searches for the operations it can use and reads their TypeScript signatures. This one finds open pull requests that have no reviewer and posts them to Slack: Coral adds the credentials and checks each call against your policy. If posting to Slack requires approval, the run pauses
there until you approve it. Only the pull request numbers go back to the agent, not the full GitHub response. Once this works, the agent can save it as a function, and later programs call it as . To learn about providers, accounts, policy, and workspaces, read Concepts. 0 replaces the SQL interface with TypeScript programs. It is a rewrite and starts from fresh state: it does not convert what 0. x stored, and it tells you at startup if it
finds 0. Development To run Coral from a checkout, follow the development guide. Community Ask questions, share ideas, and show
Frequently asked questions
How many stars and forks are recorded?
withcoral/coral has 4,938 stars and 223 forks.
What is the repository rank?
withcoral/coral is ranked 7,484.
What language and category are recorded?
withcoral/coral has 4,938 stars, uses Rust and belongs to AI Engineering.
Which repository is closest in rank?
withcoral/coral is compared with 1rgs/jsonformer, ranked 7,483 with 4,938 stars.
README
Coral
One MCP server for every service your agents use, with your credentials and
your rules. Agents write short TypeScript programs. Coral runs them in a
sandbox, adds the credentials, and checks every call against your policy.
Why Coral
Connecting an agent to many services usually means many MCP servers, a token
pasted into each one, and every tool definition loaded into every prompt.
Coral replaces that with one server:
Smaller context, fewer round trips. The agent searches for the
operations it needs instead of loading them all up front. It then sends one
program that can call several operations and return only the fields the
answer needs.
Agents build on what already worked. When a program works, the agent
saves it as a function. The next time, it calls that function in one step
instead of finding the operations and writing the program again. Saved
functions are typed and appear in search alongside provider operations.
Agents never hold credentials. Coral stores your tokens and adds them to
each call. Programs run in an isolated sandbox with no secrets, no network
access, and no imports.
You decide what runs. Set each operation to allowed, approval required,
or disabled. A call that needs approval waits until a person approves it.
Every run is recorded. Review each program and the calls it made in the
Coral UI.
You host it. Run Coral on your laptop or on your own server. Your data,
credentials, and usage history stay with you.
Coral includes setup recipes for GitHub, Linear, Jira, Notion, Gmail, Stripe,
Datadog, Sentry, HubSpot, and more. You can add any service that has an
OpenAPI document or an MCP server.
Get started
Install Coral. Download the desktop app for macOS, Linux, or Windows
from the releases page,
or run a shared server
for your team.
Add a provider. A provider is one service your agents can use. Pick one
from the catalog, or bring your own OpenAPI document or MCP server. See
Add a provider.
Connect your agent. Each workspace in Coral has its own MCP URL. Copy it
from the Coral UI and add it to your MCP client:
claude mcp add --scope user --transport http coral # Claude Code
codex mcp add coral --url # Codex
graph LR
Agent["Your agent"] -->|"search, exec"| MCP["Coral MCP server"]
You["You"] -->|"providers, policy, approvals"| UI["Coral UI"]
subgraph Coral["Coral (your machine or server)"]
MCP --> Run["Sandboxed program run"]
UI --> Gate["Credentials and policy"]
Run --> Gate
end
Gate --> GH["GitHub"]
Gate --> SL["Slack"]
Gate --> Own["Your OpenAPI or MCP service"]
The agent searches for the operations it can use and reads their TypeScript
signatures. Then it sends Coral a short program. This one finds open pull
requests that have no reviewer and posts them to Slack:
Coral adds the credentials and checks each call against your policy. If
posting to Slack requires approval, the run pauses there until you approve it.
Only the pull request numbers go back to the agent, not the full GitHub
response. Once this works, the agent can save it as a function, and later
programs call it as coral.functions.().
To learn about providers, accounts, policy, and workspaces, read
Concepts.
Upgrade from Coral 0.x
Coral 1.0 replaces the SQL interface with TypeScript programs. It is a rewrite
and starts from fresh state: it does not convert what 0.x stored, and it tells
you at startup if it finds 0.x state. See
Upgrade from Coral 0.x.