feat: add Supabase MCP server to registry (#5629)
Signed-off-by: Pedro Rodrigues <pedro.rodrigues@supabase.io>
This commit is contained in:
@@ -0,0 +1,213 @@
|
||||
---
|
||||
title: Supabase Extension
|
||||
description: Add Supabase MCP Server as a goose Extension
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions';
|
||||
import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller';
|
||||
|
||||
This tutorial covers how to add the [Supabase MCP Server](https://github.com/supabase-community/supabase-mcp) as a goose extension to interact with your Supabase projects, manage tables, query data, deploy Edge Functions, and interact with your Supabase backend directly.
|
||||
|
||||
:::tip TLDR
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="ui" label="goose Desktop" default>
|
||||
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.supabase.com%2Fmcp&id=supabase&name=Supabase&description=Connect%20your%20Supabase%20projects%20to%20AI%20assistants.%20Manage%20tables%2C%20query%20data%2C%20deploy%20Edge%20Functions%2C%20and%20interact%20with%20your%20Supabase%20backend%20directly%20from%20your%20MCP%20client.)
|
||||
</TabItem>
|
||||
<TabItem value="cli" label="goose CLI">
|
||||
Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
|
||||
|
||||
**Endpoint URL**
|
||||
```
|
||||
https://mcp.supabase.com/mcp
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
### Supabase Remote MCP
|
||||
|
||||
The Supabase MCP Server is hosted by Supabase and provides OAuth-based authentication. When you connect, you'll be redirected to supabase.com to sign in to your account.
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="ui" label="goose Desktop" default>
|
||||
|
||||
<GooseDesktopInstaller
|
||||
extensionId="supabase"
|
||||
extensionName="Supabase"
|
||||
description="Connect your Supabase projects to AI assistants. Manage tables, query data, deploy Edge Functions, and interact with your Supabase backend directly from your MCP client."
|
||||
type="http"
|
||||
url="https://mcp.supabase.com/mcp"
|
||||
envVars={[]}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="cli" label="goose CLI">
|
||||
|
||||
<CLIExtensionInstructions
|
||||
name="Supabase"
|
||||
description="Connect your Supabase projects to AI assistants. Manage tables, query data, deploy Edge Functions, and interact with your Supabase backend directly from your MCP client."
|
||||
type="http"
|
||||
url="https://mcp.supabase.com/mcp"
|
||||
timeout={300}
|
||||
envVars={[]}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
#### OAuth Flow
|
||||
|
||||
When you first connect to the Supabase MCP Server through goose, an OAuth window will open in your browser. Follow the prompts to authorize access to your Supabase projects.
|
||||
|
||||
:::note Security Note
|
||||
The Supabase MCP Server grants access to your database and project management capabilities. Always review LLM-requested actions before execution and ensure you're working in the appropriate environment (development, staging, production).
|
||||
:::
|
||||
|
||||
## Example Usage
|
||||
|
||||
### Example 1: List Your Supabase Projects
|
||||
|
||||
Get an overview of all your Supabase projects and their configurations.
|
||||
|
||||
#### goose Prompt
|
||||
|
||||
```
|
||||
List all my Supabase projects
|
||||
```
|
||||
|
||||
#### goose Output
|
||||
|
||||
:::note Desktop
|
||||
|
||||
```
|
||||
Here are your Supabase projects:
|
||||
|
||||
1. my project (ID: abc123xyz789defg)
|
||||
- Region: US West 1
|
||||
- Created: October 30, 2025
|
||||
- Status: ACTIVE_HEALTHY
|
||||
- Database: PostgreSQL 17.6.1.031 (Engine v17)
|
||||
- Host: db.abc123xyz789defg.supabase.co
|
||||
|
||||
2. new project (ID: jkl456mno012pqrs)
|
||||
- Region: US West 1
|
||||
- Created: October 31, 2025
|
||||
- Status: INACTIVE
|
||||
- Database: PostgreSQL 17.6.1.032 (Engine v17)
|
||||
- Host: db.jkl456mno012pqrs.supabase.co
|
||||
|
||||
Would you like more detailed information about any specific project?
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### Example 2: Query Database Tables
|
||||
|
||||
Discover and query tables within your Supabase project.
|
||||
|
||||
#### goose Prompt
|
||||
|
||||
```
|
||||
What tables exist in my project?
|
||||
```
|
||||
|
||||
#### goose Output
|
||||
|
||||
:::note Desktop
|
||||
|
||||
```
|
||||
Tables in my project (public schema):
|
||||
|
||||
1. users
|
||||
- RLS Enabled: Yes
|
||||
- Row count: 150
|
||||
- Columns: id (uuid), email (text), name (text), created_at (timestamptz), role (text)
|
||||
- Primary Key: id
|
||||
- Foreign Keys: Referenced by posts.user_id, profiles.user_id
|
||||
|
||||
2. posts
|
||||
- RLS Enabled: Yes
|
||||
- Row count: 342
|
||||
- Columns: id (uuid), user_id (uuid), title (text), content (text), created_at (timestamptz)
|
||||
- Primary Key: id
|
||||
- Foreign Keys: References users.id, referenced by comments.post_id
|
||||
|
||||
3. comments
|
||||
- RLS Enabled: Yes
|
||||
- Row count: 1089
|
||||
- Columns: id (uuid), post_id (uuid), user_id (uuid), content (text), created_at (timestamptz)
|
||||
- Primary Key: id
|
||||
- Foreign Keys: References posts.id, references users.id
|
||||
|
||||
4. profiles
|
||||
- RLS Enabled: Yes
|
||||
- Row count: 150
|
||||
- Columns: id (uuid), user_id (uuid), bio (text), avatar_url (text), updated_at (timestamptz)
|
||||
- Primary Key: id
|
||||
- Foreign Keys: References users.id
|
||||
|
||||
5. categories
|
||||
- RLS Enabled: No
|
||||
- Row count: 12
|
||||
- Columns: id (uuid), name (text), description (text), created_at (timestamptz)
|
||||
- Primary Key: id
|
||||
|
||||
Would you like to query data from any of these tables?
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### Example 3: Deploy an Edge Function
|
||||
|
||||
Deploy and manage Supabase Edge Functions directly through goose.
|
||||
|
||||
#### goose Prompt
|
||||
|
||||
```
|
||||
Deploy a new Edge Function called 'hello-world' that returns a simple JSON response
|
||||
```
|
||||
|
||||
#### goose Output
|
||||
|
||||
:::note Desktop
|
||||
|
||||
```
|
||||
Edge Function deployed successfully!
|
||||
|
||||
Function Name: hello-world
|
||||
Version: 1
|
||||
Status: ACTIVE
|
||||
Function ID: c4e03748-3e72-45e2-bdca-03f7e4800874
|
||||
Project: my project (tabowbdrhvtlvzvfyinw)
|
||||
Entrypoint: index.ts
|
||||
JWT Verification: Enabled
|
||||
Created: November 8, 2025
|
||||
|
||||
Function code:
|
||||
```typescript
|
||||
Deno.serve(async (req) => {
|
||||
return new Response(
|
||||
JSON.stringify({ message: "Hello World!" }),
|
||||
{ headers: { "Content-Type": "application/json" } },
|
||||
)
|
||||
})
|
||||
```
|
||||
|
||||
Endpoint:
|
||||
https://tabowbdrhvtlvzvfyinw.supabase.co/functions/v1/hello-world
|
||||
|
||||
You can test the function by sending a request to the endpoint above.
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Additional Resources
|
||||
|
||||
For more information about the Supabase MCP Server and its capabilities, visit:
|
||||
- [Supabase MCP Server GitHub Repository](https://github.com/supabase-community/supabase-mcp)
|
||||
- [Supabase Documentation](https://supabase.com/docs)
|
||||
- [Supabase Dashboard](https://supabase.com/dashboard)
|
||||
@@ -308,6 +308,17 @@
|
||||
"endorsed": false,
|
||||
"environmentVariables": []
|
||||
},
|
||||
{
|
||||
"id": "gotoHuman-mcp",
|
||||
"name": "gotoHuman MCP Server",
|
||||
"description": "Adds human approvals into your workflows",
|
||||
"command": "npx -y @gotohuman/mcp-server",
|
||||
"link": "https://github.com/gotohuman/gotohuman-mcp-server",
|
||||
"installation_notes": "Install using npx package manager.",
|
||||
"is_builtin": false,
|
||||
"endorsed": false,
|
||||
"environmentVariables": []
|
||||
},
|
||||
{
|
||||
"id": "i-ching",
|
||||
"name": "I Ching",
|
||||
@@ -561,6 +572,24 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "supabase",
|
||||
"name": "Supabase",
|
||||
"description": "Connect your Supabase projects to AI assistants. Manage tables, query data, deploy Edge Functions, and interact with your Supabase backend directly from your MCP client.",
|
||||
"type": "streamable-http",
|
||||
"url": "https://mcp.supabase.com/mcp",
|
||||
"link": "https://github.com/supabase-community/supabase-mcp",
|
||||
"installation_notes": "Streaming HTTP extension with OAuth browser authentication to your Supabase account.",
|
||||
"is_builtin": false,
|
||||
"endorsed": true,
|
||||
"environmentVariables": [
|
||||
{
|
||||
"name": "SUPABASE_PERSONAL_ACCESS_TOKEN",
|
||||
"description": "Personal access token (optional; use if not authenticating via browser OAuth)",
|
||||
"required": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "tavily",
|
||||
"name": "Tavily Web Search",
|
||||
@@ -599,16 +628,5 @@
|
||||
"is_builtin": false,
|
||||
"endorsed": false,
|
||||
"environmentVariables": []
|
||||
},
|
||||
{
|
||||
"id": "gotoHuman-mcp",
|
||||
"name": "gotoHuman MCP Server",
|
||||
"description": "Adds human approvals into your workflows",
|
||||
"command": "npx -y @gotohuman/mcp-server",
|
||||
"link": "https://github.com/gotohuman/gotohuman-mcp-server",
|
||||
"installation_notes": "Install using npx package manager.",
|
||||
"is_builtin": false,
|
||||
"endorsed": false,
|
||||
"environmentVariables": []
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user