README
🚀 风帆冲浪(Windsurf)Supabase MCP 服务器
为与 Windsurf 编辑器无缝集成而优化的 Supabase MCP 服务器,基于模型上下文协议标准构建,具备多项关键改进,提升使用体验。
🚀 快速开始
此仓库包含一个经过优化的 Windsurf 版本的 Supabase MCP 服务器,特别增强以实现与 Windsurf Editor 的顺畅协作。它基于 模型上下文协议 (MCP) 标准构建,并添加了关键改进,以提升错误处理、响应格式化和 SQL 查询处理的效果。
✨ 主要特性
针对 Windsurf 的主要修改
1. 增强的错误处理
- 挑战:
- 缺乏结构化的错误响应导致难以调试。
- 流解析错误难以排查。
- 错误信息对 LLM 不够友好。
- 解决方案:
- 引入包含详细上下文的结构化错误响应。
- 改进错误消息,使其更易于 LLM 理解。
- 添加 SQL 查询结构验证。
- 提升流式错误检测和恢复能力。
2. 响应格式化改进
- 原始限制:
- 不同响应类型之间 JSON 结构不一致。
- 缺乏用于 UI 组件生成的元数据。
- 类型安全不足。
- 改进措施:
- 制定统一的 JSON 响应格式标准。
- 添加用于 UI 组件生成的元数据支持。
- 实施严格的 TypeScript 类型系统。
- 支持流式传输复杂的数据结构。
3. SQL 转 REST 增强
- 支持更复杂的 SQL 操作。
- 优化查询验证流程。
- 改善对 JOIN 和子查询的处理。
- 提升无效 SQL 的错误消息质量。
4. 认证与头信息管理
- 实现灵活的 API Key 管理策略。
- 支持使用 bearer token 进行身份验证。
- 优化 PostgREST 请求的头信息管理。
- 加强安全验证机制。
与 Windsurf 的集成
此 MCP 服务器专为与 Windsurf Editor 配合设计,提供:
- 自然语言驱动的数据库交互。
- 实时查询验证和自动修正。
- 更适合调试的增强错误消息。
- 优化的响应格式以支持 UI 组件生成。
💻 使用示例
基础用法
// 示例:增强响应处理
const response = await postgrestRequest({
method: 'GET',
path: '/todos?is_completed=eq.false',
});
// 响应包含用于 UI 组件的元数据
const { data, metadata } = response;
高级用法
// 此服务器提供两个主要工具:
// 1. `postgrestRequest`:增强版 PostgREST API 访问
const result = await postgrestRequest({
method: 'GET',
path: '/users',
});
// 2. `sqlToRest`:改进的 SQL 转 REST 功能
const query = 'SELECT * FROM users WHERE age > 18';
const { method, path } = await sqlToRest({ sql: query });
📦 安装指南
- 克隆此仓库:
git clone https://github.com/hertzfelt/windsurf-supabase-mcp.git
- 安装依赖项:
npm install
- 配置您的 Supabase 连接:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
🤝 贡献指南
欢迎贡献!请查阅我们的 CONTRIBUTING.md 文件,了解代码规范和提交 Pull Request 的流程。
📄 许可证
此项目采用 MIT 许可证。更多详情,请参阅 LICENSE 文件。
Scan to join WeChat group