# Supabase MCP

> Supabase manages your entire backend infrastructure through conversation. Use this MCP to list, create, and manage projects across different regions, configure Postgres settings like max connections, and handle all project secrets—all without leaving your AI client.

## Overview
- **Category:** loved-by-devs
- **Price:** Free
- **Tags:** postgres, backend-as-a-service, database-management, secret-management, branching, cloud-deployment

## Description

Managing a complex backend stack usually means jumping between dashboards: checking project status in one tab, updating environment variables in another, and adjusting database limits on a third. This MCP lets you take full control of your entire Supabase setup using nothing but natural conversation.

Your agent acts like a dedicated DevOps engineer right inside your IDE. You can list all organizations or check the details for a specific project reference. Need to prepare an environment? You'll create development branches with isolated databases instantly. You also get deep control over Postgres settings, allowing you to view and update parameters like work_mem. If you need better security, you can manage API keys and credentials by creating or deleting secrets safely. It’s the complete backend toolkit that lets you focus on coding instead of clicking through administrative dashboards. We built this MCP so your AI client gets access to everything, all organized within the Vinkius catalog.

## Tools

### create_branch
Creates an isolated copy of your database for development work on a specific project.

### create_project
Provisions an entirely new Supabase project, including Postgres, Auth, and Storage services.

### create_secret
Securely adds a new API key or credential to the project's environment secrets.

### delete_secret
Permanently removes an existing secret from the project; this action cannot be undone.

### get_user
Checks which Supabase user is currently authenticated to confirm token access.

### get_postgres_config
Retrieves the current operational settings for the project's PostgreSQL database.

### get_project
Fetches specific details about one Supabase project using its unique reference ID.

### list_branches
Retrieves a list of all development branches and their current status for a given project.

### list_organizations
Shows all organizations linked to the account, along with their names and creation dates.

### list_projects
Lists every Supabase project associated with the account, providing key info like region and status.

### list_secrets
Displays all stored API keys and credentials for a specific project.

### pause_project
Stops compute resources on a project, preserving the database data so costs stop accruing.

### restore_project
Brings a previously paused Supabase project back to an active, fully operational state.

### update_postgres_config
Modifies database settings like memory limits or connection pools for the project.

## Prompt Examples

**Prompt:** 
```
Show me all my Supabase projects and their regions.
```

**Response:** 
```
I found 4 projects: 'prod-api' (us-east-1, active), 'staging-api' (us-east-1, active), 'dev-sandbox' (eu-west-2, active) and 'analytics-db' (ap-southeast-1, paused). Would you like details on any specific project?
```

**Prompt:** 
```
Create a new dev branch called 'feature-auth' for my staging-api project.
```

**Response:** 
```
Done! I've created the branch 'feature-auth' for your staging-api project. It has an isolated copy of the database that you can modify independently. The branch status is 'CREATING' and should be ready in a few minutes.
```

**Prompt:** 
```
Pause my dev-sandbox project to save costs.
```

**Response:** 
```
Done! I've paused the 'dev-sandbox' project. All compute resources have been stopped and costs will no longer accrue. Your database and data are fully preserved. You can restore it anytime with `restore_project`.
```

## Capabilities

### Project and Organization Discovery
List all organizations or retrieve detailed information about any specific Supabase project.

### Backend Lifecycle Management
Pause unused projects to save money, restore data from a paused state, or create new projects in different regions.

### Database Environment Isolation
Create isolated development branches for testing features without impacting the main production database.

## Use Cases

### Scaling up a new feature requires a fresh environment.
A developer needs to test an OAuth change. They ask their agent to 'Create a dev branch called auth-test for the staging API.' The agent executes `create_branch`, giving them a safe, isolated copy of the database immediately.

### The quarterly audit shows unused projects costing money.
A DevOps engineer asks their agent to 'Find all inactive projects and pause them.' The agent runs `list_projects` and then calls `pause_project` for every dormant entry, stopping costs automatically.

### Need to adjust database performance limits.
A team lead notices slow query times. They ask their agent to 'Check the current Postgres config and increase work_mem.' The agent uses `get_postgres_config` and then executes `update_postgres_config`, adjusting the settings in one go.

### Migrating a project requires new credentials.
A solutions architect needs to secure an API endpoint for a client. They ask their agent to 'Create a new secret called billing-api key.' The agent uses `create_secret` and confirms the value is encrypted at rest.

## Benefits

- You can provision a new development branch using `create_branch` and get an isolated copy of the database instantly. This means your team can test big features without fear of breaking production data.
- Stop paying for idle resources. Use `pause_project` to suspend entire projects when they aren't in use, saving money while ensuring all your core data remains perfectly intact.
- Maintain total security control by using `create_secret` and `list_secrets`. You never have to manually update or copy sensitive credentials across different files or platforms again.
- Tweak the database performance directly. With `get_postgres_config`, you can see current settings, and then use `update_postgres_config` to change parameters like max connections without writing complex SQL scripts.
- The whole process is centralized. Instead of clicking through multiple dashboards, your AI agent handles project discovery with `list_organizations` and getting deep details with `get_project`, all in one conversation flow.

## How It Works

The bottom line is that you talk to your AI client, and it handles all the complex API calls needed to manage your entire backend stack.

1. First, subscribe to this MCP and provide your Supabase Personal Access Token.
2. Next, tell your AI agent what you need done—for example, 'List all my projects in the EU region' or 'Update max_connections.'
3. Finally, the MCP executes the action via the API and returns a clear confirmation of the changes made to your backend.

## Frequently Asked Questions

**How do I check project status with Supabase Alternative MCP?**
You use `list_projects` to see a comprehensive list of every associated project. This tool returns key details like the region and whether the project is active or paused.

**Can I change database settings using Supabase Alternative MCP?**
Yes, you can modify Postgres configuration parameters. Use `update_postgres_config` by providing the specific project reference and the JSON object containing the desired changes.

**What is the best way to test a new feature branch?**
First, use `create_branch`. This tool makes an isolated copy of your current database, allowing you and your team to experiment freely without any risk to the live project data.

**Is it safe to manage secrets with Supabase Alternative MCP?**
Yes. You use `create_secret` and `list_secrets`, and all credentials are encrypted at rest. Your agent handles this secure process, so you don't have to worry about manual key management.

**How do I stop paying for a project I'm not using?**
Run `pause_project` with the specific project reference. This preserves your database and data while stopping compute resources, preventing any further charges.