Token导航 LogoToken导航TokenDH.com
MCP Auth Kit logo
安全风控未说明官方级别未说明来源级核验

MCP Auth Kit

MCP Server

AuthKit是一个专为MCP服务器设计的独立OAuth 2.1授权服务器,提供完整的OAuth规范实现,包括发现、注册、同意和令牌管理功能。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
认证服务Cloudflare WorkersClaudeClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

OpZero-sh

提供方

OpZero-sh

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP认证工具包

MCP服务器的OAuth 2.1。一个工人。五分钟。

每个MCP服务器构建者都遇到了同样的问题:OAuth规范是残酷的。 AuthKit是墙的另一边。

一个单一的Cloudflare Worker+D1数据库,处理整个MCP OAuth规范-- 发现、注册、同意、令牌——这样你的MCP服务器就不必这么做了。

![License: MIT](LICENSE) ![Cloudflare Workers](https://workers.cloudflare.com) ![OAuth 2.1](https://oauth.net/2.1/) ![MCP](https://modelcontextprotocol.io) ![RFC 9728](https://www.rfc-editor.org/rfc/rfc9728)

在生产中运行 authkit.open0p.com,为OAuth提供支持 OpZero.sh.

开始使用 · 运作原理 · API 参考 · 战争故事

______________________________________________________________________

问题

您想构建一个MCP服务器。Claude、ChatGPT和其他客户端需要使用您的服务器对用户进行身份验证。规范说:实现OAuth 2.1。

这意味着RFC 9728(受保护的资源元数据)、RFC 8414(授权服务器元数据)、RFC7591(动态客户端注册)、具有S256的PKCE、同意屏幕、令牌刷新、令牌撤销和多租户支持。在你的第一次工具调用开始之前。

我们花了数周时间与之斗争。然后我们把它撕成了自己的服务。

解决方案

AuthKit是专为MCP构建的独立OAuth授权服务器(约600行)。您的MCP服务器指向其 authorization_servers 到AuthKit,整个OAuth舞蹈——注册、同意、令牌——都发生在这里。

MCP服务器的唯一任务: 验证Bearer令牌。

// Your MCP server's /.well-known/oauth-protected-resource
{
  "resource": "https://your-mcp-server.com/mcp",
  "authorization_servers": ["https://your-authkit-instance.com"],
  "bearer_methods_supported": ["header"]
}

这就是整个整合。

它实现了什么

规格内容状态
RFC 9728受保护的资源元数据每台服务器自动生成
RFC 8414授权服务器元数据完成
RFC 7591动态客户端注册完成
OAuth 2.1授权码+PKCE(S256)完成
--令牌刷新(30天TTL)完成
--令牌撤销完成
--登录/注册同意屏幕完成
--多租户(多个MCP服务器)完成

运作原理

Claude / ChatGPT         AuthKit (CF Worker + D1)       Your MCP Server
     |                           |                           |
     |  POST /mcp (no token)     |                           |
     |------------------------------------------------------------>|
     |  401 + WWW-Authenticate   |                           |
     ||
     |  { authorization_servers: ["https://authkit..."] }    |
     ||                           |
     |  { endpoints... }        |                           |
     ||                           |
     |  { client_id }           |                           |
     ||                           |
     |  [consent screen]        |                           |
     ||                           |
     |  302 -> callback?code=xxx|                           |
     ||                           |
     |  { access_token, ... }   |                           |
     ||
     |                           |  GET /oauth/userinfo      |
     |                           ||
     |  [tools response]         |                           |
     | enter a strong random string

# Deploy
wrangler deploy

住在 https://mcp-authkit..workers.dev.

注册您的MCP服务器

curl -X POST https://your-authkit.workers.dev/api/servers \
  -H "Authorization: Bearer YOUR_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My MCP Server",
    "resource_url": "https://my-mcp.com/mcp",
    "scopes": ["mcp:tools"]
  }'

答复:

{
  "server_id": "srv_abc123...",
  "api_key": "sak_xyz789...",
  "prm_url": "https://your-authkit.workers.dev/prm/srv_abc123...",
  "message": "Set authorization_servers in your PRM to point to this gateway."
}

连接您的MCP服务器

将服务器的受保护资源元数据指向AuthKit实例,并通过验证令牌 /oauth/userinfo 终点。就这样

集成指南 完整的演练。

API 参考

方法端点描述
GET/.well-known/oauth-authorization-server授权服务器元数据(RFC 8414)
POST/oauth/register动态客户端注册(RFC 7591)
GET/oauth/authorize授权+同意UI
POST/oauth/token代码->与PKCE进行令牌交换
POST/oauth/revoke令牌撤销
GET/oauth/userinfo访问令牌中的用户信息
GET/prm/:server_id自动生成的受保护资源元数据(RFC 9728)
POST/api/servers注册MCP服务器(管理员)
GET/health健康检查

API 参考 有关请求/响应的详细信息。

令牌格式

类型前缀生存期示例
访问令牌mat_1小时mat_dhcbqsgb...
刷新令牌mrt_30天mrt_ydqd0ug1...
验证码code_10分钟code_zkm6ukm...
服务器API密钥sak_永久sak_6rvstdl7...

所有令牌在存储之前都经过哈希(SHA-256)处理。明文在创建时只返回一次。

项目结构

mcp-authkit/
  src/
    worker.js              The entire OAuth gateway (~600 lines)
  docs/
    integration.md         How to wire up your MCP server
    api.md                 Full API reference
    how-it-works.md        Deep dive on the OAuth flow
    decisions.md           Why we built it this way
    war-story.md           10 attempts, every bug, the full timeline
  scripts/
    test-flow.sh           End-to-end OAuth flow test
  schema.sql               D1 database schema (7 tables)
  wrangler.toml            Cloudflare Worker config
  package.json

战争故事

这个项目之所以存在,是因为我们花了 5天内尝试10次 试图让MCP OAuth在带有Better Auth的Next.js应用程序中工作。在env变量中跟踪换行符、布尔值与字符串同意重定向、将哈希令牌与原始字符串进行比较、缺少OPTIONS处理程序、未记录的配置标志——每个错误都表现为“什么都没发生”

转折点是意识到OAuth是基础设施,而不是产品。把它撕下来。

  • 战争故事 --所有10次尝试,每个错误,完整的时间线
  • 架构决策 --为什么选择Cloudflare Workers,为什么选择独立

注意事项

这是一个为真实产品提供动力的参考实现。它不是:

  • 具有SLA的维护库
  • Auth0/Stytch/职员的替代品
  • 大规模的战斗测试(它适用于我们的流量)

用它来学习、分叉、窃取图案。如果您需要支持生产身份验证,请使用专用的身份验证提供程序。

由OpZero制造

OpZero 的 是一个AI原生部署平台。从任何MCP客户端(Claude、Cursor或您自己的代理)将网站发送到Cloudflare、Netlify和Vercel。

AuthKit是为其提供支持的OAuth层。我们将其开源,因为每个MCP构建者都不必对抗相同的规范。

贡献

欢迎捐款。看 贡献.md 作为指导方针。

许可证

麻省理工学院

______________________________________________________________________

由...建造 @杰夫 为了 OpZero.sh

如果这为您省去了OAuth带来的麻烦,请给 OpZero 的 看一眼-- 这是我们为之构建的部署平台。

目录标签

目录标签

认证服务Cloudflare WorkersClaudeOAuth2.1JavaScript本地部署MCP服务器CloudflareWorkersD1数据库

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP