使用说明
Snappy MCP服务器与Xano集成
基于Cloudflare Workers构建的远程MCP服务器,集成了Xano数据库,用于工具管理、会话跟踪和OAuth。现在完全支持最新的Streamable HTTP传输协议(2024-11-05)。
在当地发展
# clone the repository
git clone https://github.com/roboulos/remote-mcp-server.git
# install dependencies
cd remote-mcp-server
npm install
# Configure Xano API Key
# Add your Xano API key to wrangler.jsonc in the XANO_API_KEY variable
# run locally
npm run dev
你应该能够打开 http://localhost:8787/ 在您的浏览器中
连接到您的MCP服务器
使用MCP检查器(传统)
要使用旧的SSE传输探索新的MCP API,您可以使用 MCP检查员.
- 从以下内容开始
npx @modelcontextprotocol/inspector - 在检查员内部,将“传输类型”切换为
SSE并进入http://localhost:8787/sse作为要连接的MCP服务器的URL,然后单击“连接” - 您将导航到(模拟)用户/密码登录屏幕。输入任何电子邮件并通过登录。
- 您应该被重定向回MCP检查器,现在您可以列出并调用任何已定义的工具!
使用Workers AI游乐场(流式HTTP)
要使用最新的Streamable HTTP传输协议进行测试:
- 访问 工人AI游乐场
- 当系统提示您连接到MCP服务器时,请输入您的端点URL:或用于本地测试:
https://remote-mcp-server.robertjboulos.workers.dev/mcphttp://localhost:8787/mcp - 在提示时提供身份验证凭据:
- auth_token:您的Xano身份验证令牌
- user_id:您的Xano用户ID
- 游乐场将使用新协议自动处理会话管理
将Claude Desktop连接到本地MCP服务器
传统苏格兰和南方能源公司运输
要使用旧的SSE传输进行连接,请按照以下步骤操作 Anthropic的快速入门 在Claude Desktop中,转到“设置”>“开发人员”>“编辑配置”以查找您的配置文件。
在文本编辑器中打开该文件,并将其替换为以下配置:
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8787/sse"
]
}
}
}
这将运行一个本地代理,并让Claude通过HTTP与您的MCP服务器通信。
流式HTTP传输(推荐)
要在Claude Desktop中使用更新、更高效的Streamable HTTP传输,请更新您的配置以使用 /mcp 改为端点:
{
"mcpServers": {
"xano": {
"remoteUrl": "http://localhost:8787/mcp",
"auth": {
"type": "bearer",
"token": "YOUR_XANO_AUTH_TOKEN"
},
"headers": {
"x-user-id": "YOUR_USER_ID"
}
}
}
}
替换 YOUR_XANO_AUTH_TOKEN 和 YOUR_USER_ID 凭你的真实证件。
当您打开Claude时,浏览器窗口应该会打开并允许您登录。您应该在右下角看到可用的工具。如果提示正确,克劳德应该要求调用该工具。
Xano集成
此MCP服务器使用Xano作为其后端,用于:
- 工具管理:在Xano中定义工具
____mcp_tools表,它们将自动注册到MCP服务器中 - 会话跟踪:所有MCP会话都在
___mcp_sessions具有唯一会话ID的表 - OAuth身份验证:OAuth令牌和状态存储在Xano的
___oauth_tokens和___oauth_states表格 - 日志记录:所有MCP请求都记录在
___mcp_logs桌子
流式HTTP实现
此服务器实现了最新的模型上下文协议流式HTTP传输(2024-11-05),具有以下功能:
身份验证方法
服务器支持多种身份验证机制,以实现最大兼容性:
- URL参数:
?auth_token=xxx&user_id=yyy(传统方法) - 认证头:
Authorization: Bearer xxx随着x-user-id标题(现代方法) - 请求正文:Auth参数可以包含在初始化有效负载中
会话管理
服务器根据最新规范处理会话ID:
- 会话创建:服务器为新连接生成唯一的会话ID
- 会话跟踪:客户端存储此ID并将其作为以下内容包含在未来的请求中
?sessionId=xxx - 状态持久性:每个会话在Xano中都保持自己的状态,该状态在请求之间持续存在
协议遵从
实施包括对以下方面的适当支持:
- 统一消息端点:支持
/mcp/message端点模式 - 协议头:所有回复都包含适当的标题,如
MCP-Available-Transports - SSE流媒体:增强了对流式响应的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密钥添加到
XANO_API_KEY变量inwrangler.jsonc npm run deploy
从远程MCP客户端调用新部署的远程MCP服务器
就像你在上面的“本地开发”中所做的那样,运行MCP检查器:
npx @modelcontextprotocol/inspector@latest
然后输入 workers.dev URL(例如: worker-name.account-name.workers.dev/sse)将检查器中的Worker设置为要连接的MCP服务器的URL,然后单击“连接”。
现在,您已从远程MCP客户端连接到MCP服务器。
将Claude Desktop连接到远程MCP服务器
更新Claude配置文件以指向您的 workers.dev URL(例如: worker-name.account-name.workers.dev/sse)并重新启动克劳德
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"https://worker-name.account-name.workers.dev/sse"
]
}
}
}
调试
如果出现任何问题,重启Claude或尝试直接连接到您的 MCP服务器在命令行上使用以下命令。
npx mcp-remote http://localhost:8787/sse
在某些罕见的情况下,清除添加到的文件可能会有所帮助 ~/.mcp-auth
rm -rf ~/.mcp-auth
