[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-alexander-zuev--supabase-mcp-server":3,"tool-alexander-zuev--supabase-mcp-server":64},[4,17,27,35,44,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[13,14,15,43],"视频",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":23,"last_commit_at":50,"category_tags":51,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,52,43,53,15,54,26,13,55],"数据工具","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":80,"owner_twitter":82,"owner_website":80,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":23,"env_os":97,"env_gpu":98,"env_ram":99,"env_deps":100,"category_tags":108,"github_topics":109,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":114,"updated_at":115,"faqs":116,"releases":146},4219,"alexander-zuev\u002Fsupabase-mcp-server","supabase-mcp-server","Query MCP enables end-to-end management of Supabase via chat interface: read & write query executions, management API support, automatic migration versioning, access to logs and much more.","supabase-mcp-server 是一款专为 Supabase 设计的开源 MCP（模型上下文协议）服务器，旨在让开发者通过自然语言对话界面，安全、高效地管理整个 Supabase 项目。它解决了传统开发中需频繁切换命令行、手动编写复杂 SQL 或调用管理 API 的痛点，将数据库查询、架构变更、用户管理及日志查看等操作整合至 Cursor、Windsurf 等智能 IDE 中，实现“所问即所得”的开发体验。\n\n该工具特别适合熟悉 Python 和 PostgreSQL 的后端开发者及全栈工程师使用。其核心亮点在于内置的三级安全防护体系：系统会自动评估 SQL 语句的风险等级，将其划分为“安全读取”、“写入操作”和“破坏性操作”，并在执行前进行严格校验与事务控制，有效防止误删数据等高危事故。此外，它还支持数据库架构变更的自动版本化管理，并集成了 Supabase 管理 API 与 Auth Admin SDK，让用户能直接通过对话完成项目配置与用户权限调整。\n\n值得注意的是，随着 Supabase 官方推出自带的 MCP 服务器，本项目作者已宣布停止主动维护，建议新用户优先关注官","supabase-mcp-server 是一款专为 Supabase 设计的开源 MCP（模型上下文协议）服务器，旨在让开发者通过自然语言对话界面，安全、高效地管理整个 Supabase 项目。它解决了传统开发中需频繁切换命令行、手动编写复杂 SQL 或调用管理 API 的痛点，将数据库查询、架构变更、用户管理及日志查看等操作整合至 Cursor、Windsurf 等智能 IDE 中，实现“所问即所得”的开发体验。\n\n该工具特别适合熟悉 Python 和 PostgreSQL 的后端开发者及全栈工程师使用。其核心亮点在于内置的三级安全防护体系：系统会自动评估 SQL 语句的风险等级，将其划分为“安全读取”、“写入操作”和“破坏性操作”，并在执行前进行严格校验与事务控制，有效防止误删数据等高危事故。此外，它还支持数据库架构变更的自动版本化管理，并集成了 Supabase 管理 API 与 Auth Admin SDK，让用户能直接通过对话完成项目配置与用户权限调整。\n\n值得注意的是，随着 Supabase 官方推出自带的 MCP 服务器，本项目作者已宣布停止主动维护，建议新用户优先关注官方版本以获取更长期的功能支持。不过，supabase-mcp-server 在设计上对安全机制与本地工作流的深度优化，仍为理解如何构建安全的 AI 辅助数据库工具提供了极佳参考。","# Query | MCP server for Supabase\n\n> 🌅 More than 17k installs via pypi and close to 30k downloads on Smithery.ai — in short, this was fun! 🥳\n> Thanks to everyone who has been using this server for the past few months, and I hope it was useful for you.\n> Since Supabase has released their own [official MCP server](https:\u002F\u002Fgithub.com\u002Fsupabase-community\u002Fsupabase-mcp),\n> I've decided to no longer actively maintain this one. The official MCP server is as feature-rich, and many more\n> features will be added in the future. Check it out!\n\n\n\u003Cp class=\"center-text\">\n  \u003Cstrong>Query MCP is an open-source MCP server that lets your IDE safely run SQL, manage schema changes, call the Supabase Management API, and use Auth Admin SDK — all with built-in safety controls.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\n\u003Cp class=\"center-text\">\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fsupabase-mcp-server\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fsupabase-mcp-server.svg\" alt=\"PyPI version\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Factions\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fworkflows\u002FCI\u002Fbadge.svg\" alt=\"CI Status\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Falexander-zuev\u002Fsupabase-mcp-server\">\u003Cimg src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg\" alt=\"Code Coverage\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.12%2B-blue.svg\" alt=\"Python 3.12+\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fuv\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fuv-package%20manager-blueviolet\" alt=\"uv package manager\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpepy.tech\u002Fproject\u002Fsupabase-mcp-server\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_1c7d3ce53766.png\" alt=\"PyPI Downloads\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@alexander-zuev\u002Fsupabase-mcp-server\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_2ab22774b7ca.png\" alt=\"Smithery.ai Downloads\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002Fintroduction\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMCP-Server-orange\" alt=\"MCP Server\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg\" alt=\"License\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>    \n\n## Table of contents\n\n\u003Cp class=\"center-text\">\n  \u003Ca href=\"#getting-started\">Getting started\u003C\u002Fa> •\n  \u003Ca href=\"#feature-overview\">Feature overview\u003C\u002Fa> •\n  \u003Ca href=\"#troubleshooting\">Troubleshooting\u003C\u002Fa> •\n  \u003Ca href=\"#changelog\">Changelog\u003C\u002Fa>\n\u003C\u002Fp>\n\n## ✨ Key features\n- 💻 Compatible with Cursor, Windsurf, Cline and other MCP clients supporting `stdio` protocol\n- 🔐 Control read-only and read-write modes of SQL query execution\n- 🔍 Runtime SQL query validation with risk level assessment\n- 🛡️ Three-tier safety system for SQL operations: safe, write, and destructive\n- 🔄 Robust transaction handling for both direct and pooled database connections\n- 📝 Automatic versioning of database schema changes\n- 💻 Manage your Supabase projects with Supabase Management API\n- 🧑‍💻 Manage users with Supabase Auth Admin methods via Python SDK\n- 🔨 Pre-built tools to help Cursor & Windsurf work with MCP more effectively\n- 📦 Dead-simple install & setup via package manager (uv, pipx, etc.)\n\n\n## Getting Started\n\n### Prerequisites\nInstalling the server requires the following on your system:\n- Python 3.12+\n\nIf you plan to install via `uv`, ensure it's [installed](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F#__tabbed_1_1).\n\n### PostgreSQL Installation\nPostgreSQL installation is no longer required for the MCP server itself, as it now uses asyncpg which doesn't depend on PostgreSQL development libraries.\n\nHowever, you'll still need PostgreSQL if you're running a local Supabase instance:\n\n**MacOS**\n```bash\nbrew install postgresql@16\n```\n\n**Windows**\n  - Download and install PostgreSQL 16+ from https:\u002F\u002Fwww.postgresql.org\u002Fdownload\u002Fwindows\u002F\n  - Ensure \"PostgreSQL Server\" and \"Command Line Tools\" are selected during installation\n\n### Step 1. Installation\n\nSince v0.2.0 I introduced support for package installation. You can use your favorite Python package manager to install the server via:\n\n```bash\n# if pipx is installed (recommended)\npipx install supabase-mcp-server\n\n# if uv is installed\nuv pip install supabase-mcp-server\n```\n\n`pipx` is recommended because it creates isolated environments for each package.\n\nYou can also install the server manually by cloning the repository and running `pipx install -e .` from the root directory.\n\n#### Installing from source\nIf you would like to install from source, for example for local development:\n```bash\nuv venv\n# On Mac\nsource .venv\u002Fbin\u002Factivate\n# On Windows\n.venv\\Scripts\\activate\n# Install package in editable mode\nuv pip install -e .\n```\n\n#### Installing via Smithery.ai\n\nYou can find the full instructions on how to use Smithery.ai to connect to this MCP server [here](https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@alexander-zuev\u002Fsupabase-mcp-server).\n\n\n### Step 2. Configuration\n\nThe Supabase MCP server requires configuration to connect to your Supabase database, access the Management API, and use the Auth Admin SDK. This section explains all available configuration options and how to set them up.\n\n> 🔑 **Important**: Since v0.4 MCP server requires an API key which you can get for free at [thequery.dev](https:\u002F\u002Fthequery.dev) to use this MCP server.\n\n#### Environment Variables\n\nThe server uses the following environment variables:\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `SUPABASE_PROJECT_REF` | Yes | `127.0.0.1:54322` | Your Supabase project reference ID (or local host:port) |\n| `SUPABASE_DB_PASSWORD` | Yes | `postgres` | Your database password |\n| `SUPABASE_REGION` | Yes* | `us-east-1` | AWS region where your Supabase project is hosted |\n| `SUPABASE_ACCESS_TOKEN` | No | None | Personal access token for Supabase Management API |\n| `SUPABASE_SERVICE_ROLE_KEY` | No | None | Service role key for Auth Admin SDK |\n| `QUERY_API_KEY` | Yes | None | API key from thequery.dev (required for all operations) |\n\n> **Note**: The default values are configured for local Supabase development. For remote Supabase projects, you must provide your own values for `SUPABASE_PROJECT_REF` and `SUPABASE_DB_PASSWORD`.\n\n> 🚨 **CRITICAL CONFIGURATION NOTE**: For remote Supabase projects, you MUST specify the correct region where your project is hosted using `SUPABASE_REGION`. If you encounter a \"Tenant or user not found\" error, this is almost certainly because your region setting doesn't match your project's actual region. You can find your project's region in the Supabase dashboard under Project Settings.\n\n#### Connection Types\n\n##### Database Connection\n- The server connects to your Supabase PostgreSQL database using the transaction pooler endpoint\n- Local development uses a direct connection to `127.0.0.1:54322`\n- Remote projects use the format: `postgresql:\u002F\u002Fpostgres.[project_ref]:[password]@aws-0-[region].pooler.supabase.com:6543\u002Fpostgres`\n\n> ⚠️ **Important**: Session pooling connections are not supported. The server exclusively uses transaction pooling for better compatibility with the MCP server architecture.\n\n##### Management API Connection\n- Requires `SUPABASE_ACCESS_TOKEN` to be set\n- Connects to the Supabase Management API at `https:\u002F\u002Fapi.supabase.com`\n- Only works with remote Supabase projects (not local development)\n\n##### Auth Admin SDK Connection\n- Requires `SUPABASE_SERVICE_ROLE_KEY` to be set\n- For local development, connects to `http:\u002F\u002F127.0.0.1:54321`\n- For remote projects, connects to `https:\u002F\u002F[project_ref].supabase.co`\n\n#### Configuration Methods\n\nThe server looks for configuration in this order (highest to lowest priority):\n\n1. **Environment Variables**: Values set directly in your environment\n2. **Local `.env` File**: A `.env` file in your current working directory (only works when running from source)\n3. **Global Config File**:\n   - Windows: `%APPDATA%\\supabase-mcp\\.env`\n   - macOS\u002FLinux: `~\u002F.config\u002Fsupabase-mcp\u002F.env`\n4. **Default Settings**: Local development defaults (if no other config is found)\n\n> ⚠️ **Important**: When using the package installed via pipx or uv, local `.env` files in your project directory are **not** detected. You must use either environment variables or the global config file.\n\n#### Setting Up Configuration\n\n##### Option 1: Client-Specific Configuration (Recommended)\n\nSet environment variables directly in your MCP client configuration (see client-specific setup instructions in Step 3). Most MCP clients support this approach, which keeps your configuration with your client settings.\n\n##### Option 2: Global Configuration\n\nCreate a global `.env` configuration file that will be used for all MCP server instances:\n\n```bash\n# Create config directory\n# On macOS\u002FLinux\nmkdir -p ~\u002F.config\u002Fsupabase-mcp\n# On Windows (PowerShell)\nmkdir -Force \"$env:APPDATA\\supabase-mcp\"\n\n# Create and edit .env file\n# On macOS\u002FLinux\nnano ~\u002F.config\u002Fsupabase-mcp\u002F.env\n# On Windows (PowerShell)\nnotepad \"$env:APPDATA\\supabase-mcp\\.env\"\n```\n\nAdd your configuration values to the file:\n\n```\nQUERY_API_KEY=your-api-key\nSUPABASE_PROJECT_REF=your-project-ref\nSUPABASE_DB_PASSWORD=your-db-password\nSUPABASE_REGION=us-east-1\nSUPABASE_ACCESS_TOKEN=your-access-token\nSUPABASE_SERVICE_ROLE_KEY=your-service-role-key\n```\n\n##### Option 3: Project-Specific Configuration (Source Installation Only)\n\nIf you're running the server from source (not via package), you can create a `.env` file in your project directory with the same format as above.\n\n#### Finding Your Supabase Project Information\n\n- **Project Reference**: Found in your Supabase project URL: `https:\u002F\u002Fsupabase.com\u002Fdashboard\u002Fproject\u002F\u003Cproject-ref>`\n- **Database Password**: Set during project creation or found in Project Settings → Database\n- **Access Token**: Generate at https:\u002F\u002Fsupabase.com\u002Fdashboard\u002Faccount\u002Ftokens\n- **Service Role Key**: Found in Project Settings → API → Project API keys\n\n#### Supported Regions\n\nThe server supports all Supabase regions:\n\n- `us-west-1` - West US (North California)\n- `us-east-1` - East US (North Virginia) - default\n- `us-east-2` - East US (Ohio)\n- `ca-central-1` - Canada (Central)\n- `eu-west-1` - West EU (Ireland)\n- `eu-west-2` - West Europe (London)\n- `eu-west-3` - West EU (Paris)\n- `eu-central-1` - Central EU (Frankfurt)\n- `eu-central-2` - Central Europe (Zurich)\n- `eu-north-1` - North EU (Stockholm)\n- `ap-south-1` - South Asia (Mumbai)\n- `ap-southeast-1` - Southeast Asia (Singapore)\n- `ap-northeast-1` - Northeast Asia (Tokyo)\n- `ap-northeast-2` - Northeast Asia (Seoul)\n- `ap-southeast-2` - Oceania (Sydney)\n- `sa-east-1` - South America (São Paulo)\n\n#### Limitations\n\n- **No Self-Hosted Support**: The server only supports official Supabase.com hosted projects and local development\n- **No Connection String Support**: Custom connection strings are not supported\n- **No Session Pooling**: Only transaction pooling is supported for database connections\n- **API and SDK Features**: Management API and Auth Admin SDK features only work with remote Supabase projects, not local development\n\n### Step 3. Usage\n\nIn general, any MCP client that supports `stdio` protocol should work with this MCP server. This server was explicitly tested to work with:\n- Cursor\n- Windsurf\n- Cline\n- Claude Desktop\n\nAdditionally, you can also use smithery.ai to install this server a number of clients, including the ones above.\n\nFollow the guides below to install this MCP server in your client.\n\n#### Cursor\nGo to Settings -> Features -> MCP Servers and add a new server with this configuration:\n```bash\n# can be set to any name\nname: supabase\ntype: command\n# if you installed with pipx\ncommand: supabase-mcp-server\n# if you installed with uv\ncommand: uv run supabase-mcp-server\n# if the above doesn't work, use the full path (recommended)\ncommand: \u002Ffull\u002Fpath\u002Fto\u002Fsupabase-mcp-server  # Find with 'which supabase-mcp-server' (macOS\u002FLinux) or 'where supabase-mcp-server' (Windows)\n```\n\nIf configuration is correct, you should see a green dot indicator and the number of tools exposed by the server.\n![How successful Cursor config looks like](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_55652796e84e.png)\n\n#### Windsurf\nGo to Cascade -> Click on the hammer icon -> Configure -> Fill in the configuration:\n```json\n{\n    \"mcpServers\": {\n      \"supabase\": {\n        \"command\": \"\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server\",  \u002F\u002F update path\n        \"env\": {\n          \"QUERY_API_KEY\": \"your-api-key\",  \u002F\u002F Required - get your API key at thequery.dev\n          \"SUPABASE_PROJECT_REF\": \"your-project-ref\",\n          \"SUPABASE_DB_PASSWORD\": \"your-db-password\",\n          \"SUPABASE_REGION\": \"us-east-1\",  \u002F\u002F optional, defaults to us-east-1\n          \"SUPABASE_ACCESS_TOKEN\": \"your-access-token\",  \u002F\u002F optional, for management API\n          \"SUPABASE_SERVICE_ROLE_KEY\": \"your-service-role-key\"  \u002F\u002F optional, for Auth Admin SDK\n        }\n      }\n    }\n}\n```\nIf configuration is correct, you should see green dot indicator and clickable supabase server in the list of available servers.\n\n![How successful Windsurf config looks like](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_805685f283c8.png)\n\n#### Claude Desktop\nClaude Desktop also supports MCP servers through a JSON configuration. Follow these steps to set up the Supabase MCP server:\n\n1. **Find the full path to the executable** (this step is critical):\n   ```bash\n   # On macOS\u002FLinux\n   which supabase-mcp-server\n\n   # On Windows\n   where supabase-mcp-server\n   ```\n   Copy the full path that is returned (e.g., `\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server`).\n\n2. **Configure the MCP server** in Claude Desktop:\n   - Open Claude Desktop\n   - Go to Settings → Developer -> Edit Config MCP Servers\n   - Add a new configuration with the following JSON:\n\n   ```json\n   {\n     \"mcpServers\": {\n       \"supabase\": {\n         \"command\": \"\u002Ffull\u002Fpath\u002Fto\u002Fsupabase-mcp-server\",  \u002F\u002F Replace with the actual path from step 1\n         \"env\": {\n           \"QUERY_API_KEY\": \"your-api-key\",  \u002F\u002F Required - get your API key at thequery.dev\n           \"SUPABASE_PROJECT_REF\": \"your-project-ref\",\n           \"SUPABASE_DB_PASSWORD\": \"your-db-password\",\n           \"SUPABASE_REGION\": \"us-east-1\",  \u002F\u002F optional, defaults to us-east-1\n           \"SUPABASE_ACCESS_TOKEN\": \"your-access-token\",  \u002F\u002F optional, for management API\n           \"SUPABASE_SERVICE_ROLE_KEY\": \"your-service-role-key\"  \u002F\u002F optional, for Auth Admin SDK\n         }\n       }\n     }\n   }\n   ```\n\n> ⚠️ **Important**: Unlike Windsurf and Cursor, Claude Desktop requires the **full absolute path** to the executable. Using just the command name (`supabase-mcp-server`) will result in a \"spawn ENOENT\" error.\n\nIf configuration is correct, you should see the Supabase MCP server listed as available in Claude Desktop.\n\n![How successful Windsurf config looks like](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_aa4e931b04c3.png)\n\n#### Cline\nCline also supports MCP servers through a similar JSON configuration. Follow these steps to set up the Supabase MCP server:\n\n1. **Find the full path to the executable** (this step is critical):\n   ```bash\n   # On macOS\u002FLinux\n   which supabase-mcp-server\n\n   # On Windows\n   where supabase-mcp-server\n   ```\n   Copy the full path that is returned (e.g., `\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server`).\n\n2. **Configure the MCP server** in Cline:\n   - Open Cline in VS Code\n   - Click on the \"MCP Servers\" tab in the Cline sidebar\n   - Click \"Configure MCP Servers\"\n   - This will open the `cline_mcp_settings.json` file\n   - Add the following configuration:\n\n   ```json\n   {\n     \"mcpServers\": {\n       \"supabase\": {\n         \"command\": \"\u002Ffull\u002Fpath\u002Fto\u002Fsupabase-mcp-server\",  \u002F\u002F Replace with the actual path from step 1\n         \"env\": {\n           \"QUERY_API_KEY\": \"your-api-key\",  \u002F\u002F Required - get your API key at thequery.dev\n           \"SUPABASE_PROJECT_REF\": \"your-project-ref\",\n           \"SUPABASE_DB_PASSWORD\": \"your-db-password\",\n           \"SUPABASE_REGION\": \"us-east-1\",  \u002F\u002F optional, defaults to us-east-1\n           \"SUPABASE_ACCESS_TOKEN\": \"your-access-token\",  \u002F\u002F optional, for management API\n           \"SUPABASE_SERVICE_ROLE_KEY\": \"your-service-role-key\"  \u002F\u002F optional, for Auth Admin SDK\n         }\n       }\n     }\n   }\n   ```\n\nIf configuration is correct, you should see a green indicator next to the Supabase MCP server in the Cline MCP Servers list, and a message confirming \"supabase MCP server connected\" at the bottom of the panel.\n\n![How successful configuration in Cline looks like](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_57ba469a566a.png)\n\n### Troubleshooting\n\nHere are some tips & tricks that might help you:\n- **Debug installation** - run `supabase-mcp-server` directly from the terminal to see if it works. If it doesn't, there might be an issue with the installation.\n- **MCP Server configuration** - if the above step works, it means the server is installed and configured correctly. As long as you provided the right command, IDE should be able to connect. Make sure to provide the right path to the server executable.\n- **\"No tools found\" error** - If you see \"Client closed - no tools available\" in Cursor despite the package being installed:\n  - Find the full path to the executable by running `which supabase-mcp-server` (macOS\u002FLinux) or `where supabase-mcp-server` (Windows)\n  - Use the full path in your MCP server configuration instead of just `supabase-mcp-server`\n  - For example: `\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server` or `C:\\Users\\username\\.local\\bin\\supabase-mcp-server.exe`\n- **Environment variables** - to connect to the right database, make sure you either set env variables in `mcp_config.json` or in `.env` file placed in a global config directory (`~\u002F.config\u002Fsupabase-mcp\u002F.env` on macOS\u002FLinux or `%APPDATA%\\supabase-mcp\\.env` on Windows).\n- **Accessing logs** - The MCP server writes detailed logs to a file:\n  - Log file location:\n    - macOS\u002FLinux: `~\u002F.local\u002Fshare\u002Fsupabase-mcp\u002Fmcp_server.log`\n    - Windows: `%USERPROFILE%\\.local\\share\\supabase-mcp\\mcp_server.log`\n  - Logs include connection status, configuration details, and operation results\n  - View logs using any text editor or terminal commands:\n    ```bash\n    # On macOS\u002FLinux\n    cat ~\u002F.local\u002Fshare\u002Fsupabase-mcp\u002Fmcp_server.log\n\n    # On Windows (PowerShell)\n    Get-Content \"$env:USERPROFILE\\.local\\share\\supabase-mcp\\mcp_server.log\"\n    ```\n\nIf you are stuck or any of the instructions above are incorrect, please raise an issue.\n\n### MCP Inspector\nA super useful tool to help debug MCP server issues is MCP Inspector. If you installed from source, you can run `supabase-mcp-inspector` from the project repo and it will run the inspector instance. Coupled with logs this will give you complete overview over what's happening in the server.\n> 📝 Running `supabase-mcp-inspector`, if installed from package, doesn't work properly - I will validate and fix in the coming release.\n\n## Feature Overview\n\n### Database query tools\n\nSince v0.3+ server provides comprehensive database management capabilities with built-in safety controls:\n\n- **SQL Query Execution**: Execute PostgreSQL queries with risk assessment\n  - **Three-tier safety system**:\n    - `safe`: Read-only operations (SELECT) - always allowed\n    - `write`: Data modifications (INSERT, UPDATE, DELETE) - require unsafe mode\n    - `destructive`: Schema changes (DROP, CREATE) - require unsafe mode + confirmation\n\n- **SQL Parsing and Validation**:\n  - Uses PostgreSQL's parser (pglast) for accurate analysis and provides clear feedback on safety requirements\n\n- **Automatic Migration Versioning**:\n  - Database-altering operations operations are automatically versioned\n  - Generates descriptive names based on operation type and target\n\n\n- **Safety Controls**:\n  - Default SAFE mode allows only read-only operations\n  - All statements run in transaction mode via `asyncpg`\n  - 2-step confirmation for high-risk operations\n\n- **Available Tools**:\n  - `get_schemas`: Lists schemas with sizes and table counts\n  - `get_tables`: Lists tables, foreign tables, and views with metadata\n  - `get_table_schema`: Gets detailed table structure (columns, keys, relationships)\n  - `execute_postgresql`: Executes SQL statements against your database\n  - `confirm_destructive_operation`: Executes high-risk operations after confirmation\n  - `retrieve_migrations`: Gets migrations with filtering and pagination options\n  - `live_dangerously`: Toggles between safe and unsafe modes\n\n### Management API tools\n\nSince v0.3.0 server provides secure access to the Supabase Management API with built-in safety controls:\n\n- **Available Tools**:\n  - `send_management_api_request`: Sends arbitrary requests to Supabase Management API with auto-injection of project ref\n  - `get_management_api_spec`: Gets the enriched API specification with safety information\n    - Supports multiple query modes: by domain, by specific path\u002Fmethod, or all paths\n    - Includes risk assessment information for each endpoint\n    - Provides detailed parameter requirements and response formats\n    - Helps LLMs understand the full capabilities of the Supabase Management API\n  - `get_management_api_safety_rules`: Gets all safety rules with human-readable explanations\n  - `live_dangerously`: Toggles between safe and unsafe operation modes\n\n- **Safety Controls**:\n  - Uses the same safety manager as database operations for consistent risk management\n  - Operations categorized by risk level:\n    - `safe`: Read-only operations (GET) - always allowed\n    - `unsafe`: State-changing operations (POST, PUT, PATCH, DELETE) - require unsafe mode\n    - `blocked`: Destructive operations (delete project, etc.) - never allowed\n  - Default safe mode prevents accidental state changes\n  - Path-based pattern matching for precise safety rules\n\n**Note**: Management API tools only work with remote Supabase instances and are not compatible with local Supabase development setups.\n\n### Auth Admin tools\n\nI was planning to add support for Python SDK methods to the MCP server. Upon consideration I decided to only add support for Auth admin methods as I often found myself manually creating test users which was prone to errors and time consuming. Now I can just ask Cursor to create a test user and it will be done seamlessly. Check out the full Auth Admin SDK method docs to know what it can do.\n\nSince v0.3.6 server supports direct access to Supabase Auth Admin methods via Python SDK:\n  - Includes the following tools:\n    - `get_auth_admin_methods_spec` to retrieve documentation for all available Auth Admin methods\n    - `call_auth_admin_method` to directly invoke Auth Admin methods with proper parameter handling\n  - Supported methods:\n    - `get_user_by_id`: Retrieve a user by their ID\n    - `list_users`: List all users with pagination\n    - `create_user`: Create a new user\n    - `delete_user`: Delete a user by their ID\n    - `invite_user_by_email`: Send an invite link to a user's email\n    - `generate_link`: Generate an email link for various authentication purposes\n    - `update_user_by_id`: Update user attributes by ID\n    - `delete_factor`: Delete a factor on a user (currently not implemented in SDK)\n\n#### Why use Auth Admin SDK instead of raw SQL queries?\n\nThe Auth Admin SDK provides several key advantages over direct SQL manipulation:\n- **Functionality**: Enables operations not possible with SQL alone (invites, magic links, MFA)\n- **Accuracy**: More reliable then creating and executing raw SQL queries on auth schemas\n- **Simplicity**: Offers clear methods with proper validation and error handling\n\n  - Response format:\n    - All methods return structured Python objects instead of raw dictionaries\n    - Object attributes can be accessed using dot notation (e.g., `user.id` instead of `user[\"id\"]`)\n  - Edge cases and limitations:\n    - UUID validation: Many methods require valid UUID format for user IDs and will return specific validation errors\n    - Email configuration: Methods like `invite_user_by_email` and `generate_link` require email sending to be configured in your Supabase project\n    - Link types: When generating links, different link types have different requirements:\n      - `signup` links don't require the user to exist\n      - `magiclink` and `recovery` links require the user to already exist in the system\n    - Error handling: The server provides detailed error messages from the Supabase API, which may differ from the dashboard interface\n    - Method availability: Some methods like `delete_factor` are exposed in the API but not fully implemented in the SDK\n\n### Logs & Analytics\n\nThe server provides access to Supabase logs and analytics data, making it easier to monitor and troubleshoot your applications:\n\n- **Available Tool**: `retrieve_logs` - Access logs from any Supabase service\n\n- **Log Collections**:\n  - `postgres`: Database server logs\n  - `api_gateway`: API gateway requests\n  - `auth`: Authentication events\n  - `postgrest`: RESTful API service logs\n  - `pooler`: Connection pooling logs\n  - `storage`: Object storage operations\n  - `realtime`: WebSocket subscription logs\n  - `edge_functions`: Serverless function executions\n  - `cron`: Scheduled job logs\n  - `pgbouncer`: Connection pooler logs\n\n- **Features**: Filter by time, search text, apply field filters, or use custom SQL queries\n\nSimplifies debugging across your Supabase stack without switching between interfaces or writing complex queries.\n\n### Automatic Versioning of Database Changes\n\n\"With great power comes great responsibility.\" While `execute_postgresql` tool coupled with aptly named `live_dangerously` tool provide a powerful and simple way to manage your Supabase database, it also means that dropping a table or modifying one is one chat message away. In order to reduce the risk of irreversible changes, since v0.3.8 the server supports:\n- automatic creation of migration scripts for all write & destructive sql operations executed on the database\n- improved safety mode of query execution, in which all queries are categorized in:\n  - `safe` type: always allowed. Includes all read-only ops.\n  - `write`type: requires `write` mode to be enabled by the user.\n  - `destructive` type: requires `write` mode to be enabled by the user AND a 2-step confirmation of query execution for clients that do not execute tools automatically.\n\n### Universal Safety Mode\nSince v0.3.8 Safety Mode has been standardized across all services (database, API, SDK) using a universal safety manager. This provides consistent risk management and a unified interface for controlling safety settings across the entire MCP server.\n\nAll operations (SQL queries, API requests, SDK methods) are categorized into risk levels:\n- `Low` risk: Read-only operations that don't modify data or structure (SELECT queries, GET API requests)\n- `Medium` risk: Write operations that modify data but not structure (INSERT\u002FUPDATE\u002FDELETE, most POST\u002FPUT API requests)\n- `High` risk: Destructive operations that modify database structure or could cause data loss (DROP\u002FTRUNCATE, DELETE API endpoints)\n- `Extreme` risk: Operations with severe consequences that are blocked entirely (deleting projects)\n\nSafety controls are applied based on risk level:\n- Low risk operations are always allowed\n- Medium risk operations require unsafe mode to be enabled\n- High risk operations require unsafe mode AND explicit confirmation\n- Extreme risk operations are never allowed\n\n#### How confirmation flow works\n\nAny high-risk operations (be it a postgresql or api request) will be blocked even in `unsafe` mode.\n![Every high-risk operation is blocked](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_bd13f564912d.png)\nYou will have to confirm and approve every high-risk operation explicitly in order for it to be executed.\n![Explicit approval is always required](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_dfac1293b442.png)\n\n\n## Changelog\n\n- 📦 Simplified installation via package manager - ✅ (v0.2.0)\n- 🌎 Support for different Supabase regions - ✅ (v0.2.2)\n- 🎮 Programmatic access to Supabase management API with safety controls - ✅ (v0.3.0)\n- 👷‍♂️ Read and read-write database SQL queries with safety controls - ✅ (v0.3.0)\n- 🔄 Robust transaction handling for both direct and pooled connections - ✅ (v0.3.2)\n- 🐍 Support methods and objects available in native Python SDK - ✅ (v0.3.6)\n- 🔍 Stronger SQL query validation ✅ (v0.3.8)\n- 📝 Automatic versioning of database changes ✅ (v0.3.8)\n- 📖 Radically improved knowledge and tools of api spec ✅ (v0.3.8)\n- ✍️ Improved consistency of migration-related tools for a more organized database vcs ✅ (v0.3.10)\n- 🥳 Query MCP is released (v0.4.0)\n\n\nFor a more detailed roadmap, please see this [discussion](https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fdiscussions\u002F46) on GitHub.\n\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_698532f10ca7.png)](https:\u002F\u002Fstar-history.com\u002F#alexander-zuev\u002Fsupabase-mcp-server&Date)\n\n---\n\nEnjoy! ☺️\n","# Query | Supabase 的 MCP 服务器\n\n> 🌅 通过 PyPI 安装超过 17,000 次，在 Smithery.ai 上的下载量接近 30,000 次——总之，这真是一次愉快的经历！🥳\n> 感谢过去几个月来一直使用这款服务器的各位，希望它对你们有所帮助。\n> 由于 Supabase 已经发布了他们自己的[官方 MCP 服务器](https:\u002F\u002Fgithub.com\u002Fsupabase-community\u002Fsupabase-mcp)，\n> 我决定不再积极维护这个版本。官方 MCP 服务器功能同样丰富，未来还将添加更多功能。快来试试吧！\n\n\n\u003Cp class=\"center-text\">\n  \u003Cstrong>Query MCP 是一个开源的 MCP 服务器，可以让您的 IDE 安全地执行 SQL、管理模式变更、调用 Supabase 管理 API，并使用 Auth Admin SDK —— 所有这些都内置了安全控制机制。\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\n\u003Cp class=\"center-text\">\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fsupabase-mcp-server\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fsupabase-mcp-server.svg\" alt=\"PyPI 版本\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Factions\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fworkflows\u002FCI\u002Fbadge.svg\" alt=\"CI 状态\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Falexander-zuev\u002Fsupabase-mcp-server\">\u003Cimg src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg\" alt=\"代码覆盖率\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.12%2B-blue.svg\" alt=\"Python 3.12+\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fuv\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fuv-package%20manager-blueviolet\" alt=\"uv 包管理器\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpepy.tech\u002Fproject\u002Fsupabase-mcp-server\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_1c7d3ce53766.png\" alt=\"PyPI 下载量\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@alexander-zuev\u002Fsupabase-mcp-server\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_2ab22774b7ca.png\" alt=\"Smithery.ai 下载量\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002Fintroduction\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMCP-Server-orange\" alt=\"MCP 服务器\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg\" alt=\"许可证\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>    \n\n## 目录\n\n\u003Cp class=\"center-text\">\n  \u003Ca href=\"#getting-started\">开始使用\u003C\u002Fa> •\n  \u003Ca href=\"#feature-overview\">功能概览\u003C\u002Fa> •\n  \u003Ca href=\"#troubleshooting\">故障排除\u003C\u002Fa> •\n  \u003Ca href=\"#changelog\">更新日志\u003C\u002Fa>\n\u003C\u002Fp>\n\n## ✨ 核心特性\n- 💻 兼容 Cursor、Windsurf、Cline 等支持 `stdio` 协议的 MCP 客户端\n- 🔐 控制 SQL 查询的只读与读写模式\n- 🔍 运行时 SQL 查询验证及风险等级评估\n- 🛡️ 针对 SQL 操作的三层安全系统：安全、写入和破坏性\n- 🔄 强大的事务处理能力，适用于直接连接和连接池方式\n- 📝 自动为数据库模式变更添加版本号\n- 💻 使用 Supabase 管理 API 管理您的 Supabase 项目\n- 🧑‍💻 通过 Python SDK 使用 Supabase Auth Admin 方法管理用户\n- 🔨 内置工具帮助 Cursor 和 Windsurf 更高效地使用 MCP\n- 📦 通过包管理器（uv、pipx 等）实现极简安装与配置\n\n\n## 开始使用\n\n### 前提条件\n安装该服务器需要在您的系统上具备以下内容：\n- Python 3.12+\n\n如果您计划通过 `uv` 安装，请确保已按照[说明](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F#__tabbed_1_1)完成安装。\n\n### PostgreSQL 安装\n对于 MCP 服务器本身而言，现在已不再需要安装 PostgreSQL，因为它使用的是 asyncpg，而 asyncpg 不依赖于 PostgreSQL 的开发库。\n\n然而，如果您正在运行本地 Supabase 实例，则仍需安装 PostgreSQL：\n\n**MacOS**\n```bash\nbrew install postgresql@16\n```\n\n**Windows**\n  - 从 https:\u002F\u002Fwww.postgresql.org\u002Fdownload\u002Fwindows\u002F 下载并安装 PostgreSQL 16 或更高版本\n  - 确保在安装过程中选择“PostgreSQL Server”和“Command Line Tools”\n\n### 第一步：安装\n\n自 v0.2.0 版本起，我引入了包安装支持。您可以使用自己喜欢的 Python 包管理器来安装该服务器：\n\n```bash\n# 如果已安装 pipx（推荐）\npipx install supabase-mcp-server\n\n# 如果已安装 uv\nuv pip install supabase-mcp-server\n```\n\n推荐使用 `pipx`，因为它会为每个包创建独立的环境。\n\n您也可以手动安装：克隆仓库后，在根目录下运行 `pipx install -e .`。\n\n#### 从源码安装\n如果您想从源码安装，例如用于本地开发：\n```bash\nuv venv\n# 在 Mac 上\nsource .venv\u002Fbin\u002Factivate\n# 在 Windows 上\n.venv\\Scripts\\activate\n# 以可编辑模式安装包\nuv pip install -e .\n```\n\n#### 通过 Smithery.ai 安装\n\n有关如何使用 Smithery.ai 连接到此 MCP 服务器的完整说明，请参阅[这里](https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@alexander-zuev\u002Fsupabase-mcp-server)。\n\n### 第 2 步：配置\n\nSupabase MCP 服务器需要进行配置，以连接到您的 Supabase 数据库、访问管理 API 并使用 Auth Admin SDK。本节将介绍所有可用的配置选项及其设置方法。\n\n> 🔑 **重要提示**：自 v0.4 版本起，MCP 服务器需要一个 API 密钥，您可以在 [thequery.dev](https:\u002F\u002Fthequery.dev) 上免费获取该密钥，才能使用此 MCP 服务器。\n\n#### 环境变量\n\n服务器使用以下环境变量：\n\n| 变量 | 必需 | 默认值 | 描述 |\n|------|------|--------|------|\n| `SUPABASE_PROJECT_REF` | 是 | `127.0.0.1:54322` | 您的 Supabase 项目引用 ID（或本地主机：端口） |\n| `SUPABASE_DB_PASSWORD` | 是 | `postgres` | 您的数据库密码 |\n| `SUPABASE_REGION` | 是* | `us-east-1` | 您的 Supabase 项目托管的 AWS 区域 |\n| `SUPABASE_ACCESS_TOKEN` | 否 | 无 | Supabase 管理 API 的个人访问令牌 |\n| `SUPABASE_SERVICE_ROLE_KEY` | 否 | 无 | Auth Admin SDK 的服务角色密钥 |\n| `QUERY_API_KEY` | 是 | 无 |来自 thequery.dev 的 API 密钥（所有操作均需）|\n\n> **注意**：默认值适用于本地 Supabase 开发环境。对于远程 Supabase 项目，您必须为 `SUPABASE_PROJECT_REF` 和 `SUPABASE_DB_PASSWORD` 提供您自己的值。\n\n> 🚨 **关键配置说明**：对于远程 Supabase 项目，您必须使用 `SUPABASE_REGION` 指定项目实际所在的正确区域。如果您遇到“未找到租户或用户”的错误，这几乎可以肯定是由于您的区域设置与项目实际区域不符所致。您可以在 Supabase 控制台的“项目设置”中找到项目的区域。\n\n#### 连接类型\n\n##### 数据库连接\n- 服务器通过事务池端点连接到您的 Supabase PostgreSQL 数据库。\n- 本地开发使用直接连接到 `127.0.0.1:54322`。\n- 远程项目使用格式：`postgresql:\u002F\u002Fpostgres.[project_ref]:[password]@aws-0-[region].pooler.supabase.com:6543\u002Fpostgres`。\n\n> ⚠️ **重要提示**：不支持会话池连接。服务器仅使用事务池连接，以更好地兼容 MCP 服务器架构。\n\n##### 管理 API 连接\n- 需要设置 `SUPABASE_ACCESS_TOKEN`。\n- 连接到 `https:\u002F\u002Fapi.supabase.com` 的 Supabase 管理 API。\n- 仅适用于远程 Supabase 项目（不适用于本地开发）。\n\n##### Auth Admin SDK 连接\n- 需要设置 `SUPABASE_SERVICE_ROLE_KEY`。\n- 本地开发时连接到 `http:\u002F\u002F127.0.0.1:54321`。\n- 远程项目时连接到 `https:\u002F\u002F[project_ref].supabase.co`。\n\n#### 配置方法\n\n服务器按以下顺序查找配置（优先级从高到低）：\n\n1. **环境变量**：直接在您的环境中设置的值。\n2. **本地 `.env` 文件**：当前工作目录中的 `.env` 文件（仅在源码运行时有效）。\n3. **全局配置文件**：\n   - Windows：%APPDATA%\\supabase-mcp\\.env\n   - macOS\u002FLinux：~\u002F.config\u002Fsupabase-mcp\u002F.env\n4. **默认设置**：本地开发默认值（若未找到其他配置）。\n\n> ⚠️ **重要提示**：当您使用 pipx 或 uv 安装的软件包时，项目目录中的本地 `.env` 文件将不会被检测到。您必须使用环境变量或全局配置文件。\n\n#### 配置设置\n\n##### 方法 1：客户端特定配置（推荐）\n在您的 MCP 客户端配置中直接设置环境变量（请参阅第 3 步中的客户端特定设置说明）。大多数 MCP 客户端都支持此方法，这样可以将您的配置与客户端设置保持一致。\n\n##### 方法 2：全局配置\n创建一个全局 `.env` 配置文件，供所有 MCP 服务器实例使用：\n\n```bash\n# 创建配置目录\n# macOS\u002FLinux\nmkdir -p ~\u002F.config\u002Fsupabase-mcp\n# Windows (PowerShell)\nmkdir -Force \"$env:APPDATA\\supabase-mcp\"\n\n# 创建并编辑 .env 文件\n# macOS\u002FLinux\nnano ~\u002F.config\u002Fsupabase-mcp\u002F.env\n# Windows (PowerShell)\nnotepad \"$env:APPDATA\\supabase-mcp\\.env\"\n```\n\n将您的配置值添加到文件中：\n\n```\nQUERY_API_KEY=您的-api-key\nSUPABASE_PROJECT_REF=您的-project-ref\nSUPABASE_DB_PASSWORD=您的-db-password\nSUPABASE_REGION=us-east-1\nSUPABASE_ACCESS_TOKEN=您的-access-token\nSUPABASE_SERVICE_ROLE_KEY=您的-service-role-key\n```\n\n##### 方法 3：项目特定配置（仅限源码安装）\n如果您是从源码运行服务器（而非通过软件包），则可以在项目目录中创建一个格式相同的 `.env` 文件。\n\n#### 查找您的 Supabase 项目信息\n- **项目引用**：可在您的 Supabase 项目 URL 中找到：`https:\u002F\u002Fsupabase.com\u002Fdashboard\u002Fproject\u002F\u003Cproject-ref>`。\n- **数据库密码**：在项目创建时设置，或在“项目设置”→“数据库”中找到。\n- **访问令牌**：可在 https:\u002F\u002Fsupabase.com\u002Fdashboard\u002Faccount\u002Ftokens 生成。\n- **服务角色密钥**：可在“项目设置”→“API”→“项目 API 密钥”中找到。\n\n#### 支持的区域\n服务器支持所有 Supabase 区域：\n\n- `us-west-1` - 美国西部（北加州）\n- `us-east-1` - 美国东部（弗吉尼亚北部）- 默认\n- `us-east-2` - 美国东部（俄亥俄州）\n- `ca-central-1` - 加拿大中部\n- `eu-west-1` - 欧洲西部（爱尔兰）\n- `eu-west-2` - 西欧（伦敦）\n- `eu-west-3` - 西欧（巴黎）\n- `eu-central-1` - 欧洲中部（法兰克福）\n- `eu-central-2` - 中欧（苏黎世）\n- `eu-north-1` - 欧洲北部（斯德哥尔摩）\n- `ap-south-1` - 南亚（孟买）\n- `ap-southeast-1` - 东南亚（新加坡）\n- `ap-northeast-1` - 东北亚（东京）\n- `ap-northeast-2` - 东北亚（首尔）\n- `ap-southeast-2` - 大洋洲（悉尼）\n- `sa-east-1` - 南美（圣保罗）\n\n#### 限制\n- **不支持自托管**：服务器仅支持官方 Supabase.com 托管项目及本地开发。\n- **不支持自定义连接字符串**：不支持自定义连接字符串。\n- **仅支持事务池连接**：数据库连接仅支持事务池模式。\n- **API 和 SDK 功能限制**：管理 API 和 Auth Admin SDK 功能仅适用于远程 Supabase 项目，不适用于本地开发。\n\n### 第 3 步：使用\n一般来说，任何支持 `stdio` 协议的 MCP 客户端都应能与本 MCP 服务器配合使用。本服务器已明确测试可与以下客户端配合使用：\n- Cursor\n- Windsurf\n- Cline\n- Claude Desktop\n\n此外，您还可以使用 smithery.ai 来安装本服务器以及上述多个客户端。\n\n请按照以下指南，在您的客户端中安装本 MCP 服务器。\n\n#### Cursor\n前往“设置”→“功能”→“MCP 服务器”，并添加一个新服务器，配置如下：\n```bash\n# 可设置为任意名称\nname: supabase\ntype: command\n# 如果您使用 pipx 安装\ncommand: supabase-mcp-server\n# 如果您使用 uv 安装\ncommand: uv run supabase-mcp-server\n\n# 如果上述方法无效，请使用完整路径（推荐）\n命令：\u002Ffull\u002Fpath\u002Fto\u002Fsupabase-mcp-server  # 使用 'which supabase-mcp-server'（macOS\u002FLinux）或 'where supabase-mcp-server'（Windows）查找\n```\n\n如果配置正确，您应该会看到一个绿色的点状指示器以及服务器暴露的工具数量。\n![Cursor 配置成功示例](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_55652796e84e.png)\n\n#### Windsurf\n前往 Cascade -> 点击锤子图标 -> 配置 -> 填写配置：\n```json\n{\n    \"mcpServers\": {\n      \"supabase\": {\n        \"command\": \"\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server\",  \u002F\u002F 更新路径\n        \"env\": {\n          \"QUERY_API_KEY\": \"your-api-key\",  \u002F\u002F 必填项 - 请在 thequery.dev 获取您的 API 密钥\n          \"SUPABASE_PROJECT_REF\": \"your-project-ref\",\n          \"SUPABASE_DB_PASSWORD\": \"your-db-password\",\n          \"SUPABASE_REGION\": \"us-east-1\",  \u002F\u002F 可选，默认为 us-east-1\n          \"SUPABASE_ACCESS_TOKEN\": \"your-access-token\",  \u002F\u002F 可选，用于管理 API\n          \"SUPABASE_SERVICE_ROLE_KEY\": \"your-service-role-key\"  \u002F\u002F 可选，用于 Auth Admin SDK\n        }\n      }\n    }\n}\n```\n如果配置正确，您应该会看到绿色的点状指示器，并且在可用服务器列表中可以点击 Supabase 服务器。\n\n![Windsurf 配置成功示例](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_805685f283c8.png)\n\n#### Claude Desktop\nClaude Desktop 也支持通过 JSON 配置来使用 MCP 服务器。请按照以下步骤设置 Supabase MCP 服务器：\n\n1. **找到可执行文件的完整路径**（此步骤至关重要）：\n   ```bash\n   # 在 macOS\u002FLinux 上\n   which supabase-mcp-server\n\n   # 在 Windows 上\n   where supabase-mcp-server\n   ```\n   复制返回的完整路径（例如：`\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server`）。\n\n2. **在 Claude Desktop 中配置 MCP 服务器**：\n   - 打开 Claude Desktop\n   - 进入设置 → 开发者 → 编辑配置 MCP 服务器\n   - 添加新的配置，内容如下：\n\n   ```json\n   {\n     \"mcpServers\": {\n       \"supabase\": {\n         \"command\": \"\u002Ffull\u002Fpath\u002Fto\u002Fsupabase-mcp-server\",  \u002F\u002F 替换为步骤 1 中的实际路径\n         \"env\": {\n           \"QUERY_API_KEY\": \"your-api-key\",  \u002F\u002F 必填项 - 请在 thequery.dev 获取您的 API 密钥\n           \"SUPABASE_PROJECT_REF\": \"your-project-ref\",\n           \"SUPABASE_DB_PASSWORD\": \"your-db-password\",\n           \"SUPABASE_REGION\": \"us-east-1\",  \u002F\u002F 可选，默认为 us-east-1\n           \"SUPABASE_ACCESS_TOKEN\": \"your-access-token\",  \u002F\u002F 可选，用于管理 API\n           \"SUPABASE_SERVICE_ROLE_KEY\": \"your-service-role-key\"  \u002F\u002F 可选，用于 Auth Admin SDK\n         }\n       }\n     }\n   }\n   ```\n\n> ⚠️ **重要提示**：与 Windsurf 和 Cursor 不同，Claude Desktop 需要提供可执行文件的 **完整绝对路径**。仅使用命令名称（`supabase-mcp-server`）会导致“spawn ENOENT”错误。\n\n如果配置正确，您应该会在 Claude Desktop 中看到 Supabase MCP 服务器已列出并可供使用。\n\n![Windsurf 配置成功示例](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_aa4e931b04c3.png)\n\n#### Cline\nCline 同样支持通过类似的 JSON 配置来使用 MCP 服务器。请按照以下步骤设置 Supabase MCP 服务器：\n\n1. **找到可执行文件的完整路径**（此步骤至关重要）：\n   ```bash\n   # 在 macOS\u002FLinux 上\n   which supabase-mcp-server\n\n   # 在 Windows 上\n   where supabase-mcp-server\n   ```\n   复制返回的完整路径（例如：`\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server`）。\n\n2. **在 Cline 中配置 MCP 服务器**：\n   - 打开 VS Code 中的 Cline\n   - 点击 Cline 侧边栏中的“MCP 服务器”选项卡\n   - 点击“配置 MCP 服务器”\n   - 这将打开 `cline_mcp_settings.json` 文件\n   - 添加以下配置：\n\n   ```json\n   {\n     \"mcpServers\": {\n       \"supabase\": {\n         \"command\": \"\u002Ffull\u002Fpath\u002Fto\u002Fsupabase-mcp-server\",  \u002F\u002F 替换为步骤 1 中的实际路径\n         \"env\": {\n           \"QUERY_API_KEY\": \"your-api-key\",  \u002F\u002F 必填项 - 请在 thequery.dev 获取您的 API 密钥\n           \"SUPABASE_PROJECT_REF\": \"your-project-ref\",\n           \"SUPABASE_DB_PASSWORD\": \"your-db-password\",\n           \"SUPABASE_REGION\": \"us-east-1\",  \u002F\u002F 可选，默认为 us-east-1\n           \"SUPABASE_ACCESS_TOKEN\": \"your-access-token\",  \u002F\u002F 可选，用于管理 API\n           \"SUPABASE_SERVICE_ROLE_KEY\": \"your-service-role-key\"  \u002F\u002F 可选，用于 Auth Admin SDK\n         }\n       }\n     }\n   }\n   ```\n\n如果配置正确，您应该会在 Cline 的 MCP 服务器列表中看到 Supabase MCP 服务器旁边的绿色指示灯，同时面板底部会显示“supabase MCP 服务器已连接”的确认信息。\n\n![Cline 配置成功示例](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_57ba469a566a.png)\n\n### 故障排除\n\n以下是一些可能对您有帮助的技巧和提示：\n- **调试安装**：直接在终端运行 `supabase-mcp-server`，看看是否能正常工作。如果不能，则可能是安装存在问题。\n- **MCP 服务器配置**：如果上述步骤能够成功运行，说明服务器已正确安装和配置。只要您提供了正确的命令，IDE 就应该能够连接。请务必提供服务器可执行文件的正确路径。\n- **“未找到工具”错误**：如果在 Cursor 中即使已安装该包仍显示“客户端已关闭 - 没有可用工具”：\n  - 使用 `which supabase-mcp-server`（macOS\u002FLinux）或 `where supabase-mcp-server`（Windows）找到可执行文件的完整路径\n  - 在 MCP 服务器配置中使用完整路径，而不是仅使用 `supabase-mcp-server`\n  - 例如：`\u002FUsers\u002Fusername\u002F.local\u002Fbin\u002Fsupabase-mcp-server` 或 `C:\\Users\\username\\.local\\bin\\supabase-mcp-server.exe`\n- **环境变量**：为了连接到正确的数据库，请确保在 `mcp_config.json` 或全局配置目录下的 `.env` 文件中设置环境变量（macOS\u002FLinux 为 `~\u002F.config\u002Fsupabase-mcp\u002F.env`，Windows 为 `%APPDATA%\\supabase-mcp\\.env`）。\n- **访问日志**：MCP 服务器会将详细日志写入文件：\n  - 日志文件位置：\n    - macOS\u002FLinux：`~\u002F.local\u002Fshare\u002Fsupabase-mcp\u002Fmcp_server.log`\n    - Windows：`%USERPROFILE%\\.local\\share\\supabase-mcp\\mcp_server.log`\n  - 日志内容包括连接状态、配置详情以及操作结果\n  - 可以使用任何文本编辑器或终端命令查看日志：\n    ```bash\n    # 在 macOS\u002FLinux 上\n    cat ~\u002F.local\u002Fshare\u002Fsupabase-mcp\u002Fmcp_server.log\n\n    # 在 Windows 上（PowerShell）\n    Get-Content \"$env:USERPROFILE\\.local\\share\\supabase-mcp\\mcp_server.log\"\n    ```\n\n如果您遇到困难或以上任何说明不正确，请提交问题。\n\n### MCP 检查器\n一个非常有用的工具，可以帮助调试 MCP 服务器问题，就是 MCP 检查器。如果你是从源码安装的，可以直接在项目仓库中运行 `supabase-mcp-inspector`，它就会启动检查器实例。配合日志使用，你可以全面了解服务器中正在发生的事情。\n> 📝 如果是从软件包安装的，运行 `supabase-mcp-inspector` 可能无法正常工作——我将在即将发布的版本中进行验证并修复。\n\n## 功能概览\n\n### 数据库查询工具\n\n自 v0.3+ 版本起，服务器提供了全面的数据库管理功能，并内置了安全控制机制：\n\n- **SQL 查询执行**：执行 PostgreSQL 查询并进行风险评估\n  - **三层安全系统**：\n    - `safe`：只读操作（SELECT）——始终允许\n    - `write`：数据修改操作（INSERT、UPDATE、DELETE）——需要切换到非安全模式\n    - `destructive`：模式变更操作（DROP、CREATE）——需要切换到非安全模式并确认\n\n- **SQL 解析与验证**：\n  - 使用 PostgreSQL 的解析器（pglast）进行准确分析，并提供清晰的安全性要求反馈\n\n- **自动迁移版本管理**：\n  - 所有会改变数据库结构的操作都会自动版本化\n  - 根据操作类型和目标生成描述性的名称\n\n- **安全控制**：\n  - 默认 SAFE 模式仅允许只读操作\n  - 所有语句都通过 `asyncpg` 在事务模式下执行\n  - 高风险操作需经过两步确认\n\n- **可用工具**：\n  - `get_schemas`：列出所有模式及其大小和表数量\n  - `get_tables`：列出所有表、外部表和视图及其元数据\n  - `get_table_schema`：获取详细的表结构信息（列、键、关系等）\n  - `execute_postgresql`：对数据库执行 SQL 语句\n  - `confirm_destructive_operation`：在确认后执行高风险操作\n  - `retrieve_migrations`：获取迁移记录，并支持筛选和分页\n  - `live_dangerously`：在安全模式和非安全模式之间切换\n\n### 管理 API 工具\n\n自 v0.3.0 版本起，服务器提供了对 Supabase 管理 API 的安全访问，并内置了安全控制机制：\n\n- **可用工具**：\n  - `send_management_api_request`：向 Supabase 管理 API 发送任意请求，并自动注入项目引用\n  - `get_management_api_spec`：获取包含安全信息的丰富 API 规范\n    - 支持多种查询模式：按域名、按特定路径\u002F方法或查询所有路径\n    - 包含每个端点的风险评估信息\n    - 提供详细的参数要求和响应格式\n    - 帮助 LLMs 理解 Supabase 管理 API 的全部能力\n  - `get_management_api_safety_rules`：获取所有安全规则，并附有人类可读的解释\n  - `live_dangerously`：在安全模式和非安全模式之间切换\n\n- **安全控制**：\n  - 使用与数据库操作相同的安全管理器，以实现一致的风险管理\n  - 操作按风险级别分类：\n    - `safe`：只读操作（GET）——始终允许\n    - `unsafe`：状态变更操作（POST、PUT、PATCH、DELETE）——需要切换到非安全模式\n    - `blocked`：破坏性操作（删除项目等）——绝不允许\n  - 默认安全模式可防止意外的状态变更\n  - 基于路径的模式匹配用于制定精确的安全规则\n\n**注意**：管理 API 工具仅适用于远程 Supabase 实例，不兼容本地 Supabase 开发环境。\n\n### Auth Admin 工具\n\n我原本计划将 Python SDK 方法的支持添加到 MCP 服务器中。但经过考虑，我决定只支持 Auth Admin 方法，因为我经常手动创建测试用户，这既容易出错又耗时。现在，我只需让 Cursor 创建一个测试用户，一切就能无缝完成。请查看完整的 Auth Admin SDK 方法文档，了解其功能。\n\n自 v0.3.6 版本起，服务器支持通过 Python SDK 直接访问 Supabase Auth Admin 方法：\n  - 包括以下工具：\n    - `get_auth_admin_methods_spec`：获取所有可用 Auth Admin 方法的文档\n    - `call_auth_admin_method`：直接调用 Auth Admin 方法，并正确处理参数\n  - 支持的方法：\n    - `get_user_by_id`：根据用户 ID 获取用户信息\n    - `list_users`：分页列出所有用户\n    - `create_user`：创建新用户\n    - `delete_user`：根据用户 ID 删除用户\n    - `invite_user_by_email`：向用户邮箱发送邀请链接\n    - `generate_link`：为各种认证目的生成电子邮件链接\n    - `update_user_by_id`：根据用户 ID 更新用户属性\n    - `delete_factor`：删除用户的某个认证因素（目前 SDK 中尚未实现）\n\n#### 为什么使用 Auth Admin SDK 而不是直接使用 SQL 查询？\n\nAuth Admin SDK 相比直接操作 SQL 具有以下几大优势：\n- **功能**：能够执行 SQL 无法单独完成的操作（邀请、魔法链接、MFA 等）\n- **准确性**：比直接在认证模式上编写和执行 SQL 查询更可靠\n- **简洁性**：提供清晰的方法，并具备完善的验证和错误处理机制\n\n  - 响应格式：\n    - 所有方法都返回结构化的 Python 对象，而不是原始字典\n    - 可以使用点符号访问对象属性（例如，`user.id` 而不是 `user[\"id\"]`）\n  - 边缘情况和限制：\n    - UUID 验证：许多方法要求用户 ID 必须是有效的 UUID 格式，否则会返回特定的验证错误\n    - 邮件配置：像 `invite_user_by_email` 和 `generate_link` 这样的方法要求你的 Supabase 项目必须配置好邮件发送功能\n    - 链接类型：生成不同类型的链接有不同的要求：\n      - `signup` 链接不需要用户已经存在\n      - `magiclink` 和 `recovery` 链接则要求用户必须已经在系统中存在\n    - 错误处理：服务器会提供来自 Supabase API 的详细错误信息，这些信息可能与仪表板界面有所不同\n    - 方法可用性：某些方法，如 `delete_factor`，虽然在 API 中公开，但在 SDK 中尚未完全实现\n\n### 日志与分析\n\n服务器提供了对 Supabase 日志和分析数据的访问权限，使你更容易监控和排查应用程序中的问题：\n\n- **可用工具**：`retrieve_logs`——访问任何 Supabase 服务的日志\n\n- **日志集合**：\n  - `postgres`：数据库服务器日志\n  - `api_gateway`：API 网关请求日志\n  - `auth`：身份验证事件日志\n  - `postgrest`：RESTful API 服务日志\n  - `pooler`：连接池日志\n  - `storage`：对象存储操作日志\n  - `realtime`：WebSocket 订阅日志\n  - `edge_functions`：无服务器函数执行日志\n  - `cron`：定时任务日志\n  - `pgbouncer`：连接池日志\n\n- **功能**：可以按时间过滤、搜索文本、应用字段筛选，或使用自定义 SQL 查询。\n这简化了在整个 Supabase 技术栈中的调试工作，无需在不同界面之间切换或编写复杂的查询。\n\n### 数据库变更的自动版本控制\n\n“能力越大，责任越大。” 尽管 `execute_postgresql` 工具配合名为 `live_dangerously` 的工具，为管理您的 Supabase 数据库提供了一种强大而简便的方式，但也意味着只需一条聊天消息，就可能删除或修改表。为了降低不可逆更改的风险，自 v0.3.8 版本起，服务器支持以下功能：\n- 自动为所有在数据库上执行的写入及破坏性 SQL 操作生成迁移脚本\n- 改进的查询执行安全模式，在该模式下，所有查询被划分为：\n  - “安全”类型：始终允许。包括所有只读操作。\n  - “写入”类型：需要用户启用“写入”模式。\n  - “破坏性”类型：需要用户启用“写入”模式，并且对于不自动执行工具的客户端，还需进行两步确认才能执行查询。\n\n### 通用安全模式\n自 v0.3.8 版本起，安全模式已在所有服务（数据库、API、SDK）中标准化，采用统一的安全管理器。这提供了连贯的风险管理机制，并为在整个 MCP 服务器上控制安全设置提供了一个统一的接口。\n\n所有操作（SQL 查询、API 请求、SDK 方法）均按风险等级分类：\n- 低风险：只读操作，不会修改数据或结构（SELECT 查询、GET API 请求）\n- 中风险：写入操作，会修改数据但不改变结构（INSERT\u002FUPDATE\u002FDELETE，大多数 POST\u002FPUT API 请求）\n- 高风险：破坏性操作，会修改数据库结构或可能导致数据丢失（DROP\u002FTRUNCATE，DELETE API 端点）\n- 极高风险：后果极其严重、完全禁止的操作（删除项目）\n\n安全控制根据风险等级实施：\n- 低风险操作始终允许\n- 中风险操作需启用非安全模式\n- 高风险操作需启用非安全模式并进行明确确认\n- 极高风险操作一律禁止\n\n#### 确认流程的工作方式\n\n任何高风险操作（无论是 PostgreSQL 还是 API 请求）即使在“非安全”模式下也会被阻止。\n![每项高风险操作都会被阻止](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_bd13f564912d.png)\n您必须对每一项高风险操作进行明确确认并批准，它才会被执行。\n![始终需要明确批准](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_dfac1293b442.png)\n\n\n## 更改日志\n\n- 📦 通过包管理器简化安装 — ✅（v0.2.0）\n- 🌎 支持不同的 Supabase 区域 — ✅（v0.2.2）\n- 🎮 带有安全控制的 Supabase 管理 API 编程式访问 — ✅（v0.3.0）\n- 👷‍♂️ 带有安全控制的只读和读写数据库 SQL 查询 — ✅（v0.3.0）\n- 🔄 强健的事务处理，适用于直接连接和连接池 — ✅（v0.3.2）\n- 🐍 支持原生 Python SDK 中可用的方法和对象 — ✅（v0.3.6）\n- 🔍 更强的 SQL 查询验证 — ✅（v0.3.8）\n- 📝 数据库变更的自动版本控制 — ✅（v0.3.8）\n- 📖 大幅改进的 API 规范知识与工具 — ✅（v0.3.8）\n- ✍️ 改进迁移相关工具的一致性，以实现更有序的数据库版本控制系统 — ✅（v0.3.10）\n- 🥳 Query MCP 正式发布 — （v0.4.0）\n\n\n如需更详细的路线图，请参阅 GitHub 上的此[讨论](https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fdiscussions\u002F46)。\n\n\n## 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_readme_698532f10ca7.png)](https:\u002F\u002Fstar-history.com\u002F#alexander-zuev\u002Fsupabase-mcp-server&Date)\n\n---\n\n祝您使用愉快！☺️","# Supabase MCP Server 快速上手指南\n\n> **重要提示**：本项目作者已停止维护，因为 Supabase 官方发布了 [官方 MCP Server](https:\u002F\u002Fgithub.com\u002Fsupabase-community\u002Fsupabase-mcp)。建议新用户优先尝试官方版本。若需继续使用本工具，请参考以下指南。\n\nQuery MCP 是一个开源的 MCP 服务器，允许你的 IDE（如 Cursor、Windsurf）安全地执行 SQL、管理架构变更、调用 Supabase 管理 API 以及使用 Auth Admin SDK。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **Python 版本**：必须安装 Python 3.12 或更高版本。\n*   **包管理器（推荐）**：推荐安装 `uv` 或 `pipx` 以隔离环境。\n    *   安装 `uv`: 参考 [uv 安装文档](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F)\n    *   安装 `pipx`: `pip install pipx && pipx ensurepath`\n*   **PostgreSQL（仅本地开发需要）**：如果你运行的是本地 Supabase 实例，需要安装 PostgreSQL 16+。\n    *   macOS: `brew install postgresql@16`\n    *   Windows: 从官网下载并安装，确保勾选 \"PostgreSQL Server\" 和 \"Command Line Tools\"。\n    *   *注：连接远程 Supabase 项目无需在本地安装 PostgreSQL。*\n\n## 安装步骤\n\n推荐使用 `pipx` 进行安装，它会自动创建独立的虚拟环境，避免依赖冲突。\n\n### 方式一：使用 pipx（推荐）\n\n```bash\npipx install supabase-mcp-server\n```\n\n### 方式二：使用 uv\n\n```bash\nuv pip install supabase-mcp-server\n```\n\n### 方式三：源码安装（用于开发）\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server.git\ncd supabase-mcp-server\nuv venv\n# macOS\u002FLinux\nsource .venv\u002Fbin\u002Factivate\n# Windows\n.venv\\Scripts\\activate\nuv pip install -e .\n```\n\n## 配置与使用\n\n### 1. 获取必要凭证\n\n自 v0.4 版本起，使用该服务器**必须**拥有一个 API Key。\n\n*   **QUERY_API_KEY**: 前往 [thequery.dev](https:\u002F\u002Fthequery.dev) 免费获取。\n*   **Supabase 项目信息**:\n    *   `SUPABASE_PROJECT_REF`: 项目 URL 中的 ID (例如 `https:\u002F\u002Fsupabase.com\u002Fdashboard\u002Fproject\u002F\u003Cref>` 中的 `\u003Cref>`)。\n    *   `SUPABASE_DB_PASSWORD`: 在 Project Settings -> Database 中查看。\n    *   `SUPABASE_REGION`: 项目所在的 AWS 区域 (默认为 `us-east-1`，**务必与实际区域一致**，否则报错)。\n    *   `SUPABASE_ACCESS_TOKEN` (可选): 用于管理 API，在 Account Tokens 生成。\n    *   `SUPABASE_SERVICE_ROLE_KEY` (可选): 用于 Auth 管理，在 Project Settings -> API 中查看。\n\n### 2. 设置环境变量\n\n由于通过 `pipx` 或 `uv` 安装时无法读取项目目录下的 `.env` 文件，推荐以下两种配置方式：\n\n#### 方案 A：全局配置文件（推荐）\n\n创建一个全局配置文件，所有 MCP 实例均可读取。\n\n**macOS \u002F Linux:**\n```bash\nmkdir -p ~\u002F.config\u002Fsupabase-mcp\nnano ~\u002F.config\u002Fsupabase-mcp\u002F.env\n```\n\n**Windows (PowerShell):**\n```powershell\nmkdir -Force \"$env:APPDATA\\supabase-mcp\"\nnotepad \"$env:APPDATA\\supabase-mcp\\.env\"\n```\n\n在文件中填入以下内容：\n```ini\nQUERY_API_KEY=your-api-key-from-thequery\nSUPABASE_PROJECT_REF=your-project-ref\nSUPABASE_DB_PASSWORD=your-db-password\nSUPABASE_REGION=us-east-1\n# 以下为可选\nSUPABASE_ACCESS_TOKEN=your-access-token\nSUPABASE_SERVICE_ROLE_KEY=your-service-role-key\n```\n\n#### 方案 B：客户端直接配置\n\n在 IDE 的 MCP 设置中直接传入环境变量（见下文）。\n\n### 3. 在 IDE 中集成\n\n本服务器支持任何使用 `stdio` 协议的 MCP 客户端。以下是 **Cursor** 的配置示例：\n\n1.  打开 Cursor 设置：**Settings** -> **Features** -> **MCP Servers**。\n2.  点击 **Add New Server**。\n3.  填写如下配置：\n\n```json\n{\n  \"name\": \"supabase\",\n  \"type\": \"command\",\n  \"command\": \"supabase-mcp-server\",\n  \"env\": {\n    \"QUERY_API_KEY\": \"your-api-key-from-thequery\",\n    \"SUPABASE_PROJECT_REF\": \"your-project-ref\",\n    \"SUPABASE_DB_PASSWORD\": \"your-db-password\",\n    \"SUPABASE_REGION\": \"us-east-1\"\n  }\n}\n```\n\n*注意：如果 `command` 直接使用 `supabase-mcp-server` 无效，请使用绝对路径。*\n*   macOS\u002FLinux 查找路径：`which supabase-mcp-server`\n*   Windows 查找路径：`where supabase-mcp-server`\n\n若使用 `uv` 安装，命令可改为：\n```json\n\"command\": \"uv\",\n\"args\": [\"run\", \"supabase-mcp-server\"]\n```\n\n### 4. 验证使用\n\n配置完成后，IDE 中的 MCP 状态指示器应变为绿色。你可以在聊天窗口中尝试以下自然语言指令：\n\n*   \"列出当前数据库中的所有表\"\n*   \"创建一个名为 users 的新表，包含 id 和 email 字段\"\n*   \"查询最近注册的用户\"\n\n服务器将自动评估 SQL 的安全等级（只读、写入或破坏性操作）并执行。","某全栈开发者正在使用 Cursor 编辑器快速迭代一个 SaaS 项目的用户模块，需要频繁调整数据库结构并管理用户权限。\n\n### 没有 supabase-mcp-server 时\n- **上下文频繁切换**：开发者必须在 IDE、Supabase 网页控制台和终端之间反复跳转，手动复制 SQL 语句或点击按钮执行操作，打断心流。\n- **高危操作无预警**：在执行 `DROP` 或大规模 `UPDATE` 等危险指令时，缺乏实时的风险分级评估，极易因手误导致生产数据丢失。\n- **版本管理繁琐**：每次修改表结构后，需手动编写迁移文件并记录版本号，容易遗漏步骤导致多环境数据库结构不一致。\n- **用户管理低效**：排查用户登录问题时，无法直接在代码上下文中调用 Auth SDK，必须编写临时脚本或去后台查日志。\n\n### 使用 supabase-mcp-server 后\n- **对话即运维**：直接在 Cursor 聊天窗口输入自然语言指令（如“创建用户表并添加索引”），supabase-mcp-server 自动安全地执行 SQL 并返回结果。\n- **三层安全防护**：工具内置的安全系统会自动识别高风险操作，对“破坏性”指令进行拦截或二次确认，将误操作风险降至最低。\n- **迁移自动化**：检测到 Schema 变更时，supabase-mcp-server 自动生成带版本号的迁移文件，确保本地与云端结构实时同步。\n- **全链路调试**：开发者可直接通过对话调用 Management API 和 Auth Admin 方法，即时查询用户状态或重置密码，无需离开当前开发界面。\n\nsupabase-mcp-server 将复杂的数据库运维和安全管控融入自然对话，让开发者在保持专注的同时实现端到端的项目管理。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falexander-zuev_supabase-mcp-server_55652796.png","alexander-zuev","Alexander Zuev","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Falexander-zuev_4decc593.png","Building what I wish existed",null,"Dubai, UAE","zlxndr","https:\u002F\u002Fgithub.com\u002Falexander-zuev",[85,89],{"name":86,"color":87,"percentage":88},"Python","#3572A5",99.9,{"name":90,"color":91,"percentage":92},"Dockerfile","#384d54",0.1,816,105,"2026-04-04T03:41:54","Apache-2.0","Linux, macOS, Windows","不需要 GPU","未说明",{"notes":101,"python":102,"dependencies":103},"该工具是一个用于 Supabase 的 MCP 服务器，无需安装 PostgreSQL 开发库（使用 asyncpg）。若运行本地 Supabase 实例则需安装 PostgreSQL 16+。自 v0.4 版本起，必须从 thequery.dev 获取免费的 API 密钥 (QUERY_API_KEY) 才能运行。不支持自托管 Supabase，仅支持官方云服务和本地开发环境。数据库连接仅支持事务池化 (transaction pooling)，不支持会话池化。","3.12+",[104,105,106,107],"asyncpg","supabase (Python SDK)","uv (可选包管理器)","pipx (推荐包管理器)",[15,53],[110,111,112,113],"model-context-protocol","supabase","cursor","windsurf","2026-03-27T02:49:30.150509","2026-04-06T14:06:27.756512",[117,122,127,132,137,142],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},19231,"执行工具时出现连接错误（ConnectionError\u002FRetryError）如何解决？","这通常是由于重试机制或错误处理不完善导致的。请尝试升级到最新版本（如 v0.3.8 或更高），维护者在该版本中改进了重试逻辑和错误处理能力，通常能解决此类连接不稳定问题。","https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fissues\u002F28",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},19232,"为什么当 .env 文件中包含非 Supabase 环境变量（如 OPENAI_API_KEY）时 MCP 连接会失败？","这是因为某些 MCP 客户端对环境变量的处理机制可能导致冲突。解决方案是创建一个独立的 Shell 脚本来启动服务器，而不是直接在配置中调用二进制文件。你可以编写一个脚本（例如 `project-1-mcps.sh`），在其中执行启动命令，然后在 `mcp.json` 中配置该脚本：\n```json\n{\n   \"mcpServers\": {\n     \"all-mcps-project-1\": {\n       \"command\": \"exec\",\n       \"args\": [\"project-1-mcps.sh\"]\n      }\n  } \n}\n```\n此外，也可以尝试使用工具（如 supergateway）将 stdio 模式转换为 SSE 模式进行远程连接测试。","https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fissues\u002F58",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},19233,"遇到 'NoneType object has no attribute group' 认证错误怎么办？","这个错误的根本原因是 Supabase 连接配置不正确，特别是以下三项之一有误：\n1. ❌ 无效的项目引用 (Project Reference)\n2. ❌ 错误的数据库密码 (Database Password)\n3. ❌ 错误的区域 (Region)\n\n⚠️ 重要提示：这里的“数据库密码”不是你的 anon key 或 service_role key，而是你在创建数据库时在 Supabase 仪表板中设置的原始数据库密码。请务必检查并使用正确的凭据。如果未提供密码，新版本也会直接报错提示。","https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fissues\u002F57",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},19234,"为什么 get_tables 命令无法显示外部包装表（Foreign Wrappers，如 Stripe 集成表）？","这是一个已修复的问题。旧版本的查询逻辑只检索了标准表，忽略了外部表。在 v0.3.5 及更高版本中，维护者更新了 `get_tables` 的查询逻辑，将其改为两个查询的 UNION：\n1. 查询 `information_schema.tables`\n2. 查询 `information_schema.foreign_tables`\n请升级服务器版本即可正常看到并操作外部包装表。","https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fissues\u002F13",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},19235,"如何在 Smithery 上正确配置 STDIO 启动命令？","如果在 Smithery 上遇到连接问题，可能是 STDIO 函数定义有误。正确的配置应使用 `uv` 命令来运行主程序，并传递必要的环境变量。参考配置如下：\n```yaml\ncommandFunction: |\n  (config) => ({ \n    command: 'uv', \n    args: ['--directory', '.', 'run', 'supabase_mcp\u002Fmain.py'], \n    env: { \n      SUPABASE_PROJECT_REF: config.supabaseProjectRef, \n      SUPABASE_DB_PASSWORD: config.supabaseDbPassword \n      \u002F\u002F 其他必要变量...\n    } \n  })\n```\n确保 YAML 中的命令路径和参数与实际项目结构一致。","https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fissues\u002F47",{"id":143,"question_zh":144,"answer_zh":145,"source_url":131},19236,"如何调试和确认我的 Supabase 凭据配置是否正确？","如果遇到连接或认证问题，请按以下步骤排查：\n1. 确认 `SUPABASE_PROJECT_REF` 是正确的项目引用（位于项目设置 URL 中）。\n2. 确认 `SUPABASE_REGION` 与你的项目区域一致（如 us-west-1）。\n3. 最关键的是确认 `SUPABASE_DB_PASSWORD`：它必须是数据库密码，而非 API Key。你可以登录 Supabase 仪表板，进入 Project Settings -> Database 查看或重置该密码。\n4. 确保使用的是最新版本的服务器，因为新版本增加了更严格的变量验证，会在缺少密码时直接报错，帮助快速定位问题。",[147,152,157,162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237],{"id":148,"version":149,"summary_zh":150,"released_at":151},117232,"v0.4","# v0.4 - Query MCP\n\n说我很激动都显得太轻描淡写了。这次发布虽然没有特别重磅的新功能（除了修复了几个令人头疼的 bug 以及优化了启动和关闭流程），但依然堪称史诗级。\n\nQuery MCP 正在不断进化，目前已经在 thequery.dev 上开放抢先体验。\n\n更多精彩内容即将上线——敬请期待！\n\n## 变更内容\n* 功能：由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F62 中引入 API 客户端与服务器的分离\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.12...v0.4","2025-04-03T10:25:36",{"id":153,"version":154,"summary_zh":155,"released_at":156},117233,"v0.4-beta-1","Query MCP 预发布版本。敬请期待 v0.4 的发布。\n\n## 变更内容\n* 功能：由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F62 中引入 API 客户端与服务器的分离\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.12...v0.4-beta-1","2025-04-03T09:19:11",{"id":158,"version":159,"summary_zh":160,"released_at":161},117234,"v0.3.12","## 主要变更\n- 推出全新“日志与分析”工具套件中的首款工具：\n  - `retrieve_logs` 工具使用户能够轻松从 Supabase 中的任何日志收集点获取日志，例如 Auth、Postgres、PostgREST、边缘函数等。这将极大方便在 IDE 或 MCP 客户端中进行调试和管理 Supabase 实例。\n- 更新了 README 和 smithery.yaml 文件，明确指出 `SUPABASE_DB_REGION` 是必需变量（无破坏性变更，但未来版本将强制执行此要求）。\n- 改进了“租户未找到”错误处理，该错误通常由 MCP 服务器连接的区域与实际区域不匹配所致。\n- 引入日志轮转机制，以防止日志溢出。\n\n\n## 提交记录\n* feat(logs): 由 @alexander-zuev 引入 `retrieve_logs` 工具，详见 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F56\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.11...v0.3.12","2025-03-12T11:03:41",{"id":163,"version":164,"summary_zh":165,"released_at":166},117235,"v0.3.11","## 主要变更\n本次发布主要是修复 bug：\n- 修复了一个因迁移模式不存在而导致 PostgreSQL 查询无法执行的 bug (#44)\n- 对 smithery.yaml 配置进行了小幅更新\n\n## 提交记录\n* fix：@alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F49 中进行的第二次尝试，用于修复 Smithery 部署问题\n* fix(migrations)：@alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F51 中修复了迁移模式冷启动时的问题\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.10...v0.3.11","2025-03-10T11:34:26",{"id":168,"version":169,"summary_zh":170,"released_at":171},117236,"v0.3.10","## 主要变更\n- 优化了迁移文件名生成机制，确保命名一致性：timestamp_动词_名词_详细说明.sql。MCP 客户端现在也可以提供自定义的迁移文件名。\n- 改进了 `get_migrations` 工具，提升了在数据库包含大量迁移时工具调用的可靠性。\n- 添加了在发起 API 调用前验证个人访问令牌和服务角色密钥的检查逻辑。\n- 增加了对多个 MCP 客户端的支持（Cursor、Windsurf、Claude Desktop、Cline）。\n\n## 提交记录\n* feat(database): 增强迁移管理和查询验证功能，由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F48 中完成。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.9...v0.3.10","2025-03-09T08:21:46",{"id":173,"version":174,"summary_zh":175,"released_at":176},117237,"v0.3.9","## 本次更新内容\n- 修复了 api_spec 获取工具中的一个 bug\n\n## 变更内容\n* 修复(api): 由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F43 中修复了 api_spec 获取的 bug\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.8...v0.3.9","2025-03-08T07:27:43",{"id":178,"version":179,"summary_zh":180,"released_at":181},117238,"v0.3.8","### 新增\n- 使用 PostgreSQL 的解析器（pglast v7.3+）进行 SQL 查询验证\n- 针对模式变更自动生成迁移脚本\n- 通用安全系统，采用标准化的风险等级（低\u002F中\u002F高\u002F极高）\n- 从 psycopg2 切换至 asyncpg v0.30.0+\n- 增强的 API 规范工具，支持多种查询模式和风险评估\n- 数据库和 API 操作的连接重试逻辑\n- 使用 pytest-cov 实现代码覆盖率\n- 使用 SQLFluff 进行 SQL 代码风格检查\n- 添加了 pyyaml v6.0.2+ 用于配置管理\n\n### 变更\n- 重构为依赖注入模式\n- 将服务初始化统一为同步模式\n- 改进了 SQL 安全分类：\n  - `safe`：只读操作（始终允许）\n  - `write`：数据修改（需启用非安全模式）\n  - `destructive`：模式变更（需启用非安全模式并确认）\n- 更新 Ruff 至 v0.9.9\n- 添加了 asyncpg-stubs 和 pytest-mock 用于测试\n\n## 本次发布中的提交\n* feat: SQL 语法验证、新安全模式、自动迁移、新数据库客户端、工具改进，由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F41 中完成\n* fix(tests): 解决迁移名称重复错误，由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F42 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.7...v0.3.8","2025-03-07T12:39:45",{"id":183,"version":184,"summary_zh":185,"released_at":186},117239,"v0.3.7","## 描述 📚\r\n这是一个较小的更新，包含3项改动：\n- 修复了 README 和 .env.example 中的拼写错误及缺失的环境变量\n- 部署至 smithery.ai\n- 进行了一项小但实用的改进，允许将 Auth Admin SDK 工具与本地 Supabase 实例一起使用（由 [dewinterjack](https:\u002F\u002Fgithub.com\u002Fdewinterjack) 提出）\n\n## 变更内容 📋\n* 文档：添加 contributing.md，作者 @alexander-zuev，见 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F23\n* 杂项：添加 Docker 和环境配置文件，作者 @alexander-zuev，见 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F24\n* 功能（SDK）：支持在本地使用 Python SDK，作者 @alexander-zuev，见 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F25\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.6...v0.3.7","2025-03-02T10:59:25",{"id":188,"version":189,"summary_zh":190,"released_at":191},117240,"v0.3.6","## 变更内容\n* 由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F17 中引入的 Feat\u002Fauth SDK\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.5...v0.3.6","2025-02-26T13:38:40",{"id":193,"version":194,"summary_zh":195,"released_at":196},117241,"v0.3.5","## 变更内容\n* 修复\u002F外部表功能，由 @alexander-zuev 在 https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F15 中完成\n* 更新文档，描述 mcp.json 配置\n* 增强测试套件，覆盖 MCP 服务器的所有工具\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.4...v0.3.5","2025-02-26T07:29:00",{"id":198,"version":199,"summary_zh":200,"released_at":201},117242,"v0.3.4","**Key changes:**\r\n- `get_tables` tool now returns both foreign wrapper tables and views, which were previously excluded. Resolves #13\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.3...v0.3.4","2025-02-25T12:27:11",{"id":203,"version":204,"summary_zh":205,"released_at":206},117243,"v0.3.3","**Key changes:**\r\n- Bug fix release of improper readonly scope in `db_client`\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.2...v0.3.3","2025-02-25T10:08:56",{"id":208,"version":209,"summary_zh":210,"released_at":211},117244,"v0.3.2","## Key changes\r\n- Fixed a bug preventing execution of DDL commands (create, alter tables, etc.)\r\n- Improved transaction handling in read and write modes to ensure sessions are properly handled\r\n- Improved `execute_sql_query` tool description so that Cursor and Windsurf do not make mistakes using it \r\n\r\n\r\n## What's Changed\r\n* fix: improve transaction handling in database client by @alexander-zuev in https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F12\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.1...v0.3.2","2025-02-25T07:00:47",{"id":213,"version":214,"summary_zh":215,"released_at":216},117245,"v0.3.1","## What's Changed\r\n* feat: management api and read-write query mode by @alexander-zuev in https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F9\r\n* docs: improve docs description on install, setup, config by @alexander-zuev in https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F10\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.3.0...v0.3.1","2025-02-23T15:39:39",{"id":218,"version":219,"summary_zh":220,"released_at":221},117246,"v0.3.0","## 🔥What's New\r\n- Read-write SQL operations with safety controls\r\n- Supabase Management API integration with three-tier safety system\r\n- Transaction-based testing improvements\r\n- Enhanced documentation and examples\r\n\r\n## 🪄 Key Features\r\n- Safe\u002Funsafe mode switching for both database and API operations\r\n- Auto-injection of project refs in API requests\r\n- Blocked operations protection (e.g., project deletion)\r\n- Local API spec fallback for offline use\r\n\r\nNo breaking changes. All features are backward compatible.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.2.2...v0.3.0","2025-02-22T23:48:09",{"id":223,"version":224,"summary_zh":225,"released_at":226},117247,"v0.2.2","## 🔥 What's Changed\r\n* Added support for different Supabase regions\r\n  - Added configuration via `SUPABASE_REGION` environment variable\r\n  - Defaults to `us-east-1` for backward compatibility\r\n\r\n## 📚 Documentation\r\n* Updated README with region configuration instructions\r\n\r\n## New Contributors\r\n* @alexander-zuev made their first contribution in https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F4\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.2.1...v0.2.2","2025-02-20T12:43:27",{"id":228,"version":229,"summary_zh":230,"released_at":231},117248,"v0.2.1","# Release v0.2.1\r\n\r\nThis release brings significant improvements to package distribution and configuration handling.\r\n\r\n## 🔥 Major changes\r\n- Package distribution via PyPI\r\n  - Install with `pipx install supabase-mcp-server` (recommended)\r\n  - Or `uv pip install supabase-mcp-server`\r\n## ✨ New features\r\n- Multiple configuration options supported:\r\n  1. Environment variables\r\n  2. Global config (cross-platform Windows & Mac support)\r\n  3. Local `.env` file\r\n  4. Default values (local Supabase instance)\r\n## 📚 Documentation\r\n- Greatly expanded and streamlined setup and configuration instructions for both Cursor and Windsurf\r\n## 🔨 Internal\r\n- Improved logging for easier debugging (output to a file handler instead of stdout)\r\n- Covered basic functionality with tests\r\n\r\nAll configuration options have been tested before the release, however, if issues arise - please open an issue with as much details as possible.\r\n\r\n## New Contributors\r\n* @smithery-ai made their first contribution in https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fpull\u002F3\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcompare\u002Fv0.1.0...v0.2.1","2025-02-19T04:29:17",{"id":233,"version":234,"summary_zh":235,"released_at":236},117249,"v0.2.0-dev0","This is a pre-release version for testing the new package distribution and installation methods.\r\n\r\n## 🚀 Quick Start\r\n\r\nQuick try (no installation)\r\n```bash\r\nuv run supabase-mcp-server\r\n```\r\nOr install permanently\r\n```bash\r\npipx install supabase-mcp-server==0.2.0.dev0\r\n```\r\n\r\n## 🔄 Changes\r\n- Package distribution support with PyPI publishing\r\n- Installation via `pipx` and `uv`\r\n- Entry point scripts for direct execution\r\n- Improved SQL syntax validation\r\n- Configuration file support\r\n- Project restructure as proper Python package\r\n\r\n## 🔍 Feedback Needed\r\nPlease test and provide feedback on:\r\n1. Installation experience\r\n2. Running the tool (`uv run` vs `pipx install`)\r\n3. Documentation clarity\r\n\r\n## ⚠️ Note\r\nThis is a development preview for testing the new package distribution. Some features might change based on feedback.","2025-02-18T13:45:56",{"id":238,"version":239,"summary_zh":240,"released_at":241},117250,"v0.1.0","Initial release of Supabase MCP server that enables Cursor and Windsurf IDEs to interact directly with Supabase PostgreSQL databases.\r\n\r\nKey Features:\r\n- 💻 Works with both Windsurf and Cursor IDEs\r\n- ✅ Supports local & production Supabase projects (both Free and Paid tiers)\r\n- 🔨 Built-in database exploration tools\r\n- 🔐 Secure read-only database access\r\n- 🔍 SQL query validation\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Falexander-zuev\u002Fsupabase-mcp-server\u002Fcommits\u002Fv0.1.0\r\n","2025-02-16T04:47:48"]