MCP Auth Step by Step 是 Solo.io 公司 CTO Christian Posta 开发的开源教程项目,通过循序渐进的方式展示如何构建基于 HTTP 传输和 JWT 认证的 MCP(Model Context Protocol)服务器。该项目与"MCP Authorization"系列博客文章相辅相成,深入探讨了 MCP 授权规范对 OAuth RFCs 的要求及主流身份提供商的支持情况。
技术架构
项目基于 FastAPI 框架构建,集成了 PyJWT 用于令牌处理。从基础的 FastAPI 服务器开始,逐步添加 MCP 请求处理、工具调度、JWT 认证等功能模块。认证系统采用 JWT 令牌机制,包含用户身份、权限范围、角色信息等关键数据,并通过 OAuth 2.0 元数据端点增强了系统安全性。
认证授权流程
系统实现了完整的 JWT 认证和基于范围的授权机制。通过 JWT 认证中间件对 /mcp 端点进行访问控制,从令牌中提取用户上下文,并使用 check_permission 方法进行权限验证。OAuth 2.0 元数据的集成进一步提升了系统的互操作性。
部署配置
项目使用 uv 包管理器进行依赖管理和运行控制。支持多种部署配置方式,包括基本的服务器启动、MCP 请求处理配置,以及基于环境文件的高级配置。系统提供了令牌生成工具,支持通过命令行或 Keycloak 快速创建测试令牌。
测试验证
每个开发阶段都配备了完整的测试用例,覆盖基础功能、认证授权、OAuth 集成等关键特性。测试脚本可通过 uv run 命令执行,确保系统各个组件的可靠性。
未来规划
计划在响应中增加更丰富的用户上下文信息,开发更智能的用户感知认证工具,进一步提升系统的安全性和用户体验。项目持续关注 OAuth 规范的发展,确保与最新安全标准保持同步。