一个专为现代AI时代和模型上下文协议(MCP)设计的全功能自托管OAuth 2.0服务器。
@mcpauth/auth使您能够通过一个强大且灵活的OAuth 2.0实现来保护您的MCP应用程序,该实现完全由您控制。
查看部署在Vercel上的@mcpauth/auth实时演示:
https://mcpauth-nextjs.vercel.app/
此演示的源代码可以在本仓库的apps/nextjs目录中找到。
更多实时示例,请参阅文档中的示例页面。
@mcpauth/auth的文档可在https://mcpauth-docs.vercel.app/获取。
使用@mcpauth/auth,您自己托管服务器,拥有数据。无需单独的授权服务器。没有供应商锁定。
像OpenAI的ChatGPT这样的主要MCP客户端需要OAuth 2.0来验证用户并授权访问工具和资源。@mcpauth/auth提供了您需要的合规且安全的服务器以集成这些现代客户端。
采用新的认证系统最大的挑战是将其与现有的用户管理系统进行集成。@mcpauth/auth通过一个强大的函数解决了这个问题:authenticateUser。
这个函数允许您插入任何现有的认证逻辑。无论您的用户是通过会话cookie、bearer token还是外部系统进行认证的,您都可以用几行代码验证他们并将他们链接到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