Open Source · $0/month · Apache 2.0
Deep database observability.
Free. And MCP-native.
The numbers Prometheus can't give you — slow query texts, lock/blocking trees, wait events, execution plans and baselines — served directly to your AI agents.
Deep DB View — pg_stat_activitycollecting
pid 8432 · 12 minwait_event: Lock
SELECT * FROM orders WHERE created_at > '2026-01-01' ...
top blocker · 47 blockedavg 4.2s
LOCK tree: 8432 → 1412 → 1413 (chain)
table bloatorders +4.2%
1.2M dead tuples · last vacuum 6h ago
🤖 agent called compare_to_baseline
"regression +241% → CREATE INDEX on orders(customer_id)"
🛡️
Read-Only by Design
Never writes to your DB. Fixed queries over system views, 5s statement timeout, dedicated `SELECT`-only role.
📈
Baselines, Not Alerts
7-day mean + p95 per query fingerprint. Regression % tells you when a query is actually slower.
🔐
Private API, Public Contract
Self-hosted + X-API-Key. The OpenAPI contract is public — Remo/MCP/dashboards implement against it, never your data.
The killer differentiator — MCP nativeno Datadog · no DBmarlin · no PMM has this
# an AI agent can now ask your database the *why*:
→ get_slow_queries(db_instance="rds-prod", limit=5)
→ get_blocking_tree() # pid 8432 blocks 47
→ explain_query(fingerprint="-6842865755026457642")
→ compare_to_baseline(fingerprint="...")
verdict: "Seq scan on orders. CREATE INDEX CONCURRENTLY ON orders(customer_id). Kill pid 8432."
Components on PyPI
bonito-collectorbonito-collector
bonito-storebonito-store
bonito-apibonito-api
bonito-mcpbonito-mcp-server
Total infrastructure cost: $0/month. Forever.
Live in 5 Minutes
terminal
# Full stack — PostgreSQL fixture + collector + store + api + mcp
docker compose -f deploy/docker-compose.yml up -d
# Query the deep view
curl -H "X-API-Key: $BONITO_API_KEY" \
localhost:8100/baseline/-6842865755026457642
# Give an AI agent the tools
claude mcp add bonito -- bonito-mcp
How Bonito Works
🩸
Collect
Read-only PostgreSQL collector reads the system views the engine already exposes for free.
🗄️
Store
SQLite persists what Prometheus can't: query texts, plans, locks, baselines.
🔌
Expose
Private REST API + 8 MCP tools. Structured JSON for LLM context.
🤖
Act
Claude, Bedrock, Strands — or Remo — diagnose with precision and the exact PID to kill.
Part of the observability ecosystem
Bonito feeds Remo with precision diagnostics — turning "connections at 95%" into "query X is holding 47 locks, kill pid 8432".
A free DBmarlin.
With superpowers for AI.
From zero to deep database observability in under 10 minutes.