关于 appbase
appbase 是用于管理 Supabase 组织、项目、数据库、存储、Edge Functions 和预览分支的 MCP 服务与命令行工具。它为 MCP 客户端和终端用户提供同一组操作,并通过 Supabase 个人访问令牌进行认证。
主要功能
- 01管理组织和项目
- 02检查表、迁移、日志及顾问建议
- 03执行 SQL 并应用有记录的迁移
- 04管理 Edge Functions 和存储桶
- 05创建和管理预览分支
适用场景
- 01检查项目架构和数据库状态
- 02执行 SQL 或应用有记录的迁移
- 03部署 Edge Function 或创建存储桶
- 04创建、变基或合并预览分支
MCP 相关
通过 stdio MCP 服务向 MCP 客户端提供 Supabase 账户和项目管理工具。同一组操作也可通过命令行子命令使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
28收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| schemas | array | 否 | 要列出表的数据库架构;省略时默认为 public。 |
| project_id | string | 是 | 要列出其表的 Supabase 项目的引用 ID。 |
详细介绍
appbase
appbase 让 MCP 客户端或终端能够访问 Supabase 账户。可以列出、查看、创建、暂停和恢复项目与组织。在项目中,可以查看架构(表、扩展、迁移),运行 SQL 或应用已跟踪的迁移,读取日志和安全/性能顾问建议,获取项目 URL 和可发布密钥,根据实时架构生成 TypeScript 类型,列出并部署 Edge Functions,管理存储桶,以及使用预览分支——创建、合并、重置、变基和删除。
需要 Supabase 个人访问令牌。将其放入 SUPABASE_ACCESS_TOKEN 环境变量;该令牌会作为 Bearer 令牌发送到 Supabase Management API,且绝不会出现在输出中。如果缺少此变量,每次调用都会失败,并显示指出该变量的错误。
安装
npx @reneturcios/appbase list_projects
或者运行容器镜像:
docker run -i -e SUPABASE_ACCESS_TOKEN ghcr.io/cloudcorprecords/appbase
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
每个 MCP 工具也都是一个 CLI 子命令。工具参数通过 --json 以一个 JSON 对象传入;项目范围内的工具将项目引用作为 project_id:
export SUPABASE_ACCESS_TOKEN=<your Supabase personal access token>
appbase list_projects
appbase list_tables --json '{"project_id": "abcdefghijklmnopqrst"}'
appbase execute_sql --json '{"project_id": "abcdefghijklmnopqrst", "query": "select 1"}'
appbase get_advisors --json '{"project_id": "abcdefghijklmnopqrst", "type": "security"}'
appbase create_branch --json '{"project_id": "abcdefghijklmnopqrst", "name": "feat-x"}'
appbase --version
结果以 JSON 格式输出。退出代码:成功时为 0,API 调用失败时(包括缺少 SUPABASE_ACCESS_TOKEN)为 1,用法错误时为 2。
MCP 服务
同一个可执行文件提供两种模式。mcp 子命令会启动一个 stdio MCP 服务:
npx -y @reneturcios/appbase mcp
MCP 客户端配置:
{
"mcpServers": {
"appbase": {
"command": "npx",
"args": ["-y", "@reneturcios/appbase", "mcp"],
"env": { "SUPABASE_ACCESS_TOKEN": "your Supabase personal access token" }
}
}
}
工具
| 工具 | 输入(必填项以粗体标示) | 功能 |
|---|---|---|
list_tables | project_id、schemas | 列出给定架构中的表(默认为 public)。 |
list_extensions | project_id | 列出已安装的数据库扩展。 |
list_migrations | project_id | 列出已应用的迁移。 |
execute_sql | project_id、query | 在项目数据库中运行原始 SQL。 |
apply_migration | project_id、name、query | 将 SQL 作为有记录的迁移应用(用于 DDL)。 |
get_logs | project_id、service | 获取某个服务的近期日志。 |
get_advisors | project_id、type | 获取安全或性能顾问建议。 |
get_project_url | project_id | 项目的 https://<ref>.supabase.co API URL。 |
get_publishable_keys | project_id | 获取项目的可发布 / anon API 密钥。 |
generate_typescript_types | project_id、included_schemas | 根据架构生成 TypeScript 类型。 |
list_edge_functions | project_id | 列出 Edge Functions。 |
get_edge_function | project_id、function_slug | 获取某个 Edge Function 的详细信息。 |
deploy_edge_function | project_id、name、files、entrypoint_path、import_map_path | 从内联文件部署 Edge Function。 |
list_storage_buckets | project_id | 列出存储桶。 |
create_storage_bucket | project_id、name、public、file_size_limit、allowed_mime_types | 创建存储桶。 |
list_branches | project_id | 列出预览分支。 |
create_branch | project_id、name、confirm_cost_id | 创建预览分支。 |
delete_branch | project_id、branch_id | 删除预览分支。 |
merge_branch | project_id、branch_id | 将分支的迁移和函数合并到生产环境。 |
reset_branch | project_id、branch_id、migration_version | 将分支重置为其父级状态。 |
rebase_branch | project_id、branch_id | 将分支变基到其父级。 |
list_projects | — | 列出用户的所有项目。 |
get_project | id | 获取某个项目的详细信息。 |
create_project | name、organization_id、region、confirm_cost_id | 创建项目。 |
pause_project | project_id | 暂停项目。 |
restore_project | project_id | 恢复已暂停的项目。 |
list_organizations | — | 列出用户的组织。 |
get_organization | id | 获取某个组织的详细信息。 |
所有调用都发往 https://api.supabase.com/v1。SQL 工具会向项目的
database/query 端点发送 POST 请求;list_tables 和
list_extensions 是通过同一端点执行的目录查询,其他所有 SQL 都会按原样传递。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。