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

MCP Edge Functions Examples

MCP Server

使用Supabase边缘函数实现Model Context Protocol (MCP)服务器的综合示例集合,展示多种MCP模式和框架。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
边缘计算服务器实现TypeScript

安装说明

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

作者 / 组织

Rodriguespn

提供方

Rodriguespn

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

MCP边缘功能示例

使用Supabase边缘函数的模型上下文协议(MCP)服务器实现的全面集合。这些示例演示了在Supabase上构建MCP服务器的各种MCP模式和框架。

概述

此存储库包含作为Supabase边缘功能部署的MCP服务器的实际示例。每个功能都展示了不同的MCP框架和实现模式,从基本的Hono服务器到具有身份验证的全功能MCP实现。

例子

1.Hello World(hello-world)

  • 目的:基础Supabase边缘函数模板
  • 特性:使用JSON的简单HTTP响应
  • 框架:香草Deno
  • 用例:任何边缘函数的起点

你好,Hono(hello-hono)

  • 目的:演示Hono框架集成
  • 特性:带路由的轻量级web框架
  • 框架: 荣誉
  • 用例:在边缘函数上构建REST API

你好,Hono MCP(hello-hono-mcp)

  • 目的:使用Hono和官方MCP SDK的MCP服务器
  • 特性:使用Streamable HTTP传输实现添加工具
  • 框架: 荣誉 + @模型上下文协议/sdk
  • 用例:支持HTTP流媒体的完整MCP服务器

4.你好MCP处理程序(hello-mcp-handler)

  • 目的:使用MCP处理程序简化MCP实现
  • 特性:带模式验证的骰子滚动工具
  • 框架: mcp处理器
  • 用例:使用最少的样板快速设置MCP服务器

5.你好,MCP Lite(hello-mcp-lite)

  • 目的:使用MCP-lite的轻量级MCP服务器
  • 特性:多种工具(计算器、问候语生成器)
  • 框架: mcp-lite
  • 用例:具有Zod验证的简单MCP服务器

6.服务器(server)

  • 目的:具有身份验证和数据库的全功能MCP服务器
  • 特性:

- 通过Supabase进行JWT身份验证 - 从数据库动态加载工具 - 使用OpenAI的人工智能模拟响应 - 用户特定的服务器配置

  • 框架:mcp处理程序+Supabase+OpenAI
  • 用例:生产就绪的经过身份验证的MCP服务器

7.验证JWT(verify-jwt)

  • 目的:使用Supabase的身份验证示例
  • 特性:JWT验证、用户数据检索、数据库查询
  • 框架:Supabase客户端
  • 用例:通过身份验证保护边缘功能

8.你好,X402 MCP(hello-x402-mcp)

  • 目的:MCP服务器,用于支付工具的区块链支付协议
  • 特性:

- x402支付协议集成 - 自动402付款要求处理 - EIP-3009支付授权 - 美元兑加元对Base Sepolia的小额支付 - 钱包管理和余额检查

  • 框架: x402 +Hono+@modelcontextprotocol/sdk
  • 用例:通过区块链支付、支付API访问使MCP工具货币化

MCP框架比较

框架复杂性功能最适合
Vanilla Deno基本HTTP简单功能
Hono路由、中间件REST API
mcp-lite中等工具、资源、提示轻量级mcp服务器
mcp处理程序中等简化mcp设置快速原型制作
@modelcontextprotocol/sdk完整的MCP规范,流式传输生产MCP服务器
x402+MCP付费工具,区块链支付货币化MCP服务

入门指南

先决条件

  • Supabase命令行界面 安装
  • Supabase项目(本地或远程)
  • Deno运行时(附带Supabase CLI)
  • Node.js 18+(用于包管理)

地方发展

  1. 克隆此存储库:
   cd mcp-edge-functions-examples
  1. 在本地启动Supabase:
   supabase start
  1. 在本地执行特定功能:
   # Basic function
   supabase functions serve hello-world

   # MCP server with Hono
   supabase functions serve hello-hono-mcp

   # Full authenticated server
   supabase functions serve server
  1. 测试功能:
   # Basic hello-world
   curl -i --location --request POST 'http://localhost:54321/functions/v1/hello-world' \
     --header 'Authorization: Bearer YOUR_ANON_KEY' \
     --header 'Content-Type: application/json'

   # Hono-based MCP server (note the /mcp endpoint)
   curl -X POST 'http://localhost:54321/functions/v1/hello-hono-mcp/mcp' \
     --header 'Content-Type: application/json' \
     --data '{"method":"tools/list"}'

部署

  1. 链接您的Supabase项目:
   supabase link --project-ref your-project-ref
  1. 部署功能:
   supabase functions deploy hello-world
  1. 部署所有功能:
   supabase functions deploy

测试示例

1.你好,Hono MCP-添加工具

# List available tools
curl -X POST 'http://localhost:54321/functions/v1/hello-hono-mcp/mcp' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# Call the add tool
curl -X POST 'http://localhost:54321/functions/v1/hello-hono-mcp/mcp' \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc":"2.0",
    "id":2,
    "method":"tools/call",
    "params":{
      "name":"add",
      "arguments":{"a":5,"b":3}
    }
  }'

2.你好MCP处理器-骰子卷

# Roll a 6-sided die
curl -X POST 'http://localhost:54321/functions/v1/hello-mcp-handler/mcp' \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"tools/call",
    "params":{
      "name":"roll_dice",
      "arguments":{"sides":6}
    }
  }'

3.你好MCP Lite-多种工具

