Supabase MCP Server - 现代 BaaS 平台全功能管理工具

Supabase MCP Server

简介: Supabase 官方社区 MCP Server,提供 20+ 专业工具连接 Supabase 项目,支持数据库管理、边缘函数、存储、认证等全方位功能。采用 HTTP 托管服务模式,配置简单,并提供完善的安全控制选项。

功能特性

  • 20+ 专业工具 - 覆盖账户、数据库、边缘函数、存储全领域
  • HTTP 托管服务 - 无需本地安装,一行配置即可使用
  • OAuth 认证 - 安全的 Supabase 账户身份验证机制
  • 只读模式 - 可配置为只读,保护生产数据安全
  • 项目作用域 - 支持限定特定项目访问范围
  • 数据库分支 - 安全的开发测试环境,避免影响生产
  • TypeScript 类型生成 - 自动从 schema 生成类型定义
  • 多 IDE 支持 - Cursor、Claude Desktop、Windsurf、VS Code
  • 完善的日志诊断 - 查看多种服务日志和性能建议
  • 成本确认机制 - 操作前显示成本估算,避免意外费用

支持的工具

Supabase MCP Server 提供超过 20 个专业工具,涵盖账户管理、数据库操作、边缘函数、存储管理等全方位功能。

Account Management (账户管理)

完整的 Supabase 账户和项目管理能力:

  • list_projects - 列出所有 Supabase 项目
  • get_project - 获取项目详细信息
  • create_project - 创建新项目(包含区域、密码等配置)
  • pause_project - 暂停项目运行
  • restore_project - 恢复已暂停的项目
  • list_organizations - 列出所有组织
  • get_organization - 获取组织详情
  • get_cost - 获取项目或分支的成本估算
  • confirm_cost - 确认成本后执行操作

Database Operations (数据库操作)

强大的 PostgreSQL 数据库管理工具:

  • execute_sql - 执行 SQL 查询(支持只读模式限制)
  • list_tables - 列出指定 schema 的所有表
  • list_extensions - 列出数据库扩展
  • list_migrations - 列出所有迁移记录
  • apply_migration - 应用数据库迁移(自动版本管理)

Edge Functions (边缘函数)

Deno-based serverless 函数部署和管理:

  • deploy_edge_function - 部署 Edge Function
  • list_edge_functions - 列出所有函数
  • get_edge_function - 获取函数详情和代码

Storage Management (存储管理)

Supabase Storage 存储桶和文件管理:

  • list_storage_buckets - 列出所有存储桶
  • get_storage_config - 获取存储配置
  • update_storage_config - 更新存储配置(如文件大小限制)

Debugging & Development (调试与开发)

强大的调试和开发辅助工具:

  • get_logs - 获取项目日志(支持 postgres、edge-functions 等服务)
  • get_advisors - 获取安全和性能建议
  • get_project_url - 获取项目 URL
  • get_anon_key - 获取匿名访问密钥
  • generate_typescript_types - 从数据库 schema 生成 TypeScript 类型

Branching (数据库分支 - 实验性)

安全的数据库分支管理功能:

  • create_branch - 创建数据库分支
  • merge_branch - 合并分支到主库
  • reset_branch - 重置分支状态
  • rebase_branch - 变基分支

Knowledge Base (知识库)

  • search_docs - 搜索 Supabase 官方文档

安装配置

基础配置

Supabase MCP Server 采用 HTTP 托管模式,无需本地安装。在 Claude Desktop 配置文件中添加:

1
2
3
4
5
6
7
8
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp"
}
}
}

Cursor IDE 配置

1
2
3
4
5
6
7
{
"mcpServers": {
"supabase": {
"url": "https://mcp.supabase.com/mcp"
}
}
}

只读模式配置(推荐)

通过 URL 参数启用只读模式,防止意外的写入操作:

1
2
3
4
5
6
7
8
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp?read_only=true"
}
}
}

项目作用域配置

限定 MCP Server 只能访问特定项目:

1
2
3
4
5
6
7
8
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp?project_ref=abcdefghijklm"
}
}
}

高级配置

结合多个参数实现精细控制:

1
2
3
4
5
6
7
8
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp?read_only=true&project_ref=abcdefghijklm&features=account,database,storage"
}
}
}

可用参数说明:

  • read_only=true - 启用只读模式
  • project_ref=<ref> - 限定项目访问
  • features=<list> - 启用特定功能组(逗号分隔)
    • 可选值:account, database, storage, edge-functions, branching, debugging, development, knowledge-base

