@mcpauth/auth
是一款功能全面、可自行托管的 OAuth 2.0 服务器,专为现代人工智能时代以及 模型上下文协议 (MCP) 而设计。它能让你通过强大且灵活的 OAuth 2.0 实现来保护你的 MCP 应用程序,并且一切尽在你的掌控之中。
你可以查看部署在 Vercel 上的 @mcpauth/auth
实时演示:
https://mcpauth-nextjs.vercel.app/
此演示的源代码可在本仓库的 目录中找到。
更多实时示例,请参阅文档中的 示例页面。
@mcpauth/auth
的文档可在 https://mcpauth-docs.vercel.app/ 查看。
使用 @mcpauth/auth
,你可以自行托管服务器,拥有数据的所有权。无需单独的授权服务器,也不会被供应商锁定。
像 OpenAI 的 ChatGPT 等主要的 MCP 客户端需要 OAuth 2.0 来对用户进行身份验证,并授权访问工具和资源。@mcpauth/auth
提供了符合要求且安全的服务器,助你与这些现代客户端进行集成。
采用新的认证系统时,最大的挑战在于将其与现有的用户管理系统集成。@mcpauth/auth
通过一个强大的函数 authenticateUser
解决了这个问题。
这个函数允许你接入任何现有的认证逻辑。无论你的用户是通过会话 cookie、承载令牌还是外部系统进行身份验证,你都可以通过几行代码来验证他们,并将他们与 OAuth 流程关联起来。
例如,如果你使用 @auth/express
进行会话管理,实现方式非常简单:
authenticateUser: async (request: Request) => {
// 从 cookie 中获取用户的现有会话
const session = await getSession(request, authConfig);
// 如果用户已通过身份验证,则返回用户对象;否则返回 null
return (session?.user as OAuthUser) ?? null;
},
这种灵活性意味着你可以在不重建整个认证栈的情况下,为你的应用程序添加符合 MCP 标准的 OAuth 层。
@mcpauth/auth
旨在适应你现有的技术栈。以下是目前支持的框架和数据库存储的总结:
属性 | 详情 |
---|---|
框架 | Next.js、Express。适配器可实现与流行的 Node.js 框架的无缝集成。 |
数据库 | Prisma、Drizzle。存储负责处理 OAuth 实体的所有数据库交互。 |
如果你未找到你偏好的框架或数据库,请在 GitHub 上创建一个问题来请求新的适配器或存储。
ChatGPT 的深度研究自定义连接器 是一项新功能,允许你将 OpenAI 的 ChatGPT 与你自己的数据结合使用。这是开始使用 MCP 的绝佳方式,并且需要一个 OAuth 2.0 服务器来对用户进行身份验证,并授权访问工具和资源。
@mcpauth/auth
提供了符合要求且安全的服务器,助你与 ChatGPT 的深度研究自定义连接器进行集成。
ChatGPT 的自定义连接器存在一些问题(所有 MCP 服务器都存在)。他们一直在积极修复其中许多问题,但仍有一些问题存在。例如,添加新的自定义连接器后,你经常会收到 “此连接器未实现我们的架构” 错误。这是一个已知问题,刷新页面通常可以解决。
我们欢迎社区的所有贡献!
ISC 许可证