Supabase MCP服务器部署工具

用于在Supabase Edge Functions上部署MCP(Model Context Protocol)服务器的辅助库,提供最小化配置、直接访问mcp-lite、内置CORS支持和健康检查端点等功能。

  • by Rodriguespn
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Rodriguespn/supabase-mcp-handler

使用说明

suabase mcp处理程序

用于部署MCP(模型上下文协议)服务器以支持Deno上运行的边缘功能的辅助库。

特性

  • 🚀 Supabase Edge Functions上MCP服务器的最小设置
  • 🔧 直接访问mcp-lite-无抽象层
  • 🌐 内置CORS支持
  • 📊 健康检查端点
  • 🪵 可选日志中间件
  • 🧭 Supabase布线的基础路径安装

安装(JSR)

deno add @rodriguespn/supabase-mcp-handler

或直接导入:

import { createEdgeMCPServer } from "jsr:@rodriguespn/supabase-mcp-handler@0.0.1";

用法

基本(根安装)

import { createEdgeMCPServer } from "jsr:@rodriguespn/supabase-mcp-handler";

const { server, serve } = createEdgeMCPServer({
  name: "my-mcp-server",
  corsOrigins: ["https://myapp.com"],
});

// Use mcp-lite directly
server.tool("get_weather", {
  description: "Get weather information",
  inputSchema: { type: "object", properties: { city: { type: "string" } } },
  handler: ({ city }) => ({ content: [{ type: "text", text: `Weather in ${city}` }] }),
});

Deno.serve(serve());

Supabase Edge函数(安装在函数名称下)

在本地运行时,Supabase在以下位置公开函数:

http://127.0.0.1:54321/functions/v1/<function-name>

要对齐Hono路由,请使用以下命令挂载函数名称下的所有端点 basePath:

import { createEdgeMCPServer } from "jsr:@rodriguespn/supabase-mcp-handler";

const { server, serve } = createEdgeMCPServer({
  name: "my-mcp-server",
  basePath: "/my-mcp-server", // equivalent to: app.route('/my-mcp-server', mcpApp)
});

Deno.serve(serve());

// Endpoints will be available at:
// GET  /my-mcp-server/health
// POST /my-mcp-server/mcp

笔记:

  • basePath 已标准化(添加前导斜线,删除尾随斜线)
  • 如果 basePath 省略,端点挂载在根: /health, /mcp
  • 对于本地Supabase CLI,设置 basePath 到您的函数名称

高级:带上自己的父路由器

createEdgeMCPServer 将内部Hono应用程序返回为 app。如果您需要自定义父路由器,可以自己安装:

import { Hono } from "hono";
import { createEdgeMCPServer } from "jsr:@rodriguespn/supabase-mcp-handler";

const { app, server } = createEdgeMCPServer({ name: "my-mcp-server" });
const root = new Hono();
root.route("/my-mcp-server", app);

Deno.serve(root.fetch);

API

createEdgeMCPServer(config)

创建已配置的MCP服务器,准备部署。

配置选项

  • name (必填):您的MCP服务器的名称
  • version (可选):服务器版本,默认为“1.0.0”
  • corsOrigins (可选):CORS来源(字符串或数组),默认为“*”
  • enableLogging (可选):启用请求日志记录,默认为true
  • basePath (可选):挂载此路径下的所有端点(例如“/my-func”)
  • schemaAdapter (可选):提供标准模式适配器(Zod等)

退货

  • server:mcp-lite McpServer实例-添加工具、资源、提示
  • app:内部Hono应用程序-在服务前自定义路由/中间件
  • serve():准备好使用的处理程序 Deno.serve();返回一个挂载在下面的处理程序 basePath 如果提供

端点

  • GET /health -健康检查端点返回 { status: "ok" }
  • POST /mcp -MCP协议端点

在基础路径下 "/my-func",这些成为:

  • GET /my-func/health
  • POST /my-func/mcp

为什么采用这种方法?

  • 维护负担最低:不需要方法代理
  • 完全灵活:开发人员直接使用mcp-lite
  • 无版本冲突:适用于任何mcp lite更新
  • Deno本地人:专为Supabase边缘功能而构建

许可证

麻省理工学院

作者

佩德罗·罗德里格斯