Windsurf Supabase MCP Server
一个模型上下文协议服务器,针对将 Supabase 与 Windsurf 编辑器集成进行了优化,通过自然语言提供数据库交互,并具有增强的错误处理和响应格式。
README
Windsurf Supabase MCP 服务器
一个为 Windsurf 优化的 Supabase 集成 MCP 服务器
此仓库包含一个为 Windsurf 优化的 Supabase MCP 服务器版本,专门增强了与 Windsurf 编辑器的无缝协作。它构建于 模型上下文协议 (MCP) 标准之上,并添加了关键改进,以实现更好的错误处理、响应格式化和 SQL 查询处理。
为 Windsurf 做的关键修改
1. 增强的错误处理
我们在原始错误处理系统中面临几个挑战:
- 格式错误的 SQL 查询会导致静默失败
- 流解析错误难以调试
- 错误消息对 LLM 不友好
我们的解决方案:
- 添加了带有详细上下文的结构化错误响应
- 改进了错误消息,以便更好地被 LLM 理解
- 添加了 SQL 查询结构的验证
- 增强了流错误检测和恢复
2. 响应格式化
原始响应格式存在局限性:
- 不同响应类型之间的 JSON 结构不一致
- UI 组件缺少元数据
- 类型安全有限
我们的改进:
- 标准化了 JSON 响应格式
- 添加了用于 UI 组件生成的元数据
- 实现了严格的 TypeScript 类型
- 添加了对流式传输复杂数据结构的支持
3. SQL 到 REST 转换
我们增强了 SQL 到 REST 的转换:
- 添加了对更复杂 SQL 操作的支持
- 改进了查询验证
- 更好地处理 JOIN 和子查询
- 增强了无效 SQL 的错误消息
4. 身份验证 & 标头
身份验证处理方面的关键改进:
- 灵活的 API 密钥管理
- 支持 Bearer Token 身份验证
- 更好地管理 PostgREST 请求的标头
- 增强了安全验证
与 Windsurf 集成
此 MCP 服务器专门设计用于与 Windsurf 编辑器配合使用,提供:
- 通过自然语言实现无缝的数据库交互
- 实时查询验证和更正
- 增强的错误消息,以便更好地进行调试
- 优化的响应格式,用于 UI 组件
在 Windsurf 中的使用示例
// 增强的响应处理示例
const response = await postgrestRequest({
method: 'GET',
path: '/todos?is_completed=eq.false',
});
// 响应包括 UI 组件的元数据
const { data, metadata } = response;
安装
- 克隆此仓库:
git clone https://github.com/hertzfelt/windsurf-supabase-mcp.git
- 安装依赖项:
npm install
- 配置您的 Supabase 连接:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
与 Windsurf 一起使用
此服务器提供两个主要工具:
postgrestRequest
: 增强的 PostgREST API 访问
const result = await postgrestRequest({
method: 'GET',
path: '/users',
});
sqlToRest
: 改进的 SQL 到 REST 转换
const query = 'SELECT * FROM users WHERE age > 18';
const { method, path } = await sqlToRest({ sql: query });
贡献
欢迎贡献!请阅读我们的 贡献指南,了解我们的行为准则以及提交 Pull Request 的流程。
许可证
此项目根据 MIT 许可证获得许可。 有关详细信息,请参见 LICENSE 文件。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。
Playwright MCP Server
提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。