A database studio that works for both you and your AI agent.

One command turns your Postgres, MySQL, or SQLite database into a studio you can browse and an MCP server your coding agent can query — both governed by the same authorization rules.

npx @zenstackhq/cli studio

Free on localhost. No card required.

Features

Start with your database. Add the rest when you need it.

Point Studio at a database you already have and it works. The deeper features build on the same schema, whenever you want them.

Works with the database you already have

One command. No migration, no lock-in.

The ZenStack CLI introspects your PostgreSQL, MySQL, or SQLite database and generates a schema. Start the proxy and Studio connects — database unchanged, application code untouched.

A table editor that follows your relations

Foreign keys are records, not integers.

Pull fields from related models into the table view with dot-notation paths, including aggregates across to-many relations. Filter on relations using some / every / none instead of hand-writing joins, and edit records against the types your schema declares.

Query without writing SQL

Autocomplete over your models, not raw SQL.

Query models by name, with IntelliSense on every field and relation. Nested relations come back as nested objects, not a flat join result you have to read apart.

Your database, as an MCP server

Point Claude Code or Cursor at it and go.

Studio turns your database into an MCP server. Connect any MCP client — Claude Code, Cursor, or others — to perform full CRUD on your live data.

Agents query with the same API you do, not raw SQL — a syntax they saw across open source long before training, so they write it correctly instead of guessing at your column names. Fewer wrong queries, fewer retries.

Authorization

Not everyone should see everything.

Narrow everything above to a single user — you, a teammate, or a customer. Set the rules once; they hold in the studio and over MCP alike.

Authorization comes from ZenStack access policies — rules declared alongside your models. They do what Postgres row-level security does, but they live in your schema: readable like the rest of your code, and reviewed with it.

See your data as any user

One picker changes what the whole studio shows you.

Pick an identity — anonymous, a specific user, or superuser — and every query in the table and query editors runs as that person. Hidden rows don't appear, unreadable fields stay hidden, forbidden edits are rejected.

Pin that identity to a teammate and their access is permanently bounded by it — a support colleague with a safe view of production, with no admin panel to build.

Narrow your agent to a single user

The same MCP server, scoped to one person.

Attach an identity to the connection and the agent stops seeing the whole database. It queries a real slice — one customer's records, one team's data — instead of everything or a staging copy.

Identity is set per connection, so this isn't limited to your editor. Issue one per end user and ship an in-product assistant that answers from live data, scoped to whoever's asking.

Identity travels in the request header as a token signed with your Studio key.

Authentication

Run it anywhere, with your team

Stop passing connection strings around.

Deploy the proxy on your own infrastructure and reach Studio and your MCP server from anywhere, not just localhost. Connections authenticate with a signed access key instead of a shared database credential.

Use cases

Ask-your-data, inside your product.

Give customers a natural-language view of their own data. Every query runs scoped to that customer, enforced by the same policies your application uses.

Let an agent work on behalf of one customer.

Point Claude or Cursor at a support ticket and let it investigate that customer's records — and only that customer's records.

Internal tooling without building an admin panel.

Give a support teammate a scoped role and hand them Studio. They see the slice their role permits, with no admin UI to build or maintain.

Pricing

Free on localhost. $40 per month per organization when you need authentication and authorization.

Everything else on this page is free. The line is when Studio leaves your laptop.

Pro

$40/month

Authentication.
Deploy the proxy on a public network and reach Studio and your MCP server from anywhere, not just localhost. Signed access keys instead of shared database credentials.
Authorization.
View your data as any user through impersonation, and scope your MCP server to a single user rather than the whole database.
Start Studio

FAQ

Do I need to use the ZenStack ORM?

No. Studio introspects an existing database and works without changing your application code. Adding access policies to the generated schema unlocks impersonation and per-user agent scoping, but that step is optional.

Does Studio see my database credentials?

No. Studio connects to a proxy that you run and own — often just on localhost — and the proxy is what talks to your database. Your credentials stay on your machine or your infrastructure and never reach ZenStack.

How does ZenStack handle authorization?

Authorization lives in access policies you declare alongside your models, so the rules sit in your schema rather than in your database or scattered through application code. Studio enforces them on every query — the table editor, the query editor, and the MCP server all run as the identity you pick. They do what row-level security does in Postgres, with one set of rules covering a person browsing data and an agent querying it.

Which databases are supported?

PostgreSQL, MySQL, and SQLite.

Can I connect an AI coding agent to my database?

Yes. Studio runs an MCP server that Claude Code, Cursor, or any MCP client can connect to, with control over which models and operations are exposed.