Supabase MCP 服务器使用说明
项目简介
Supabase MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在为 LLM 客户端提供与 Supabase 后端服务集成的能力。通过此服务器,LLM 应用可以安全、便捷地访问和操作 Supabase 数据库、存储服务以及边缘函数,从而扩展 LLM 的上下文理解和功能执行范围。
主要功能点
- 数据库操作: 提供对 Supabase 数据库的 CRUD 操作,包括创建、读取、更新和删除记录,并支持复杂的查询、过滤和联表操作。
- 存储管理: 支持文件的上传和下载,可以方便地管理 Supabase 存储桶中的文件资源。
- 边缘函数调用: 允许 LLM 应用调用 Supabase 边缘函数,执行自定义的后端逻辑。
- 用户管理: 提供用户列表查询、创建、更新和删除等用户管理功能。
- 角色管理: 支持用户角色的分配和移除。
安装步骤
-
克隆仓库
git clone https://github.com/DynamicEndpoints/supabase-mcp.git cd supabase-mcp -
安装依赖
npm install -
配置环境变量 复制 '.env.example' 文件并重命名为 '.env',根据您的 Supabase 项目信息填写以下环境变量:
SUPABASE_URL=your_project_url_here # 您的 Supabase 项目 URL SUPABASE_KEY=your_service_role_key_here # 您的 Supabase 服务角色密钥 SUPABASE_ACCESS_TOKEN=your_access_token_here # 您的 Supabase 访问令牌 (用于管理操作,如用户管理) -
配置服务器 复制 'config.json.example' 文件并重命名为 'config.json',您可以根据需要修改服务器配置,例如端口号、日志级别等。默认配置通常已足够使用。
-
构建服务器
npm run build
服务器配置 (MCP 客户端)
在您的 MCP 客户端(例如 'cline_mcp_settings.json')中配置 Supabase MCP 服务器,以便客户端能够连接并使用服务器提供的工具。以下是一个配置示例,您需要根据实际情况修改 'command' 和 'args' 中的路径:
{ "mcpServers": { "supabase": { "command": "node", "args": ["path/to/supabase-server/build/index.js"], // "command": "./run-supabase-server.sh", // 或者使用wrapper脚本,更方便配置环境变量,需要先执行 npm run create-wrapper "env": { // 环境变量在此处配置或者在wrapper脚本中配置,优先使用wrapper脚本或系统环境变量 // "SUPABASE_URL": "your_project_url", // 您的 Supabase 项目 URL,建议在 .env 文件或系统环境变量中配置 // "SUPABASE_KEY": "your_service_role_key", // 您的 Supabase 服务角色密钥,建议在 .env 文件或系统环境变量中配置 // "SUPABASE_ACCESS_TOKEN": "your_access_token" // 您的 Supabase 访问令牌,建议在 .env 文件或系统环境变量中配置 }, "config": "path/to/config.json" // 可选:config.json 配置文件路径,如果使用默认配置则不需要 } } }
配置说明:
- 'server name': 'supabase',客户端用此名称引用该服务器。
- 'command': 'node',启动服务器的命令,这里使用 Node.js 运行。
- 'args': '["path/to/supabase-server/build/index.js"]',启动命令的参数,指向编译后的 'index.js' 文件路径。请务必修改 'path/to/supabase-server' 为您实际的仓库路径。
- 您也可以使用 './run-supabase-server.sh' 作为 'command' 来启动服务器。运行 'npm run create-wrapper' 命令后,会在仓库根目录生成 'run-supabase-server.sh' 脚本。该脚本会自动加载环境变量并执行 'node' 命令启动服务器,更方便环境变量管理。 使用wrapper脚本时,请将 'command' 修改为 '"./run-supabase-server.sh"',并注释掉 'env' 字段,环境变量应在 '.env' 文件或系统环境变量中配置。
- 'env': (可选) 环境变量配置,如果使用 wrapper 脚本或系统环境变量,此处可以留空。
- 'config': (可选) 'config.json' 配置文件路径,如果使用默认配置,则不需要配置此项。
基本使用方法
- 确保 Supabase MCP 服务器已成功启动,并监听在配置的端口上(默认为标准输入输出 'stdio' 模式,或 SSE 模式的 8765 端口)。
- 在您的 MCP 客户端应用中,配置并连接到名为 'supabase' 的 MCP 服务器。
- 使用客户端提供的界面或 API,调用 Supabase MCP 服务器提供的工具,例如 'list_tables' (列出数据库表), 'create_record' (创建数据库记录), 'upload_file' (上传文件) 等,以实现与 Supabase 后端的交互。
- 服务器会在控制台输出工具调用请求 (tool_call) 的 JSON 信息,您可以根据需要手动批准 (approve) 或拒绝 (reject) 工具调用,以控制 LLM 应用对 Supabase 资源的访问权限。
注意: 首次使用或配置变更后,建议重启 MCP 客户端和 Supabase MCP 服务器以确保配置生效。
信息
分类
数据库与文件