Supabase 独立开发<八>:CLI & MCP

5 阅读3分钟

这篇文章我们介绍 Supabase 中的开发和提效部分。首先是 Supabase cli,这是在用 Supabase 开发时必用的工具。其次是 Supabase MCP,通过 MCP 可以直接让AI完成操作远程数据库等操作。

Supabase CLI

Supabase CLI 是一个命令行工具,用于管理 Supabase 项目。它提供了一组命令,例如创建项目、生成 Data API 的类型代码、在本地启动开发环境、同步本地开发环境和远程数据库和通过管理API管理远程的 Supabase 项目。

Usage:
  supabase [command]

Quick Start:
  bootstrap            Bootstrap a Supabase project from a starter template

Local Development:
  db                   Manage Postgres databases
  gen                  Run code generation tools
  init                 Initialize a local project
  inspect              Tools to inspect your Supabase project
  link                 Link to a Supabase project
  login                Authenticate using an access token
  logout               Log out and delete access tokens locally
  migration            Manage database migration scripts
  seed                 Seed a Supabase project from supabase/config.toml
  services             Show versions of all Supabase services
  start                Start containers for Supabase local development
  status               Show status of local Supabase containers
  stop                 Stop all local Supabase containers
  test                 Run tests on local Supabase containers
  unlink               Unlink a Supabase project

Management APIs:
  backups              Manage Supabase physical backups
  branches             Manage Supabase preview branches
  config               Manage Supabase project configurations
  domains              Manage custom domain names for Supabase projects
  encryption           Manage encryption keys of Supabase projects
  functions            Manage Supabase Edge functions
  network-bans         Manage network bans
  network-restrictions Manage network restrictions
  orgs                 Manage Supabase organizations
  postgres-config      Manage Postgres database config
  projects             Manage Supabase projects
  secrets              Manage Supabase secrets
  snippets             Manage Supabase SQL snippets
  ssl-enforcement      Manage SSL enforcement configuration
  sso                  Manage Single Sign-On (SSO) authentication for projects
  storage              Manage Supabase Storage objects
  vanity-subdomains    Manage vanity subdomains for Supabase projects

Supabase CLI 操作流程为:

  1. 通过 supabase login 登录你的 Supabase 官方平台
  2. 通过 supabase link 将本地项目和远程 Supabase 项目连接
  3. 通过 supabase start 你可以快速启动一个本地的开发环境,包含 supabase 的几乎所有功能
  4. 在本地开发环境进行开发和测试,完成后准备部署上线
  5. 通过 supabase db diff 可以自动和远程 Supabase 项目对比生成数据库迁移 SQL
  6. 通过 supabase db push 可以将生成的数据库迁移 SQL 推送到远程 Supabase 数据库
  7. 通过 supabase functions deploy 可以将本地的 Edge Function 修改部署到远程 Supabase 项目

Supabase MCP

你也可以使用 Supabase MCP 连接到远程 Supabase 项目,从而管理远程 Supabase 项目。Supabse 提供了一组工具,非常好用,可以在任意的 AI 编程工具中集成。下面是工具列表:

🟢 supabase - Ready (23 tools)
  Tools:
  - apply_migration
  - create_branch
  - delete_branch
  - deploy_edge_function
  - execute_sql
  - generate_typescript_types
  - get_advisors
  - get_edge_function
  - get_logs
  - get_project_url
  - get_publishable_keys
  - get_storage_config
  - list_branches
  - list_edge_functions
  - list_extensions
  - list_migrations
  - list_storage_buckets
  - list_tables
  - merge_branch
  - rebase_branch
  - reset_branch
  - search_docs
  - update_storage_config

其中 deploy_edge_function 、execute_sql 和 get_logs,非常有用,可以让 AI 编程工具代替你操作远程 Supabase 项目,而 get_logs 可以让 AI 编程工具获取到远程 Edge Function 的错误日志排查错误,不用手动复制日志了。

Supabase 的 MCP 提供了两个认证方式:

  • 使用 OAuth 登录,当你没有提供任何认证方法的时候,你的 AI 编程工具会引导你在浏览器中登录认证
  • 使用 AccessToken,当你环境中没有浏览器或者不想浏览器登录时,非常有用,需要在 Supabase Dashboard 中申请 AccessToken