Supabase数据库MCP服务器

一个用于将Supabase数据库与AI助手(如Claude)集成的模型上下文协议(MCP)服务器,专为Cursor IDE设计。

  • by Kshitijijari09
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kshitijijari09/supabase-mcp-server

使用说明

Supabase MCP服务器

用于将Supabase数据库与Claude等人工智能助手集成的模型上下文协议(MCP)服务器。专为与Cursor IDE一起使用而构建。

🚀 特性

  • 数据库查询:通过过滤和排序查询任何表
  • CRUD操作:创建、读取、更新和删除记录
  • 资源访问:作为MCP资源公开的表
  • 类型安全:工具的完整TypeScript风格模式
  • 错误处理:全面的错误处理和记录
  • 光标集成:针对Cursor IDE工作流程进行了优化

📋 先决条件

  • Python 3.8+
  • 辅助账户和项目
  • 光标IDE
  • MCP(模型上下文协议)基础知识

🛠️ Cursor IDE的设置说明

1. 再进行

在游标中打开终端(Terminal → New Terminal)并运行:

# Create virtual environment (recommended)
python -m venv venv

# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Install required packages
pip install -r requirements.txt

2. 配置环境变量

  1. 从以下位置复制您的Supabase凭据 Supabase仪表板
  2. 编辑 .env 文件中包含您的实际值:
SUPABASE_URL=https://your-project-id.supabase.co
SUPABASE_KEY=your-anon-or-service-key-here

3. 更新表配置

编辑 config.py 并更新 KNOWN_TABLES 列出您的实际表名:

KNOWN_TABLES: List[str] = [
    "your_table_1",
    "your_table_2", 
    "your_table_3",
    # Add all your table names here
]

4. 测试连接

在Cursor的终端中运行此命令以测试您的设置:

python -c "from config import get_supabase_client; print('✅ Connection successful!' if get_supabase_client() else '❌ Connection failed!')"

5. 运行MCP服务器

python main.py

您应该看到:

INFO:__main__:✅ Successfully connected to Supabase
INFO:__main__:🚀 MCP Server running...

🔧 可用工具

工具 说明 参数
query_table 带筛选器的查询表 table_name, columns, filter_column, filter_value, limit, order_by
insert_data 插入新记录 table_name, data
update_data 更新现有记录 table_name, filter_column, filter_value, update_data
delete_data 删除记录 table_name, filter_column, filter_value
count_rows 统计表行数 table_name
get_table_info 获取表格信息 无

📖 使用示例

查询表:

{
  "tool": "query_table",
  "arguments": {
    "table_name": "users",
    "columns": "id, email, created_at",
    "filter_column": "status",
    "filter_value": "active",
    "limit": 10,
    "order_by": "created_at",
    "ascending": false
  }
}

插入数据:

{
  "tool": "insert_data", 
  "arguments": {
    "table_name": "users",
    "data": {
      "email": "user@example.com",
      "name": "John Doe"
    }
  }
}

🔗 与Cursor IDE集成

在Cursor中使用Claude:

  1. 启动MCP服务器: python main.py
  2. 配置光标:将MCP服务器添加到游标配置中
  3. 与AI一起使用:AI现在可以直接查询您的数据库

光标特定提示:

  • 使用 Ctrl+Shift+P → “Python:选择解释器”以确保Cursor使用您的虚拟环境
  • 安装 Python扩展 为了获得更好的智能感知
  • 使用 Cursor的AI聊天 帮助调试数据库查询
  • 设置 调试 F5便于故障排除

🐛 故障排除

常见问题:

连接失败:

  • ✅ 检查你的 .env 文件具有正确的后缀URL和密钥
  • ✅ 确保您的Supabase项目处于活动状态
  • ✅ 验证您的密钥是否具有正确的权限

未找到表:

  • ✅ 更新 KNOWN_TABLES 在……里面 config.py
  • ✅ 检查表名是否准确(区分大小写)
  • ✅ 确保您的Supabase项目中存在表

导入错误:

  • ✅ 激活您的虚拟环境
  • ✅ 跑 pip install -r requirements.txt
  • ✅ 检查Python版本是否为3.8+

在游标中调试:

  1. 在代码中设置断点
  2. 按 F5 开始调试
  3. 使用 调试控制台 检查变量
  4. 检查 终端 用于错误日志

📁 项目结构

supabase-mcp-server/
├── main.py              # Main MCP server implementation
├── config.py            # Configuration and Supabase client
├── requirements.txt     # Python dependencies
├── .env                 # Environment variables (your secrets)
├── .gitignore          # Git ignore rules
└── README.md           # This file

🚦 后续步骤

  1. 添加更多表格 向 KNOWN_TABLES
  2. 实现表架构发现 用于动态表列表
  3. 添加身份验证 用于生产用途
  4. 创建自定义工具 针对您的特定用例
  5. 设置RLS策略 在安全Supabase

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

📝 许可证

MIT许可证-有关详细信息,请参阅许可证文件

🆘 支持


使用Cursor IDE编写代码快乐! 🎯