What this connector does
The Supabase connector points Wazzi at a Postgres database you own — a project in your own Supabase account. It gives agents a scratchpad they can read and write freely: intermediate results, structured outputs, workspace state, anything that doesn't belong in your operational systems.
Wazzi does not host this database. You control the data, the schema, and who has access. If you delete the Supabase project, the connector goes with it.
What agents can do here
- Schema: list, describe, create, alter, and drop tables and indexes
- Data: select, insert, update, delete, upsert, and count rows
- Advanced: run raw SQL and inspect query plans (can be gated separately per agent)
Setup — 3 steps, about 5 minutes
Step 1 — Create a Supabase project
If you don't already have one, sign up for a free Supabase account at supabase.com and create a new project. The Free tier is enough for a scratchpad database and includes 500 MB of storage and the pooler we'll be connecting through.
When Supabase prompts you for a database password, pick a strong one and save it — you'll paste it into the connection string in Step 2.
Screenshots and full step-by-step visuals: Supabase — Getting Started.
Step 2 — Copy the Session pooler connection string
Important — pick the right connection type. Supabase offers three:
- ✅ Session pooler (port 6543) — use this one. Resolves to IPv4, supports every Postgres feature Wazzi needs.
- ⚠️ Transaction pooler (port 6543) — also IPv4, but breaks prepared statements. Don't use.
- ❌ Direct connection (port 5432) — IPv6-only on Supabase. Will fail from most cloud environments (including Wazzi's). Don't use.
Inside your Supabase project:
- Open Project Settings (gear icon, bottom left)
- Go to Database in the left sidebar
- Scroll to Connection String
- Select the Session pooler tab (port 6543)
- Click the copy icon next to the URI
- Replace
[YOUR-PASSWORD]in the copied string with the password you set in Step 1
The result looks like:
postgresql://postgres.abcdefgh:YourPassword@aws-0-us-east-1.pooler.supabase.com:6543/postgres
Screenshots and step-by-step visuals: Supabase — Connect to your database (see the "Shared Pooler" section).
Step 3 — Add the connector in Wazzi
- In the Wazzi Admin Center, go to Connectors
- Find Supabase in the catalog and click Add
- Paste the connection string from Step 2 into the Connection String field
- Leave Schema blank to use the default
publicschema, or enter a schema name if you set up a dedicated one (see Optional: dedicated schema for power users below) - Click Test Connection — you should see a green Connected message that names the Postgres version and the schema agents will be writing to
- Click Save
Granting agents access to tools
Once the connector is configured, individual tools still need to be granted to the users or agents that should use them. Do this in Access Groups — the standard permissions flow for every Wazzi connector.
The connector exposes 15 tools grouped by risk level. A typical setup:
-
Read-only agents: grant
list_tables,describe_table,select_rows,count_rows,list_indexes,explain_query -
Read/write agents: add
insert_rows,update_rows,delete_rows,upsert_rows -
Schema-managing agents: add
create_table,alter_table,drop_table,create_index -
Trusted power agents only: grant
execute_sql. This tool runs arbitrary SQL and bypasses the typed-tool guardrails — grant it deliberately.
Optional: dedicated schema for power users
By default, agents work in the public schema — the same one your
own apps might be using. If you want agent-created tables isolated from
everything else, create a dedicated schema and a Postgres role that owns it.
In the Supabase SQL Editor, run:
CREATE ROLE wazzi_agent WITH LOGIN PASSWORD 'pick-a-strong-password';
CREATE SCHEMA wazzi_agent AUTHORIZATION wazzi_agent;
GRANT USAGE ON SCHEMA wazzi_agent TO wazzi_agent;
ALTER ROLE wazzi_agent SET search_path = wazzi_agent;
Then in Wazzi, update the connector config:
-
Connection String: replace
postgres.abcdefgh(the default role) withwazzi_agent.abcdefgh, and swap the password to the one you just set -
Schema: enter
wazzi_agent
Click Test Connection again to confirm. Agents can now only
see and modify tables inside the wazzi_agent schema.
Troubleshooting
Test Connection says "Hostname didn't resolve"
Most common cause: you copied the Direct connection string (port 5432) instead of the Session pooler (port 6543). Supabase's direct connections are IPv6-only, and Wazzi's cloud environment egresses over IPv4, so DNS returns no reachable address and the connection fails before it starts.
Fix: go back to Supabase → Project Settings → Database → Connection String, click
the Session pooler tab, copy that URI, re-save the connector.
The hostname should look like aws-0-<region>.pooler.supabase.com
and the port should be 6543 — not db.<ref>.supabase.co
on port 5432.
Other possibilities: a typo in the hostname, or the project has been paused/deleted in Supabase. Re-copy the string fresh from the Supabase dashboard.
Test Connection says "Password rejected"
Double-check the password portion of the connection string. Supabase's copy
button leaves [YOUR-PASSWORD] as a placeholder — you have to
replace it manually. If you've forgotten the password, reset it in Supabase →
Project Settings → Database → Database Password → Reset database password.
Test Connection says "Connection timed out"
The pooler host is unreachable within 10 seconds. Verify the port is
6543 (Session pooler) and not 5432 (Direct — see above).
Also check
status.supabase.com
for a live incident.
Test Connection says "Schema does not exist"
Either create the schema (see Optional: dedicated schema above) or
clear the Schema field to fall back to public.
Agents say "permission denied for table X"
You're using a dedicated role (like wazzi_agent) and it doesn't
have access to that table. Either grant it in Supabase
(GRANT SELECT ON X TO wazzi_agent) or switch the connector back
to the default postgres role.
A tool times out after 30 seconds
Wazzi enforces a 30-second statement timeout on every query. If a legitimate
query needs more, split it up or add an index using create_index.
Costs and limits
- Supabase Free tier — 500 MB storage, unlimited API requests, plenty for a scratchpad. Paid plans start at $25/month if you need more storage.
- Wazzi — no per-connector cost. Standard tool-call pricing applies.
- Row limits —
select_rowsreturns up to 1,000 rows by default, 10,000 max. Larger reads should paginate. - Statement timeout — 30 seconds per query, enforced by Wazzi.