跳到正文
FoxAuth

OAuth 2.1 · OpenID Connect · MCP

面向智能体时代的授权服务器。

FoxAuth 构建于 OAuth-server.ts 之上,这是一个由你自行运行、源码可用的 OAuth 2.1 / OpenID Connect 服务器。它自带管理控制台和银行级安全规范,并支持 AI 智能体通过 MCP 进行管理。

它面向需要把身份系统留在自有基础设施内的工程团队,也面向构建 AI 智能体、并要让智能体来管理它的开发者。在 Functional Source License(FSL-1.1-ALv2)下,自托管免费且功能完整;每个版本发布两年后转为 Apache 2.0 许可。

25 项规范Bun + ElysiaFSL-1.1-ALv2

两条命令,一个浏览器标签页
curl -O https://raw.githubusercontent.com/RedFox-Soft/OAuth-server.ts/main/docker-compose.yml
docker compose up
# open http://localhost:3000/admin

这两条命令为你准备好了什么

  • 数据库 已启动并完成预配,带有索引和一个签名密钥
  • 管理控制台 位于 /admin,首次运行时引导你设置超级管理员
  • 发现文档 位于 /.well-known/openid-configuration,反映你设置的功能开关
  • 无需注册 没有租户,没有 API 密钥,也不用打电话

已经在用别的方案?我们维护着与 Auth0、authentik、Keycloak、Ory Hydra 和 Zitadel 的对比,均注明日期和出处,并列出我们查阅过的页面及查阅日期。

控制台

运维所需的一切,无需第二个产品。

项目、客户端、用户桶、最终用户、上游身份提供商、SCIM 连接、设置、SMTP、签名密钥、月活跃用户,以及只追加的审计日志,全部集中在一个控制台里;登录控制台走的是服务器自身的 OpenID Connect 流程,也可以通过你所在组织的身份提供商登录。可能让人无法登录的更改,会在生效前先告诉你影响到谁。AI 智能体通过 MCP 使用的也是同一套 API。

FoxAuth 管理控制台,列出某个项目的 OAuth 客户端。
内置控制台中某个项目的客户端。这里的每一次更改都会生成一条审计记录。

标准

25 项规范,均已实现。

下面每一项都是仓库里的代码,并且有测试。每一项都链接到它所实现的规范;参考文档写明了控制它的功能开关。

端点参考

为 MCP 打造的 OAuth 服务器

保护你的 MCP 服务器,并让智能体来运维这一台。

把你自己的 MCP 服务器声明为某个项目的受保护资源,本服务器就会签发受众恰好是该资源的令牌。这里不用写代码,也不用重启。智能体宿主会发现它、让你的用户登录,然后带着令牌回来;你的 MCP 服务器对照公开的密钥即可验证该令牌,无需向任何一方询问。值为 HTTPS URL 的 client_id 会被当作客户端身份文档接受,因此一个什么都不用配置的宿主也能连上。

打开 mcp.enabled 后,管理 API 会以 OAuth 2.1 受保护资源的形式在 POST /mcp 上提供给 AI 智能体。这 126 个工具中的每一个都会重建控制台本应发送的请求,并执行控制台自身的权限检查、校验和审计写入,因此不存在会与控制台逐渐脱节的特权后门。

破坏性操作和影响整个实例的操作需要两次调用:第一次返回确认令牌,第二次携带该令牌。此功能默认关闭。

保护你的 MCP 服务器全部 126 个 MCP 工具

agent  → settings_update { "deviceFlow.enabled": false }

server ← Nothing has been changed. Change server settings. The merged
         configuration is validated first …

         Target: settings_update
         To proceed, call settings_update again with
         confirmationToken="<token from the first call>".
         It is valid once, until 2026-09-03T14:12:04.000Z.

agent  → settings_update { "deviceFlow.enabled": false,
                           "confirmationToken": "<token from the first call>" }

server ← { "appliedKeys": ["deviceFlow.enabled"],
           "pendingRestartKeys": [], … }

         Audit: actor agent:ops-bot, action settings.update.

许可

源码可用,实话实说。

代码是公开的,你可以阅读、修改、自托管和再分发——唯一不允许的是把它作为竞争性的托管服务提供给他人。每个版本发布两年后,该版本即转为 Apache License 2.0。

阅读许可证

开始

今天下午就自己跑起来。

自托管免费且功能完整。托管实例是下一步。