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/
要对齐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(可选):启用请求日志记录,默认为truebasePath(可选):挂载此路径下的所有端点(例如“/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/healthPOST /my-func/mcp
为什么采用这种方法?
- 维护负担最低:不需要方法代理
- 完全灵活:开发人员直接使用mcp-lite
- 无版本冲突:适用于任何mcp lite更新
- Deno本地人:专为Supabase边缘功能而构建
许可证
麻省理工学院
作者
佩德罗·罗德里格斯
