Route Supabase MCP traffic through Formal to control and log what AI agents do in Supabase:
Under OAuth app, choose one of the two options.
The rule matches known agents only.
See Identity headers.Cloud agents such as Claude, ChatGPT and Cursor Cloud Agents don’t run the Endpoint.
Point them at this server’s Connector address, See MCP resources for the
- Block risky tools, such as
execute_sql. - Mask sensitive data in tool results, such as emails and phone numbers in
execute_sqlresponses. - Keep credentials at the Connector, so users and agents never see Supabase tokens.
- Log every tool call with the user, the MCP client and its parameters.
0. Prepare your Connector
The Connector needs an MCP listener and a hostname with wildcard DNS and TLS. Set them up once by following Deploy the Connector. Every MCP server reuses them.1. Add Supabase MCP server to your Resources
- UI
- Terraform
- Pulumi
- API
- Open the Admin Catalog and click Add MCP.
- Select the Supabase template.
- Enter a DNS-label Name, such as
supabase. - Choose the Space containing your Connector, such as
default. - Configure upstream authentication as described below, then save.
No Connector is in this server's Space.2. Setup Authentication
- Linked Accounts (Recommended)
- Pass Through
Each user links their own Supabase account once in the Employee Catalog, and the Connector sends that user’s token to Supabase.

1. Formal’s App (default)
Formal has a registered OAuth app with Supabase, so you register nothing. Users see Formal on Supabase’s consent screen.2. Your OAuth App
Users see your app’s name on Supabase’s consent screen.Set up your own Supabase OAuth app
Set up your own Supabase OAuth app
See Supabase OAuth documentation and register an app.
1
Open OAuth apps
In the Supabase dashboard, open your organization’s OAuth apps page and add a new application.
2
Name the app
Name the app for its purpose, for example Formal MCP, and enter a website URL.
3
Add the Redirect URI
Paste Formal’s Redirect URI into the app’s Callback URL field.
4
Grant scopes
Grant write access to all available scopes; the MCP server currently requires all of them.
5
Copy credentials
After creating the app, copy the Client ID and Client secret.
6
Enter the app in Formal
- UI
- Terraform
- Pulumi
- API
Back in the Admin Catalog, enter the Client ID and Client secret, then save.
Users then link their accounts on the Supabase server’s page in the Employee Catalog.

3. Route Endpoint traffic
Auth is managed at the Connector level when you use Linked Accounts or Shared Credentials, so the Endpoint needs to forward the MCP traffic to it. Laptops and VMs with the Formal Endpoint keep usinghttps://mcp.supabase.com/mcp, and a network rule sends that traffic to the Connector.- UI
- Terraform
- Pulumi
- API
- Go to Network Rules and create a rule named
supabase-mcp. - Paste this expression, set the rule to Active, then save:
https://supabase.<connector-hostname>/mcp.
Find it in the Admin Catalog: open Supabase, then copy Connector address on the Configuration tab.4. Create policies
Tools
The Admin Catalog lists these tools for Supabase:Policies examples
- Block a tool
- Mask a tool's output
This policy blocks the tools that change data, so agents can only read Supabase.
input.mcp fields and Rewrite Action for body rewrites.5. Check the logs
Open Logs and search forresource.name:supabase.
Each Supabase tool call is one request log with the user, the MCP client and the tool.
Open a log to see its tool parameters and the policies it triggered.
A blocked write shows the block policy and its message.
A masked search shows the rewrite policy.See Logs for search syntax and filters.Troubleshooting
The agent says Formal has no current sign-in
The agent says Formal has no current sign-in
The agent relays:
Formal has no current supabase sign-in for you. Link or re-link your supabase account in Formal…Cause: The user never linked Supabase, or the token expired and couldn’t be refreshed.Fix: Open the server in the Employee Catalog and link Supabase again.The agent says Supabase rejected your credentials
The agent says Supabase rejected your credentials
The agent relays:
supabase rejected your credentials. Link or re-link your supabase account in Formal…Cause: Supabase no longer accepts the linked token, for example after the user revoked access in Supabase.Fix: Link Supabase again from the Employee Catalog.With Shared Credentials, the message asks the user to contact an administrator. Replace the token in the server’s Shared Credentials.Laptop traffic doesn't appear in Logs
Laptop traffic doesn't appear in Logs
Cause: The Endpoint isn’t running, or the network rule doesn’t match the client.Fix: Check the Endpoint is connected. The rule above only matches known agents. Other clients, such as a browser, reach Supabase directly unless the rule also matches them. See Network rules.
MCP clients can't connect directly yet
MCP clients can't connect directly yet
Cause: The Configuration tab lists the reason, most often
No Connector is in this server's Space.Fix: Edit the server and choose the Space containing its Connector.Next Steps
MCP Gateway
Configure Connector routing and downstream access
All MCP servers
Browse every MCP server template

