远程MCP服务器

在Cloudflare Workers上部署远程MCP服务器,支持OAuth登录和MCP检查器连接。

  • by huanshenyi
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 huanshenyi/mcp-server-bearer-auth

使用说明

Cloudflare上的远程MCP服务器

让我们在Cloudflare Workers上启动并运行一个远程MCP服务器,并完成OAuth登录!

在当地发展

# clone the repository
git clone git@github.com:cloudflare/ai.git

# install dependencies
cd ai
npm install

# run locally
npx nx dev remote-mcp-server-bearer-auth

你应该能够打开 http://localhost:8787/ 在您的浏览器中

将MCP检查器连接到您的服务器

要探索新的MCP api,您可以使用 MCP检查员.

  • 从以下内容开始 npx @modelcontextprotocol/inspector
  • 在检查员内部,将“传输类型”切换为 SSE 并进入 http://localhost:8787/sse 作为要连接的MCP服务器的URL。
  • 添加承载令牌并单击“连接”
  • 点击“列出工具”
  • 运行“getToken”工具,该工具应返回您在检查器中设置的Authorization标头

将Claude Desktop连接到本地MCP服务器

    "remote-example": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8787/sse",
        "--header",
        "Authorization: Bearer {token}"
      ]
    }

部署到Cloudflare

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服务器

TODO:我们需要支持任意标头 mcp-remote 代理

调试

如果出现任何问题,重启Claude或尝试直接连接到您的 MCP服务器在命令行上使用以下命令。

npx mcp-remote http://localhost:8787/sse

在某些罕见的情况下,清除添加到的文件可能会有所帮助 ~/.mcp-auth

rm -rf ~/.mcp-auth