IntelligentDB is a Postgres database that governs what AI agents are allowed to write.

Your application connects and writes normally, at full speed. Agents write through an API that checks every change against rules you set, field by field. Routine updates commit immediately. Consequential ones wait for a person, who sees the exact before and after. Anything can be undone.


How it works

There are two ways into the database, and they are deliberately different.

   Your application                        Your AI agents
   (Prisma, psql, ORM)                     (MCP / REST)
          |                                       |
          | Postgres wire protocol                | IntelligentDB API
          | full speed, no gate                   | policy checked
          v                                       v
   +--------------+              +-------------------------------+
   | direct write |              |  Auto    -> commit now        |
   |              |              |  Review  -> queue for a human |
   |              |              |  Blocked -> rejected          |
   +------+-------+              +---------------+---------------+
          |                                      |
          v                                      v
   +---------------------------------------------------------+
   |  Postgres, one schema per organization                   |
   |  your tables + an append-only record of governed writes  |
   +---------------------------------------------------------+
Your application Your agents
Connects via Postgres wire protocol IntelligentDB API or MCP
Credentials A connection string scoped to your schema An API key. No database access at all.
Speed Full, ungated Policy checked on every write
Recorded No Yes, every write

Credential separation is the enforcement mechanism. Guardrails written into application code are advisory, because anything holding a connection string can ignore them. An agent here cannot ignore the policy check, because the API is the only door it has.

There is no LLM anywhere in the write path. Every policy decision is deterministic and returns the same answer every time.


Quickstart

1. Run it

git clone <https://github.com/><your-org>/IntelligentDB.git
cd IntelligentDB
docker compose up --build
Service URL
Web UI http://localhost:8081
API http://localhost:8000 (interactive docs at /docs)
MCP server http://localhost:8080/mcp

Row governance requires the Postgres backend:

IDB_STORAGE_BACKEND=postgres
IDB_STORAGE_DATABASE_URL=postgresql://user:pass@host:5432/intelligentdb

2. Create a table

Sign in to the web UI and open Data. Create a customers table:

Column Type
id text, primary key
name text
last_contacted_at timestamptz
credit_limit numeric

3. Set your policy