# Calculator tool
curl -X POST 'http://localhost:54321/functions/v1/hello-mcp-lite/mcp' \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"tools/call",
    "params":{
      "name":"add",
      "arguments":{"a":10,"b":20}
    }
  }'

# Greeting tool
curl -X POST 'http://localhost:54321/functions/v1/hello-mcp-lite/mcp' \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc":"2.0",
    "id":2,
    "method":"tools/call",
    "params":{
      "name":"greet",
      "arguments":{"name":"Alice","language":"spanish"}
    }
  }'

4.服务器-经过身份验证的动态工具

此示例需要身份验证和数据库设置:

# First, get your JWT token from Supabase
TOKEN="your-jwt-token-here"

# Call an authenticated MCP server
curl -X POST 'http://localhost:54321/functions/v1/server/YOUR_SERVER_ID/mcp' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

功能结构

每个边函数都遵循以下结构:

supabase/functions//
├── index.ts          # Main function code
├── deno.json         # Deno configuration & dependencies
├── deno.lock         # Lock file for dependencies
└── .npmrc            # (Optional) npm configuration

关键概念

MCP协议基础

所有MCP服务器都使用基于HTTP的JSON-RPC 2.0:

  • 工具:执行操作(计算、数据获取等)的函数
  • 资源:客户端可以读取的数据源
  • 提示词:可以用参数填充的模板消息
  • 采样:LLM文本生成功能

HTTP端点

大多数MCP函数都公开了 /mcp 端点:

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

请求格式

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tool_name",
    "arguments": {
      "param1": "value1"
    }
  }
}

响应格式

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Result content"
      }
    ]
  }
}

环境变量

某些函数需要环境变量:

# For authenticated functions (server, verify-jwt)
SUPABASE_URL=your-supabase-url
SUPABASE_ANON_KEY=your-anon-key

# For AI-powered functions (server)
OPENAI_API_KEY=your-openai-key

在Supabase项目设置中设置这些,或 .env 本地开发文件。

依赖项

常见依赖关系

  • 荣誉:快速、轻量级的web框架
  • 黄道:TypeScript第一模式验证
  • @suabase/supabase-js:Supabase客户端库

MCP框架依赖关系

  • @模型上下文协议/sdk:官方MCP SDK(你好,hono-MCP)
  • mcp处理器:简化的MCP包装器(hello MCP处理程序、服务器)
  • mcp-lite:轻量级MCP实现(你好MCP-lite)
  • 电子邮件@hono/mcp:MCP的Hono集成(你好,Hono-MCP)

安装

在本地提供功能时,会自动安装依赖关系。检查每个功能 deno.json 对于特定的依赖关系。

高级示例

服务器功能-生产模式

server 函数演示了生产就绪模式:

  1. 认证:使用Supabase Auth进行JWT验证
  2. 数据库集成:从PostgreSQL动态加载工具
  3. 人工智能集成:OpenAI用于智能响应
  4. 多租户技术:用户特定的服务器配置

数据库模式 (服务器功能所需):

-- Servers table
CREATE TABLE servers (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id UUID REFERENCES auth.users(id),
  name TEXT NOT NULL,
  created_at TIMESTAMP DEFAULT NOW()
);

-- Tools table
CREATE TABLE tools (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  server_id UUID REFERENCES servers(id),
  name TEXT NOT NULL,
  description TEXT,
  prompt TEXT,
  created_at TIMESTAMP DEFAULT NOW()
);

-- Parameters table
CREATE TABLE parameters (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  tool_id UUID REFERENCES tools(id),
  name TEXT NOT NULL,
  type TEXT NOT NULL,
  description TEXT,
  created_at TIMESTAMP DEFAULT NOW()
);

故障排除

常见问题

  1. “找不到模块”错误

- 检查 deno.json 正确的导入路径 - 确保使用JSR或npm URL指定依赖关系

  1. “未经授权”的错误

- 验证是否设置了Supabase URL和anon键 - 检查授权标头格式: Bearer

  1. CORS错误

- 大多数函数自动处理CORS - 检查您的客户端是否发送了正确的标头

  1. 功能超时

- 边缘功能有2分钟的超时时间 - 优化长时间运行的操作 - 考虑将后台作业用于繁重的任务

调试模式

在函数中启用详细日志记录:

console.log('[DEBUG]', 'Request:', {
  method: req.method,
  url: req.url,
  headers: Object.fromEntries(req.headers),
});

查看日志:

supabase functions logs  --follow

最佳实践

  1. 类型安全:对所有输入/输出使用TypeScript和Zod
  2. 错误处理:返回正确的HTTP状态代码和错误消息
  3. 认证:使用JWT验证保护敏感端点
  4. 验证:在处理之前验证所有用户输入
  5. 文档:记录所有工具、参数和预期响应
  6. 测试:在部署到生产环境之前进行本地测试
  7. 监控:设置日志记录和错误跟踪
  8. 安全:切勿在代码中暴露敏感凭据

资源

贡献

欢迎投稿!请随时通过以下方式提交拉取请求:

  • 新的MCP示例实现
  • 对现有示例的改进
  • 错误修复
  • 文档增强
  • 其他框架集成

许可证

MIT许可证-您可以在自己的项目中自由使用这些示例。

致谢

这些示例演示了在Supabase Edge Functions上构建MCP服务器的各种方法,展示了不同用例的不同框架和模式。

______________________________________________________________________

备注:这些示例从简单的演示到生产就绪模式。为您的用例选择适当的复杂性级别。这 server 函数演示企业级模式,而 hello-worldhello-hono 对于初学者来说,这是一个很好的起点。

目录标签

目录标签

边缘计算服务器实现TypeScript本地部署MCP协议Supabase函数计算

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP