关于 Implementing an MCP Client with Browser-based OAuth
面向开发者的浏览器端 MCP 客户端,可连接支持 OAuth 的 Streamable HTTP 服务器,用于检查连接和工具调用;提示词与资源列表尚未实现。
主要功能
- 01浏览器端 OAuth 流程
- 02连接 Streamable HTTP 服务器
- 03列出服务器工具
- 04输入参数并调用工具
- 05检查工具响应
适用场景
- 01测试受 OAuth 保护的 MCP 服务
- 02查看传输过程与消息交换
- 03调用工具并检查响应
MCP 相关
作为 MCP 客户端连接提供 `/authorize` 和 `/token` 端点的 Streamable HTTP 服务器。它获取服务器能力、列出并运行工具,同时展示响应以供检查。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
使用基于浏览器的 OAuth 实现 MCP 客户端
概述
本项目旨在实现一个支持端到端 OAuth 的 MCP 客户端,与 Streamable HTTP 服务配合使用,然后借助它检查传输过程以及与 MCP 服务交换的消息。
演示
https://github.com/user-attachments/assets/278bf15e-a762-47ac-8b2d-8f4a8e64eada
运行模式
至少需要实现一个 OAuthClientProvider,用于在会话存储中保存和检索身份验证信息。当用户在 Connect 面板中请求连接到服务时,客户端会通过 useConnection hook 处理此请求,其中 connect 方法分为两个步骤:
步骤 1:没有可用的访问令牌 -> (1) 通过服务的 authorize 端点触发 OAuth 流程;(2) 服务返回授权码后,获取访问令牌
步骤 2:有可用的访问令牌,但尚未建立传输连接:(1) 创建客户端和传输;(2) 连接到服务;(3) 获取服务能力
步骤 1 在 步骤 2 之前执行,以便与需要授权的 MCP 服务通信。因此,此客户端只能用于实现客户端授权的服务,具体来说,就是实现了 /authorize 和 /token 端点的服务。
客户端连接到服务并获取服务能力后,用户可以选择在 Tools 选项卡中列出其工具。目前尚未实现列出服务提供的提示词和资源(这些选项卡没有内容)。
列出工具后,用户可以在 Run 面板中输入所需的输入参数,选择调用任意工具。
工具通过服务执行时,用户可以在 Inspect 面板中查看响应。
附注:如果这看起来和 MCP Inspector 很像,这并非巧合。本项目借鉴了其中许多内容,同时尽可能保持简单。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。