
# Elliot
**Turn any API or database into MCP tools for Claude Code, Cursor, OpenClaw, and Codex — with built-in observability.**
[](https://github.com/EliBarak12/Elliot/actions/workflows/ci.yml)
[](https://github.com/EliBarak12/Elliot/actions/workflows/docs.yml)
[](LICENSE)
[](https://modelcontextprotocol.io)
[](pyproject.toml)
[Documentation](https://elibarak12.github.io/Elliot/) · [Quickstart](https://elibarak12.github.io/Elliot/docs/quickstart) · [Concepts](https://elibarak12.github.io/Elliot/docs/concepts) · [The five principles](https://elibarak12.github.io/Elliot/docs/five-principles)
---
Elliot is an open-source platform for turning the products you already have — REST APIs, SQL databases, files — into tools that AI agents can use *well*. Not just connected, but fast, safe, and observable: minimal token usage, structured errors the agent can recover from, and a full trace of every agent session.
The target user is a product engineer who has a working API or database today and wants AI agents to interact with it natively — with minimum tokens, clean error recovery, and full observability.
> AX is to agents what UX is to users and DX is to developers. Elliot's job is to make AX measurable.
## Table of contents
- [Why Elliot](#why-elliot)
- [Features](#features)
- [Quickstart](#quickstart)
- [See it in action](#see-it-in-action)
- [How it works](#how-it-works)
- [Connect your coding agent](#connect-your-coding-agent)
- [Project layout](#project-layout)
- [Documentation](#documentation)
- [Roadmap](#roadmap)
- [Contributing](#contributing)
- [Community and support](#community-and-support)
- [License](#license)
## Why Elliot
Connecting an API to an agent is easy. Making it work *well* is not. Agents fail when:
- **Tool descriptions are vague** — the agent picks the wrong tool.
- **Results are too large** — the context window fills up before the answer does.
- **Errors are unstructured** — the agent cannot recover or escalate.
- **Nothing is observable** — you do not find out it is broken until a user complains.
Elliot makes each of these visible and fixable. Every tool ships with a structured schema, a token estimate, an actionable error shape, and a session trace — every call, every agent, attributed to a client and model.
## Features
- **Agent-ready by design** — every tool is linted against five concrete principles before it ships: verb-first descriptions, typed parameters, context-sized results.
- **Safe by default** — parameterised SQL, read-only database transactions, env-var secrets, no keys in connector files. Connector files are safe to commit.
- **Every call observable** — tokens, latency, arguments, and errors for every agent call, streamed to an audit log and visible in Studio.
- **One command to run** — start the whole stack with Docker. No Python, Node, or toolchain to install.
- **Works with every agent** — Claude Code, Cursor, OpenClaw, and Codex. Elliot auto-registers with each.
- **Agents build connectors** — discover, build, lint, eval, deploy. The platform itself is agentic: agents can build connectors through Elliot.
## Quickstart
**Just want to run Elliot?** The only prerequisite is [Docker](https://docs.docker.com/get-docker/) — no Python, Node, `uv`, or `pnpm`:
```bash
curl -LsSf https://raw.githubusercontent.com/EliBarak12/Elliot/main/scripts/install.sh | sh
```
This pulls the pre-built images, generates a local `.env`, starts all three services, and opens Studio at