sherbase
A real Postgres database per slug, connection strings for direct SQL, and a Supabase-shaped Data API for the apps you build on top of it.
sherbase
sherbase is shebang's database service — a dedicated Postgres database and role, provisioned by a single call, reachable two different ways depending on what you're building.
A database is a slug
base_create_database({ slug }) provisions a database named
base_<slug> and a role of the same name, and hands back a password and
connection string shown exactly once. From then on the slug is how
every other base_* tool refers to it — Databases
covers the full tool set and what a slug actually is.
Two ways in
- Direct SQL — the connection strings
sherbase returns work with
psql, migrations, and any Postgres client, or withbase_run_sqlif you'd rather stay inside the MCP server. - The Data API — every database also gets a PostgREST-based
Supabase-shaped API at
https://api.shebang.pro/db/<slug>, with sherlock as the auth provider behind it. This is what supabase-js talks to, and what row- level security checksauth.uid()against. See the Data API.
In this section
- Databases — the seven
base_*tools, and what provisioning actually creates. - Connection strings — the session and transaction pooler strings, and TLS verification.
- The Data API — the PostgREST endpoint, publishable vs. secret keys, and sherlock-backed RLS.
- supabase-js examples — embedded and redirect sign-in, both against the Data API.
- Reload schema and rotate secret — keeping the Data API in sync with DDL, and replacing a leaked key.
- Enable on older databases — the Data API is on by default now; this is for databases from before it existed.
- Limits — what's actually enforced on
base_run_sqland the pooler today.
A database's home Project scopes it the same way every other resource does — see projects and scoping if you haven't read that yet.