Snappy MCP 服务器与 Xano 集成
基于 Cloudflare Workers 构建的远程 MCP 服务器,集成 Xano 数据库,用于工具管理、会话跟踪和 OAuth。现已全面支持最新的 Streamable HTTP 传输协议 (2024-11-05)。
本地开发
您应该能够在浏览器中打开http://localhost:8787/
Related MCP server: Remote MCP Server on Cloudflare
连接到您的 MCP 服务器
使用 MCP 检查器(旧版)
要使用较旧的 SSE 传输探索新的 MCP API,您可以使用MCP 检查器。
使用
npx @modelcontextprotocol/inspector启动在检查器中,将传输类型切换为
SSE,并输入http://localhost:8787/sse作为要连接的 MCP 服务器的 URL,然后点击“连接”您将导航到(模拟)用户/密码登录屏幕。输入任意电子邮件地址并登录。
您应该被重定向回 MCP 检查器,现在您可以列出并调用任何定义的工具!
使用 Workers AI Playground(可流式传输的 HTTP)
要使用最新的 Streamable HTTP 传输协议进行测试:
当提示连接到 MCP 服务器时,请输入您的端点 URL:
https://remote-mcp-server.robertjboulos.workers.dev/mcp或进行本地测试:
http://localhost:8787/mcp出现提示时提供身份验证凭据:
auth_token :您的 Xano 身份验证令牌
user_id :您的 Xano 用户 ID
Playground 将使用新协议自动处理会话管理
将 Claude Desktop 连接到您的本地 MCP 服务器
旧版 SSE 传输
要使用较旧的 SSE 传输进行连接,请按照Anthropic 的快速入门进行操作,并在 Claude Desktop 中转到设置 > 开发人员 > 编辑配置以查找您的配置文件。
在文本编辑器中打开该文件并将其替换为以下配置:
这将运行本地代理并让 Claude 通过 HTTP 与您的 MCP 服务器通信。
可流式传输的 HTTP 传输(推荐)
要将更新、更高效的 Streamable HTTP 传输与 Claude Desktop 一起使用,请更新您的配置以使用/mcp端点:
用您的实际凭证替换YOUR_XANO_AUTH_TOKEN和YOUR_USER_ID 。
打开 Claude 后,会打开一个浏览器窗口并允许您登录。您会在右下角看到可用的工具。输入正确的提示后,Claude 会要求调用该工具。
Xano 集成
该 MCP 服务器使用 Xano 作为其后端:
工具管理:在 Xano 的
____mcp_tools表中定义工具,它们将自动在 MCP 服务器中注册会话跟踪:所有 MCP 会话均在
___mcp_sessions表中进行跟踪,并具有唯一的会话 IDOAuth 身份验证:OAuth 令牌和状态存储在 Xano 的
___oauth_tokens和___oauth_states表中日志记录:所有 MCP 请求都记录在
___mcp_logs表中
可流式传输的 HTTP 实现
该服务器实现了最新的模型上下文协议可流式 HTTP 传输(2024-11-05),具有以下特点:
身份验证方法
服务器支持多种身份验证机制以实现最大兼容性:
URL 参数:
?auth_token=xxx&user_id=yyy(传统方法)授权标头:授权:带有
x-user-id标头的Authorization: Bearer xxx(现代方法)请求主体:身份验证参数可以包含在初始化有效载荷中
会话管理
服务器根据最新规范处理会话ID:
会话创建:服务器为新连接生成唯一的会话ID
会话跟踪:客户端存储此 ID,并将其作为
?sessionId=xxx包含在未来的请求中状态持久性:每个会话在 Xano 中维护自己的状态,该状态在请求之间持久存在
协议合规性
实施包括对以下方面的适当支持:
统一消息端点:支持
/mcp/message端点模式协议标头:所有响应都包含适当的标头,例如
MCP-Available-TransportsSSE Streaming :增强了对流响应的 SSE 支持
响应格式:标准 JSON-RPC 2.0 格式,带有协议特定扩展
设置 Xano
使用所需的表创建 Xano 项目(参见数据库模式)
创建 API 端点:
/api/tools- GET - 列出所有工具/api/tools/execute/{tool_name}- POST - 执行特定工具/api/sessions- POST - 创建新会话/api/sessions/update-activity- PUT - 更新会话活动/api/oauth/tokens- POST - 存储 OAuth 令牌/api/oauth/tokens/{user_id}/{provider}- GET - 获取 OAuth 令牌/api/oauth/states- POST - 存储 OAuth 状态/api/oauth/states/{state}- GET - 验证 OAuth 状态/api/logs- POST - 记录 MCP 请求
部署到 Cloudflare
npx wrangler kv namespace create OAUTH_KV按照指南将 kv 命名空间 ID 添加到
wrangler.jsonc将您的 Xano API 密钥添加到
wrangler.jsonc中的XANO_API_KEY变量npm run deploy
从远程 MCP 客户端调用新部署的远程 MCP 服务器
就像上面在“本地开发”中所做的那样,运行 MCP 检查器:
npx @modelcontextprotocol/inspector@latest
然后在检查器中输入您的 Worker 的workers.dev URL(例如: worker-name.account-name.workers.dev/sse )作为要连接的 MCP 服务器的 URL,然后点击“连接”。
您现在已从远程 MCP 客户端连接到您的 MCP 服务器。
将 Claude Desktop 连接到远程 MCP 服务器
更新 Claude 配置文件以指向您的workers.dev URL(例如: worker-name.account-name.workers.dev/sse )并重新启动 Claude
调试
如果出现任何问题,重新启动 Claude 或尝试使用以下命令在命令行上直接连接到 MCP 服务器会有所帮助。
在极少数情况下,清除添加到~/.mcp-auth的文件可能会有所帮助