For teams building AI agents on their product
Agents that see what they change.
eddy is a hosted analytics database that keeps your product’s metrics current from your Postgres and serves them to your agent over MCP. Every number traces to its source rows, and the agent’s next read sees what it just did.
01 · The loop
Read, act, and read the result.
A warehouse answers with last night’s numbers, so an agent that acts can’t tell whether it worked. With eddy the write lands in your Postgres and the metric is current again within milliseconds.
02 · Tools
Every operation is a tool.
Add the workspace’s MCP server to Claude, Claude Code or any MCP client; each person signs in, readers get the reads, and writers you name can change models. The tools are generated from the same HTTP API your app uses.
claude mcp add --transport http eddy https://acme.eddy.example/mcp
Sources: your Postgres and product events from Kafka · the same views over MCP, psql and HTTP
read · every signed-in reader
get_viewsget_viewqueryprovenanceget_modelget_catalogget_graphget_historyget_commandsget_commandget_statsget_tableget_profileget_shopspreview_modelpreview_replacemodel_reviewmodel_stepsmodel_step_rowsmodel_step_valuesmodel_steps_cost- and the rest of the API
write · only the writers you name
create_modelreplace_modeldrop_modeladd_tabledrop_table
eddy never writes to your database: these change eddy’s own model definitions. Each is previewed first, returns a command to poll with get_command (queued, hydrating, ready), and the history records who asked: by: mcp:you@acme.com. Your agent acts on your product through your own API.
03 · In practice
From “why” to “done” in one conversation.
Asked which accounts are at risk, the agent reads the view, traces the number to fourteen deleted seats, restores them through your API, and reads the view again.
get_view account_health · risk = 'high'3 rowsprovenance account_health · id = 5714 seats · 31 eventsrestore_seats(account_id = 57)committedget_view account_health · id = 5704 · Trust
Numbers an agent can defend.
Every number comes with where it came from, and every metric is checked against Postgres after every transaction. An agent that changes a model sees what the change does to the data before anything changes.
Keep going
Connect your agent to your data.
Tell us what your agent should watch and act on. We’ll connect it to eddy on your own schema.