Token导航 LogoToken导航TokenDH.com
MCP Edge Function logo
数据服务stdio官方级别未说明来源级核验

MCP Edge Function

MCP Server

@modelcontextprotocol/inspector

Supabase MCP SQL Tool 是一个允许用户通过SQL查询对Supabase数据库执行CRUD操作并以格式化HTML表格显示结果的工具。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
数据库工具数据可视化TypeScriptCRUD操作SQL查询

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Rodriguespn

提供方

Rodriguespn

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector

详细介绍

Supabase MCP SQL 工具

这个MCP服务器提供了一个 run_crud_sql 一个工具,允许您在Supabase数据库上执行SQL查询,并以格式化的HTML表格形式显示结果。

特点/功能

  • 🔒(锁形符号,通常表示安全、保密或锁定状态) RLS 支持查询通过Supabase的REST API遵守行级安全策略
  • 📊 表格/数据图表 表格格式设置结果以美观、样式化的HTML表格形式展示
  • CRUD 操作支持SELECT、INSERT、UPDATE和DELETE查询
  • 🎨(颜料/美术符号) 视觉设计渐变标题、悬停效果和响应式布局
  • 🚀 表情符号“🚀”通常表示火箭、快速移动或速度,可以翻译为“🚀(火箭/快速移动)”。不过,具体翻译可能因语境而异,有时也可能直接保留为表情符号。 兼容Edge Runtime构建时未使用外部MCP库,而是采用了原生JSON-RPC

设置

1. 应用数据库迁移

首先,创建 exec_sql 在您的 Supabase 数据库中的函数:

# If using Supabase CLI locally
supabase db reset

# Or apply the migration manually
supabase migration up

或者,在您的 Supabase SQL 编辑器中运行以下 SQL 语句:

CREATE OR REPLACE FUNCTION exec_sql(query text)
RETURNS json
LANGUAGE plpgsql
SECURITY DEFINER
AS $$
DECLARE
  result json;
BEGIN
  EXECUTE format('SELECT json_agg(t) FROM (%s) t', query) INTO result;
  RETURN COALESCE(result, '[]'::json);
EXCEPTION
  WHEN OTHERS THEN
    RETURN json_build_object(
      'error', SQLERRM,
      'detail', SQLSTATE
    );
END;
$$;

GRANT EXECUTE ON FUNCTION exec_sql(text) TO authenticated;
GRANT EXECUTE ON FUNCTION exec_sql(text) TO anon;

2. 设置环境变量

确保您的环境中已配置Supabase凭据:

export SUPABASE_URL="https://your-project.supabase.co"
export SUPABASE_ANON_KEY="your-anon-key"

3. 部署该函数

# Deploy to Supabase
supabase functions deploy hello-world

# Or run locally
supabase functions serve --no-verify-jwt

用法

连接到MCP服务器

MCP 端点的访问地址为:

http://127.0.0.1:54321/functions/v1/hello-world/mcp

对于生产:

https://your-project.supabase.co/functions/v1/hello-world/mcp

使用该工具

这个(或“该”) run_crud_sql 该工具接受一个参数:

  • query (字符串):要执行的SQL查询

示例

SELECT 查询:

{
  "name": "run_crud_sql",
  "arguments": {
    "query": "SELECT * FROM users LIMIT 10"
  }
}

INSERT 查询:

{
  "name": "run_crud_sql",
  "arguments": {
    "query": "INSERT INTO posts (title, content) VALUES ('My Post', 'Hello World') RETURNING *"
  }
}

UPDATE 查询:

{
  "name": "run_crud_sql",
  "arguments": {
    "query": "UPDATE users SET last_login = NOW() WHERE id = '123' RETURNING *"
  }
}

DELETE 查询:

{
  "name": "run_crud_sql",
  "arguments": {
    "query": "DELETE FROM temp_data WHERE created_at < NOW() - INTERVAL '7 days' RETURNING *"
  }
}

响应格式

该工具返回:

  • 内容一个包含格式化HTML表格的MCP-UI资源
  • 结构化内容带有JSON的 rowCount 并且 data 字段(或领域)

示例HTML表格输出:

  • 渐变紫色标题栏
  • 交替行颜色
  • 悬停效果
  • 响应式设计
  • 行数显示

安全考虑因素

⚠️ 重要的exec_sql 函数是用(某种方式)创建的 SECURITY DEFINER这意味着它以函数所有者的权限运行。请考虑以下安全最佳实践:

  1. 行级安全性始终在您的表上启用 RLS(行级安全性)
  2. 输入验证谨慎执行查询
  3. 有限权限仅授予函数必要的权限
  4. 审计日志记录考虑为执行的查询添加日志记录

使用MCP Inspector进行测试

# Start the function locally
supabase functions serve --no-verify-jwt

# In another terminal, run the MCP inspector
npx @modelcontextprotocol/inspector

# Enter the URL: http://127.0.0.1:54321/functions/v1/hello-world/mcp

故障排除

“exec_sql 函数不存在”

  • 确保你已经应用了迁移
  • 检查该函数是否存在: SELECT * FROM pg_proc WHERE proname = 'exec_sql'

“未找到 SUPABASE_URL”

  • 确保环境变量设置正确
  • 对于本地开发,请使用 http://127.0.0.1:54321

RLS阻断查询

  • 检查您的RLS政策
  • 使用 SUPABASE_SERVICE_ROLE_KEY 用于管理员访问(不建议在生产环境中使用)
  • 确保已验证用户拥有适当的权限

目录标签

目录标签

数据库工具数据可视化TypeScriptCRUD操作SQL查询本地部署Supabase集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP