使用说明
Cloudflare上的远程MCP服务器
让我们在Cloudflare Workers上启动并运行一个远程MCP服务器,并完成OAuth登录!
在当地发展
# clone the repository
git clone git@github.com:hemanth/remote-mcp-server.git
# install dependencies
cd remote-mcp-server
npm install
# run locally
npm run dev
你应该能够打开 http://localhost:8787/ 在浏览器中
将MCP检查器连接到您的服务器
要探索新的MCP api,您可以使用 MCP检查员.
- 从以下内容开始
npx @modelcontextprotocol/inspector@latest - 在检查员内部,将“传输类型”切换为
SSE并进入http://localhost:8787/sse作为要连接的MCP服务器的URL,然后单击“连接” - 您将导航到(模拟)用户/密码登录屏幕。输入任何电子邮件并通过登录。
- 您应该被重定向回MCP检查器,现在您可以列出并调用任何已定义的工具!
将Claude Desktop连接到本地MCP服务器
MCP检查员很棒,但我们真的想把它和克劳德联系起来!跟随 Anthropic的快速入门 在Claude Desktop中,转到“设置”>“开发人员”>“编辑配置”以查找您的配置文件。
在文本编辑器中打开该文件,并将其替换为以下配置:
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8787/sse"
]
}
}
}
这将运行一个本地代理,让Claude通过HTTP与您的MCP服务器通信
当您打开Claude时,浏览器窗口应该会打开并允许您登录。您应该在右下角看到可用的工具。如果提示正确,克劳德应该要求调用该工具。
部署到Cloudflare
npx wrangler@latest kv namespace create remote-mcp-server-oauth-kv- 按照指导将kv命名空间ID添加到
wrangler.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服务器。
使用独立MCP客户端示例
此项目包括一个独立的MCP客户端示例,演示如何以编程方式连接到MCP服务器并调用其工具。这对于测试、集成或构建与MCP服务器交互的自定义应用程序非常有用。
客户端代码位于 src/client/mcp-client.ts,运行它的示例脚本是 src/run-client.ts.
先决条件
- 服务器正在运行:确保MCP服务器正在本地运行(
npm run dev或npx nx dev remote-mcp-server)或部署。 - 客户端凭据:客户端使用OAuth 2.0客户端凭据进行身份验证。
- 对于本地开发,示例客户端(
src/run-client.ts)已预先配置测试凭据(test-client/test-secret).如果服务器端没有实现特定的客户端注册,则默认OAuth提供程序设置需要这些凭据。 - 如果您的OAuth服务器上有特定的客户端注册系统,则需要注册客户端并获取客户端ID和密钥。
- 对于本地开发,示例客户端(
运行客户端示例
-
设置环境变量(可选): 客户端脚本
src/run-client.ts可以通过环境变量进行配置:MCP_SERVER_URLMCP服务器的基本URL(例如。,http://localhost:8787或您部署的工作URL)。默认为http://localhost:8787.MCP_CLIENT_ID:OAuth客户端ID。默认为test-client.MCP_CLIENT_SECRET:OAuth客户端密钥。默认为test-secret.
您可以在shell中设置这些:
export MCP_SERVER_URL="http://your-server-url" export MCP_CLIENT_ID="your-client-id" export MCP_CLIENT_SECRET="your-client-secret" -
执行脚本: 从项目根目录运行以下命令:
npm run run:client这将执行
src/run-client.ts使用ts-node。脚本将尝试连接到服务器、进行身份验证并调用示例add工具。备注:客户端的初始版本具有实际SDK客户端实例化的占位符实现(
new McpClient(...))和工具调用(client.callTool(...))内src/client/mcp-client.ts。您可能需要根据提供的特定API更新这些部分@modelcontextprotocol/sdk一旦他们完全确定,工具调用就会成功。身份验证部分(getAccessToken)如果服务器的OAuth正常工作/token端点已运行。
将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@latest http://localhost:8787/sse
在某些罕见的情况下,清除添加到的文件可能会有所帮助 ~/.mcp-auth
rm -rf ~/.mcp-auth
使用xkcd工具
这 xkcd 该工具获取一个随机的xkcd漫画图像URL及其alt文本。以下是如何使用它:
- 如上所述,使用MCP检查器或Claude Desktop连接到您的MCP服务器。
- 打电话给
xkcd工具。
使用MCP检查器的示例:
- 在MCP检查器中,选择
xkcd从可用工具列表中选择工具。 - 点击“调用”以获取一个随机的xkcd漫画。
使用Claude Desktop的示例:
- 打开克劳德桌面,确保它已连接到您的MCP服务器。
- 使用类似“使用xkcd工具获取随机xkcd漫画”的提示
响应将包括图像URL和随机xkcd漫画的alt文本。