使用示例

1. 数据库查询

使用自然语言请求 AI 执行 SQL 查询:

1
请查询 users 表中最近 7 天注册的用户数量

AI 会调用 execute_sql 工具执行类似查询:

1
2
SELECT COUNT(*) FROM users
WHERE created_at >= NOW() - INTERVAL '7 days';

2. 创建数据库表

1
帮我创建一个博客文章表,包含标题、内容、作者ID和创建时间

AI 会生成并执行迁移:

1
2
3
4
5
6
7
CREATE TABLE posts (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
title TEXT NOT NULL,
content TEXT,
author_id UUID REFERENCES auth.users(id),
created_at TIMESTAMPTZ DEFAULT NOW()
);

3. 部署 Edge Function

1
创建一个 hello-world 边缘函数

AI 会调用 deploy_edge_function 部署:

1
2
3
4
5
6
Deno.serve((req) => {
return new Response(
JSON.stringify({ message: "Hello World!" }),
{ headers: { "Content-Type": "application/json" } }
);
});

4. 生成 TypeScript 类型

1
为 public schema 生成 TypeScript 类型定义

AI 会调用 generate_typescript_types 生成完整类型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
export interface Database {
public: {
Tables: {
users: {
Row: {
id: string;
email: string;
created_at: string;
};
Insert: {
id?: string;
email: string;
created_at?: string;
};
Update: {
id?: string;
email?: string;
created_at?: string;
};
};
};
};
}

5. 数据库分支工作流

创建安全的开发分支进行测试:

1
创建一个名为 feature-new-schema 的数据库分支

测试完成后合并:

1
将 feature-new-schema 分支合并到主库

6. 查看日志和诊断

1
查看最近 5 分钟的 postgres 日志
1
获取当前项目的性能和安全建议

适用场景

1. AI 辅助数据库设计

利用 AI 智能设计表结构、关系和索引:

  • 自然语言描述需求,AI 生成最优 schema
  • 自动创建外键关系和索引
  • 生成数据库迁移脚本

2. 数据查询优化

通过自然语言生成优化的 SQL 查询:

  • 复杂的 JOIN 查询
  • 聚合统计分析
  • 数据洞察和报表

3. 边缘函数开发

快速编写和部署 Deno Edge Functions:

  • AI 生成函数代码
  • 自动部署到 Supabase 边缘网络
  • 实现 serverless API

4. 类型安全开发

自动从数据库 schema 生成 TypeScript 类型:

  • 保证前端和后端类型一致
  • 减少类型错误
  • 提升开发效率

5. 数据库分支测试

创建安全的开发分支,测试变更:

  • 隔离的测试环境
  • 验证迁移脚本
  • 安全合并到生产环境

6. 项目快速原型

AI 加速 Supabase 项目搭建:

  • 快速创建和配置新项目
  • 自动设置数据库 schema
  • 部署必要的边缘函数

7. 存储管理

管理 Supabase Storage:

  • 创建和配置存储桶
  • 设置访问控制策略
  • 管理文件大小限制

8. 调试诊断

快速定位和解决问题:

  • 查看实时日志
  • 获取性能优化建议
  • 安全漏洞检测

安全最佳实践

1. 使用开发项目

强烈建议:仅在开发/测试项目中使用 MCP Server,不要连接生产环境。

原因:

  • LLM 可能误解指令执行危险操作
  • 提示注入攻击风险
  • 数据泄露风险

2. 启用只读模式

对于数据查询场景,始终启用只读模式:

1
2
3
{
"url": "https://mcp.supabase.com/mcp?read_only=true"
}

3. 限定项目作用域

避免暴露所有项目,限定到特定项目:

1
2
3
{
"url": "https://mcp.supabase.com/mcp?project_ref=your-dev-project"
}

4. 使用数据库分支

进行 schema 变更时使用分支功能:

  1. 创建开发分支
  2. 在分支中测试变更
  3. 验证无误后合并

5. 限制功能组

只启用必需的功能组:

1
2
3
{
"url": "https://mcp.supabase.com/mcp?features=database,knowledge-base"
}

6. 不要分享给客户

MCP Server 是开发工具,不应:

  • 暴露给最终用户
  • 用于客户支持场景
  • 嵌入到客户端应用

7. 手动审批危险操作

