OAuth合规测试套件

一个用于验证远程MCP服务器的OAuth/授权表面是否符合规范的合规测试套件。

  • by barndoor-ai
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 barndoor-ai/mcp-auth-compliance

使用说明

mcp身份验证合规性

一个合规性测试套件,用于根据规范验证远程MCP(模型上下文协议)服务器的OAuth/授权表面。

它测试什么

# 检查 规格参考
1 未经身份验证的请求返回HTTP 401 MCP认证规范
2 WWW-Authenticate 标题与 Bearer 方案 《联邦法规》第6750条第3款
3 resource_metadata 参数在 WWW-Authenticate RFC 9728§5.1
4 Cache-Control: no-store 关于身份验证错误响应 OAuth 2.1最佳实践
5 受保护的资源元数据位于 /.well-known/oauth-protected-resource RFC 9728
6 PRM包含 resource, authorization_servers 《联邦法规》第9728条第3款
7 OAuth AS元数据位于 /.well-known/oauth-authorization-server RFC 8414
8 AS元数据: issuer, authorization_endpoint, token_endpoint 《联邦法规》第8414条第2款
9 PKCE S256支持 OAuth 2.1(必须)
10 JWKS端点返回有效密钥集 RFC 8414
11 动态客户端注册 RFC 7591
12 通过HTTPS服务的所有端点 MCP认证规范
13 元数据一致性(PRM↔ 作为↔ WWW身份验证) 跨规范
14 无效令牌返回401 error="invalid_token" 《联邦法规》第6750条第3.1款

快速开始

Shell脚本(超出零依赖项 curl + python3)

./mcp-auth-check.sh https://your-server.example.com/mcp/your-service

锈

cargo run -- https://your-server.example.com/mcp/your-service

输出示例

═══════════════════════════════════════════════════════
 MCP OAuth Compliance Check
 Server: https://example.com/mcp/google-drive
═══════════════════════════════════════════════════════

── 1. Unauthenticated Request ──
  ✅ PASS: Returns HTTP 401 Unauthorized

── 2. WWW-Authenticate Header (RFC 9728 §5.1) ──
  ✅ PASS: WWW-Authenticate header present
  ✅ PASS: Uses Bearer scheme
  ✅ PASS: Contains resource_metadata parameter
  ...

═══════════════════════════════════════════════════════
 Results: 30 passed, 0 failed, 0 warnings
═══════════════════════════════════════════════════════

与官方合规套件的关系

官方 模型上下文协议/一致性 测试框架涵盖了MCP协议级行为(初始化、工具、资源、提示),但 不 还可以测试服务器的OAuth/授权表面。这个工具填补了这个空白。

一旦官方套件添加了服务器端身份验证场景,这个项目可能会变得多余——这很好。

运作原理

测试完全 黑匣子和非破坏性.他们只:

  1. 发送未经身份验证/无效的令牌HTTP请求
  2. 获取众所周知的元数据端点
  3. 执行动态客户端注册(如果端点已通告)

不需要有效的令牌。服务器上没有读取或修改数据。

许可证

麻省理工学院