OAuth 2.0 认证服务器

一个功能齐全、可自托管的OAuth 2.0服务器,专为现代AI时代和Model-Context-Protocol (MCP)设计,提供灵活的用户认证和授权解决方案。

  • by mcpauth
  • TypeScript
  • 本地部署
  • 113 星标
  • 更新于
在 GitHub 查看 mcpauth/mcpauth

使用说明

@mcpauth/auth

一个功能齐全、可自托管的OAuth 2.0服务器,专为现代人工智能时代和 模型上下文协议(MCP).

@mcpauth/auth 使您能够通过您控制的强大而灵活的OAuth 2.0实现来保护您的MCP应用程序。

现场演示

查看实时演示 @mcpauth/auth 在Vercel上部署:

https://mcpauth-nextjs.vercel.app/

此演示的源代码可在 apps/nextjs 此存储库的目录。

有关更多实时示例,请参阅 示例页面 在文件中。

文档

文件 @mcpauth/auth 可在 https://mcpauth-docs.vercel.app/.

为什么是@mcpauth/auth?

拥有您的数据和身份验证

随着 @mcpauth/auth,你托管服务器,你拥有数据。没有单独的授权服务器。没有供应商锁定。

现代MCP客户端所需

像OpenAI的ChatGPT这样的主要MCP客户端需要OAuth 2.0来对用户进行身份验证,并授权访问工具和资源。 @mcpauth/auth 提供了与这些现代客户端集成所需的兼容、安全的服务器。

无缝集成您现有的身份

采用新的身份验证系统的最大挑战是将其与现有的用户管理集成。 @mcpauth/auth 通过一个强大的功能解决了这个问题: authenticateUser.

此功能允许您插入 任何 现有的身份验证逻辑。无论您的用户是通过会话cookie、承载令牌还是外部系统进行身份验证,您都可以通过几行代码对其进行验证并将其链接到OAuth流。

例如,如果您正在使用 @auth/express 对于会话管理,您的实现很简单:

  authenticateUser: async (request: Request) => {
    // Grab the user's existing session from a cookie
    const session = await getSession(request, authConfig);
    // Return the user object if they are authenticated, or null if not
    return (session?.user as OAuthUser) ?? null;
  },

这种灵活性意味着您可以将兼容的MCP OAuth层添加到您的应用程序中,而无需重建整个身份验证堆栈。

兼容性

@mcpauth/auth 旨在适应您现有的堆栈。以下是我们目前支持的框架和数据库存储的摘要:

类型 支持 备注
框架 Next.js, 快速 适配器提供与流行的Node.js框架的无缝集成。
数据库 棱镜, 细雨 存储处理OAuth实体的所有数据库交互。

没有看到您喜欢的框架或数据库? 通过在GitHub上打开问题来请求新的适配器或存储。

ChatGPT深度研究连接器注意事项

ChatGPT的深度研究定制连接器 是一项新功能,允许您将OpenAI的ChatGPT与自己的数据一起使用。这是开始使用MCP的好方法,需要OAuth 2.0服务器对用户进行身份验证并授权访问工具和资源。

@mcpauth/auth 提供了与ChatGPT的Deep Research自定义连接器集成所需的兼容、安全的服务器。

ChatGPT的自定义连接器(跨所有MCP服务器)存在一些问题。他们一直在积极解决其中许多问题,但仍有一些问题存在。例如,添加新的自定义连接器后,您经常会收到“此连接器未实现我们的模式”错误。这是一个已知的问题,刷新页面通常可以修复它。

贡献

我们对所有社区贡献持开放态度!

许可证

国际协调委员会