在支持的 IDE 中启用工具调用手动审批:

  • 审查所有 SQL 执行
  • 确认删除和修改操作
  • 验证成本产生操作

技术架构

HTTP 托管服务

Supabase MCP Server 采用 HTTP 传输协议:

  • 服务端点: https://mcp.supabase.com/mcp
  • 本地开发: http://localhost:54321/mcp
  • 传输协议: Streamable HTTP
  • 认证方式: OAuth

OAuth 认证流程

  1. 客户端发起请求到 MCP Server
  2. Server 返回 OAuth 授权 URL
  3. 浏览器打开授权页面
  4. 用户登录 Supabase 账户
  5. 授权成功,返回访问令牌
  6. 客户端使用令牌访问 API

工具调用流程

1
2
3
4
5
AI Assistant → MCP Client → HTTP Request → Supabase MCP Server

Supabase API

PostgreSQL / Edge Functions / Storage

成本确认机制

对于会产生费用的操作(如创建项目、创建分支),MCP Server 实现两步确认:

  1. 调用 get_cost 获取成本估算
  2. 显示成本给用户
  3. 用户确认后调用 confirm_cost
  4. 执行实际操作

与其他 MCP Server 对比

vs. 原生 Supabase CLI

特性 Supabase MCP Server Supabase CLI
AI 集成 ✅ 原生支持 ❌ 需要手动包装
自然语言 ✅ 支持 ❌ 命令行参数
配置复杂度 低(HTTP 托管) 中(需要安装)
功能覆盖 核心功能 完整功能
安全控制 细粒度 依赖权限

vs. PostgreSQL MCP Server

特性 Supabase MCP Server PostgreSQL MCP Server
功能范围 Supabase 全栈 仅数据库
Edge Functions ✅ 支持 ❌ 不支持
Storage ✅ 支持 ❌ 不支持
分支功能 ✅ 支持 ❌ 不支持
文档搜索 ✅ 内置 ❌ 需要外部

vs. MongoDB MCP Server

特性 Supabase MCP Server MongoDB MCP Server
数据库类型 PostgreSQL(关系型) MongoDB(文档型)
SQL 支持 ✅ 原生 ❌ 不支持
Edge Functions ✅ Deno-based ❌ 不支持
类型生成 ✅ TypeScript 部分支持
托管服务 HTTP stdio

常见问题

Q: 可以在生产环境使用吗?

A: 不建议。MCP Server 设计用于开发和测试环境。在生产环境中使用存在以下风险:

  • LLM 可能误解指令
  • 提示注入攻击
  • 意外的数据修改或删除

Q: 只读模式有什么限制?

A: 启用只读模式后,以下操作将被禁止:

  • SQL 写入操作(INSERT、UPDATE、DELETE)
  • 创建/修改表和索引
  • 应用迁移
  • 部署 Edge Functions
  • 修改存储配置

Q: 如何获取项目引用 ID (project_ref)?

A: 项目引用 ID 可以从项目 URL 中获取:

1
2
3
https://app.supabase.com/project/abcdefghijklm

这就是 project_ref

Q: 数据库分支功能稳定吗?

A: 数据库分支目前是实验性功能,建议:

  • 仅在开发环境使用
  • 合并前充分测试
  • 保留主库备份

Q: 支持自托管 Supabase 吗?

A: 官方 MCP Server 目前仅支持 Supabase Cloud。对于自托管实例,可以使用:

Q: 如何限制工具使用范围?

A: 通过 features 参数限制功能组:

1
2
3
{
"url": "https://mcp.supabase.com/mcp?features=database,knowledge-base"
}

Q: 成本确认机制如何工作?

A: 对于会产生费用的操作,MCP Server 会:

  1. 先调用 get_cost 显示预估成本
  2. 等待用户确认
  3. 用户同意后调用 confirm_cost
  4. 执行实际操作

Q: 支持哪些 AI 客户端?

A: 支持所有兼容 MCP 协议的客户端:

  • Cursor
  • Claude Desktop
  • Windsurf
  • VS Code (需要 MCP 扩展)
  • Cline
  • 其他 MCP 兼容客户端

相关资源

更新日志

最新版本

  • 支持 20+ 专业工具
  • HTTP 托管服务模式
  • OAuth 认证集成
  • 只读模式和项目作用域
  • 数据库分支功能(实验性)
  • TypeScript 类型生成
  • 成本确认机制
  • 完善的日志和诊断工具
© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero