本项目实现了可流式 HTTP 服务器与客户端的 OAuth 支持,无需使用 PKCE 技术。通过设备流程,为服务器和客户端提供了安全、便捷的 OAuth 认证方式。
git clone <仓库地址>
cd <仓库目录>
npm install
转到您的 GitHub 开发者设置(在设置下),创建一个 OAuth 应用。输入“http://localhost”作为回调 URL(如果需要)。确保启用“设备流”,并记录下客户端 ID 和客户端密钥。
在本地开发环境中设置 GITHUB_CLIENT_ID
和 GITHUB_CLIENT_SECRET
环境变量。
npx tsx server/index_streamable.ts
在另一个终端中启动 MCP 客户端。
npx tsx client/client.ts
在撰写本文时,使用 MCP Inspector 测试具备 OAuth 支持的可流式 HTTP 服务器遇到了困难,因此选择通过设备流程实现 OAuth。
希望将基于浏览器的身份验证流程替换为基于设备的 OAuth 流程,该流程无需 PKCE,原因如下:
尽管没有浏览器用于会话存储,但可能仍需实现 MCP's OAuthServerProvider 目前需要的一些方法(例如 exchangeAuthorizationCode
和 challengeForAuthorizationCode
)。