将Supabase连接到AI助手
将Supabase连接到AI助手
技术背景
Supabase MCP Server 可将 Supabase 项目连接到 Cursor、Claude、Windsurf 等 AI 助手。Model Context Protocol (MCP) 对大语言模型(LLMs)与 Supabase 等外部服务的交互进行了标准化,使 AI 助手能直接与 Supabase 项目连接,并执行管理表、获取配置和查询数据等任务。
实现步骤
前提条件
需在机器上安装 Node.js,可通过运行 node -v
检查。若未安装,可从 nodejs.org 下载。
安装设置
- 个人访问令牌(PAT):
首先,进入 Supabase 设置并创建一个个人访问令牌,为其命名以描述其用途,如 “Cursor MCP Server”。此令牌用于对 MCP 服务器与 Supabase 账户进行身份验证。确保复制该令牌,因为之后将无法再次查看。 - 配置 MCP 客户端:
接下来,配置 MCP 客户端(如 Cursor)以使用此服务器。大多数 MCP 客户端以 JSON 格式存储配置,如下所示:
1 |
|
将 <personal-access-token>
替换为步骤 1 中创建的令牌。或者,可省略 --access-token
,而是将 SUPABASE_ACCESS_TOKEN
环境变量设置为个人访问令牌(设置后需重启 MCP 客户端),这样若将此配置提交到存储库,可避免令牌出现在版本控制中。
附加选项
--project-ref
:用于将服务器限定到特定项目。--read-only
:用于将服务器限制为只读查询。
Windows 系统注意事项
在 Windows 上,需在命令前添加前缀:
1 |
|
或者,若在 WSL 中运行 Node.js:
1 |
|
确保 Node.js 位于系统的 PATH
环境变量中。若在 Windows 上本地运行 Node.js,可在终端中运行以下命令设置:
1 |
|
重启 MCP 客户端。
项目限定模式
默认情况下,MCP 服务器可访问 Supabase 账户中的所有组织和项目。若要将服务器限制到特定项目,可在 CLI 命令中设置 --project-ref
标志:
1 |
|
将 <project-ref>
替换为项目的 ID,可在 Supabase 项目设置的 “Project ID” 下找到。将服务器限定到项目后,list_projects
和 list_organizations
等账户级工具将不再可用,服务器仅能访问指定项目及其资源。
只读模式
若要将 Supabase MCP 服务器限制为只读查询,可在 CLI 命令中设置 --read-only
标志:
1 |
|
这可防止通过以只读 Postgres 用户身份执行 SQL 对任何数据库进行写操作。注意,此标志仅适用于数据库工具(execute_sql
和 apply_migration
),不适用于 create_project
或 create_branch
等其他工具。
可用工具
此服务器版本低于 1.0,因此版本之间可能会有重大更改。由于 LLMs 会自动适应可用工具,这通常不会影响大多数用户。LLM 可使用以下 Supabase 工具:
- 项目管理:若服务器限定到项目,这些工具将不可用。
list_projects
:列出用户的所有 Supabase 项目。get_project
:获取项目的详细信息。create_project
:创建新的 Supabase 项目。pause_project
:暂停项目。restore_project
:恢复项目。list_organizations
:列出用户所属的所有组织。get_organization
:获取组织的详细信息。
- 数据库操作:
list_tables
:列出指定架构中的所有表。list_extensions
:列出数据库中的所有扩展。list_migrations
:列出数据库中的所有迁移。apply_migration
:将 SQL 迁移应用到数据库。传递给此工具的 SQL 将在数据库中跟踪,因此 LLMs 应将其用于 DDL 操作(架构更改)。execute_sql
:在数据库中执行原始 SQL。LLMs 应将其用于不更改架构的常规查询。get_logs
:按服务类型(api、postgres、edge functions、auth、storage、realtime)获取 Supabase 项目的日志。LLMs 可使用此工具进行调试和监控服务性能。
- 边缘函数管理:
list_edge_functions
:列出 Supabase 项目中的所有边缘函数。deploy_edge_function
:将新的边缘函数部署到 Supabase 项目。LLMs 可使用此工具部署新函数或更新现有函数。
- 项目配置:
get_project_url
:获取项目的 API URL。get_anon_key
:获取项目的匿名 API 密钥。
- 分支管理(实验性,需要付费计划):
create_branch
:从生产分支创建带有迁移的开发分支。list_branches
:列出所有开发分支。delete_branch
:删除开发分支。merge_branch
:将开发分支的迁移和边缘函数合并到生产分支。reset_branch
:将开发分支的迁移重置到先前版本。rebase_branch
:将开发分支基于生产分支进行变基以处理迁移漂移。
- 开发工具:
generate_typescript_types
:根据数据库架构生成 TypeScript 类型。LLMs 可将其保存到文件并在代码中使用。
- 成本确认:
get_cost
:获取组织的新项目或分支的成本。confirm_cost
:确认用户对新项目或分支成本的理解。创建新项目或分支需要此步骤。
其他 MCP 服务器
@supabase/mcp-server-postgrest
:PostgREST MCP 服务器允许通过 REST API 将自己的用户连接到应用程序。更多详细信息请参阅其项目 README。
资源
- Model Context Protocol:了解更多关于 MCP 及其功能的信息。
- 从开发到生产:了解如何安全地将更改推广到生产环境。
许可证
本项目采用 Apache 2.0 许可证。详情请参阅 LICENSE
文件。