Serverless Postgres speaks PostgreSQL
Connect Prisma Postgres to Excel, Sheets and AI
Prisma Postgres over a direct TCP connection. Every database answers on the same hostname, so the credentials are what identify yours.
One connection, every surface
Where your Prisma data can go
Connect Prisma once and the same read-only connection feeds all of these — no second setup, no second copy of the data. 9 of 11 have a step-by-step guide.
Prisma to Excel
Microsoft Excel · Excel add-in
Pull live Prisma results straight into a worksheet and refresh them on demand — desktop Excel, Excel Online, Microsoft 365.
Read the PostgreSQL guidePrisma to Google Sheets
Sheets add-on
Run a saved Prisma query from the sidebar and drop the rows into the sheet. Shared collaborators can refresh it themselves.
Read the PostgreSQL guidePrisma MCP server
Claude, Cursor and MCP clients
Give an AI assistant read-only access to Prisma with the schema it needs to write correct SQL — no credentials in the chat.
Read the PostgreSQL guidePrisma REST API
HTTP endpoint
Publish a Prisma query as an authenticated JSON endpoint any application can call, with an OpenAPI 3.1 spec and ready-made Postman, Insomnia and Hoppscotch collections. No database port is opened.
Read the PostgreSQL guidePrisma to Airtable
Automation platform
Sync Prisma rows into an Airtable base on a schedule, or fetch them inside an Airtable automation script.
Read the PostgreSQL guidePrisma to Baserow
Automation platform
Feed a Baserow table from Prisma over the REST endpoint — self-hosted or Baserow cloud.
Read the PostgreSQL guidePrisma to SeaTable
Automation platform
Keep a SeaTable base current with Prisma data without exporting a file or exposing the database.
Read the PostgreSQL guidePrisma to Smartsheet
Automation platform
Push Prisma results into a Smartsheet grid so plans and reports read from the source system, not last week's export.
Read the PostgreSQL guidePrisma to Anvil
Anvil Works · App platform
Back an Anvil Python app with Prisma through the REST endpoint instead of embedding database credentials in the app.
Read the PostgreSQL guidePrisma to Power BI
Power Query M
Paste the generated Power Query M into the Power BI Advanced Editor and the report reads live Prisma results over HTTPS — no ODBC driver, no database port opened.
How Power BI works no Prisma walkthrough written yetPrisma alerts and reports
Slack · Discord · Email · Webhook
Put a Prisma query on a schedule and have the rows delivered to Slack, Discord, email or a signed webhook — or hold the message until a row count, threshold or percentage change crosses the line you set.
How alerts and reports work no Prisma walkthrough written yetHow it works
5 steps, no inbound firewall change
Install the Network Agent wherever suits you. It opens one outbound connection and never listens, so Prisma sees an ordinary client and your network needs no inbound rule.
In the Prisma Console, generate the direct TCP connection string — the postgres:// one. It is not the same as the Accelerate URL the console shows for application use.
Paste it in. Host, port, username and password are read straight out of it.
Leave the database as postgres unless you know yours differs. Prisma's string often omits the database name, so the card fills in the usual one.
Save. Microsoft Excel, Google Sheets, Power BI, MCP and REST all read through that one connection, or join it to your other sources in a single read-only statement.
Feature deep-dive
What Prisma gives you
Two connection strings, and only one of them is Postgres
This is the thing that catches people, and it catches them because the wrong string looks perfectly reasonable.
- Prisma Accelerate URLs start with prisma:// or prisma+postgres://. They address Prisma's own connection layer, which speaks its protocol rather than the Postgres wire protocol.
- Query Streams connects over direct TCP with a standard Postgres driver, so an Accelerate URL cannot work here no matter what credentials it carries.
- Paste one anyway and the card tells you exactly that, and what to generate instead. It is a specific message rather than a generic parse failure, because the two strings are easy to mix up.
- The one you want starts with postgres:// or postgresql:// and points at db.prisma.io on 5432.
Everyone shares one hostname
Most managed Postgres services give you a hostname unique to your instance. Prisma does not, and it changes what the fields mean.
- Every Prisma Postgres database answers on db.prisma.io. There is no per-project or per-region hostname to look up.
- Your username and password are what select the database. They are generated in the Prisma Console rather than chosen by you, and they are the entire identity of the connection.
- That makes the credentials worth treating carefully. On most services a leaked password is scoped by an obscure hostname as well; here the hostname is public knowledge.
- The pasted string is never stored. It is read once to fill the form and then dropped, so the password lives in one place rather than two.
TLS is required and the agent does not leave it to chance
Because the hostname is fixed and known, the agent can be firm about this one.
- The agent forces TLS for db.prisma.io. The Use SSL checkbox defaults on, and clearing it does not produce an unencrypted connection to a Prisma host.
- The certificate chain is not verified. Encryption is required; validation of what signed the certificate is not performed, so read it as protection against eavesdropping rather than proof of what you reached.
- There is no connection pooler on this path. Prisma's pooling story lives in Accelerate, which this card deliberately does not use, so what you get is a direct connection with no pooled mode to choose.
- Everything downstream is ordinary Postgres: schemas, types, and public as the default schema in a cross-source reference.
-- Ordinary Postgres, read-only, over direct TCP
SELECT c.name,
COUNT(o.id) AS orders,
SUM(o.amount) AS revenue
FROM public.customers AS c
JOIN public.orders AS o ON o.customer_id = c.id
WHERE o.placed_at >= now() - interval '30 days'
GROUP BY c.name
ORDER BY revenue DESC;
Shared by every database connector
True of every database connector
- Outbound only — the agent opens one encrypted connection out to Query Streams. No inbound port to forward, no VPN, no IP allowlist, nothing about your database exposed to the internet.
- Credentials stay put — the database username and password live on the machine you installed the agent on. Query Streams never receives them and cannot reach your database on its own.
- Read-only, enforced — one statement at a time, SELECT and friends only. A write is rejected on your own machine before it is ever sent to the server, rather than relying on a permission somebody remembered to set.
- Deploy as many agents as you like — one per site, region or cloud. Every data source they can see arrives in a single dropdown, so nobody has to know which agent hosts what.
What you get once a query is saved
- Share the capability, not the SQL — a colleague or an outside partner can run your query and change its filters without ever seeing the statement behind it.
- Filters from either direction — declare them yourself as @variables, or let the connector spot the literal values already sitting in your WHERE clause and offer those as dropdowns.
- Read it from anywhere — Microsoft Excel, Google Sheets, Power BI, the REST API, AI assistants over MCP, the Query Builder and Nova all read the same saved query.
- Run several at once — five saved queries into five worksheet tabs, streamed concurrently, however large the results.
- Join it to anything else you have connected — another database, a business API, or a folder of files, in one read-only statement.
Cross-source SQL
Join Prisma to the rest of your data
One statement can span Prisma and your other connections at once. Each source runs only the part it can, streams the result back, and the join happens centrally — the sources never talk to each other and nothing is copied anywhere.
3 connections · 3 agents
One statement
-- nothing copied, nothing merged, nothing scheduled
SELECT c.region, COUNT(*) AS orders, SUM(i.amount_due) AS invoiced
FROM prisma_app.public.orders1 f
JOIN erp_sql.dbo.customers2 c ON c.id = f.customer_id
JOIN billing.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.region
ORDER BY invoiced DESC;
The three parts are connection, schema and table — and the connection name is whatever you called it. Illustrative columns; your tables will be your tables. Read-only applies to every piece: SELECT, WITH and EXPLAIN only, with a ceiling on how much any one source may hand over for a single query. How federated queries work
Connection details
What Prisma needs
- Host
- db.prisma.io — the same for every Prisma Postgres database
- Port
- 5432
- Driver
- Npgsql, carried by the agent — nothing to install at the Prisma end
- Paste format
- The direct TCP string from the Prisma Console, as a postgres:// URI
- Database
- postgres by default. Prisma's connection string often leaves it out
- Username
- Generated in the Prisma Console. It is what selects your database
- TLS
- Required, and forced by the agent for db.prisma.io. Encrypted; the certificate chain is not verified
- Pooling
- None. The agent applies no pooler adaptations for Prisma
- Not this card
- Prisma Accelerate URLs on prisma:// or prisma+postgres:// — the card rejects them and says which string to generate
- Saved as
- PostgreSQL, with Prisma kept as a badge — there is no connection type called Prisma
- Default schema
- public, which is what a federated reference carries
The Accelerate rejection is the most valuable thing this card does. Accelerate is Prisma's connection pooler and edge cache, and for an application it is usually the right thing to use — which is why the console offers it prominently. It is simply not a Postgres endpoint, so a tool connecting with a Postgres driver cannot speak to it. Without a specific message, pasting one produces a failure that reads like bad credentials and sends people to regenerate a password that was fine.
The shared hostname deserves a moment's thought about credentials. On a service where your database sits at a long unguessable hostname, that address is a weak second factor — not security, but friction. Prisma removes it by design: db.prisma.io is the same for everybody, so the generated username and password are doing all the work. Scope the user to read-only and treat the string as you would any other secret.
For a cross-source query Prisma is ordinary Postgres. A connection you called prisma_app is written prisma_app.public.orders, and it joins to a folder of CSVs, an on-premises system of record or a billing API in one read-only statement — with nothing copied and nothing scheduled.
Vendor documentation: www.prisma.io
FAQ
Questions about Prisma Postgres
Which tools can read Prisma Postgres data through Query Streams?
All of them, from one connection: Excel, Google Sheets, MCP, REST API, Airtable, Baserow, SeaTable, Smartsheet, Anvil, Power BI, scheduled alerts and reports. Connect the database once and every surface reads the same read-only connection — there is no per-tool setup and no second copy of the data.
Do I have to open a firewall port to my Prisma Postgres database?
No. The Query Streams Network Agent runs inside your network and opens a single outbound encrypted connection. Nothing listens for inbound traffic, no VPN is required, and the database keeps its existing firewall rules.
Can Query Streams change data in Prisma Postgres?
No. The agent enforces read-only at the point of execution — one statement at a time, SELECT and friends only. Credentials stay on the agent and are never sent to Query Streams.
What does Query Streams need to connect to Prisma Postgres?
A reachable host, a role and its password — the agent carries the driver, so nothing is installed on the database. Host: db.prisma.io — the same for every Prisma Postgres database. Port: 5432. Driver: Npgsql, carried by the agent — nothing to install at the Prisma end. Paste format: The direct TCP string from the Prisma Console, as a postgres:// URI.
Can I join Prisma Postgres to another database in the same query?
Yes — that is a federated query. One statement can reference Prisma Postgres and your other connections at once, written as connection.schema.table. Each source runs only the part it can and streams the result back; the join happens centrally, so the sources never connect to each other and nothing is copied or scheduled. Read-only applies to every piece — SELECT, WITH and EXPLAIN only — and there is a ceiling on how much any one source may hand over for a single query. Federated queries are a plan feature; the federated queries page carries the current source and size limits.
Is connecting Prisma Postgres different from connecting PostgreSQL?
Only the connection string. Prisma Postgres speaks the PostgreSQL wire protocol, so filters, scheduling, sharing, the Excel and Google Sheets add-ons and the MCP server all behave identically. The Prisma card pre-fills the host, port and SSL settings that provider expects.
Is there a Prisma to Excel guide?
Yes — it is the PostgreSQL guide, and it is correct for Prisma Postgres as written. Prisma speaks the PostgreSQL wire protocol, so Prisma to Excel, Prisma to Google Sheets and every other destination follow the same steps. The only Prisma-specific part is the connection string, and the Prisma card fills that in for you.
Put Prisma where the work happens
Install the agent, point it at your database, and pick a destination.
Read-only Outbound only Credentials stay on the agent

