Firebase的MCP认证服务器代理
一个即将部署的OAuth2身份验证服务器,它将Firebase身份验证与模型上下文协议(MCP)集成在一起。此代理服务器处理OAuth2流,并为MCP服务器和客户端提供安全身份验证。
🔥 这是什么?
这是一个 完整的OAuth2身份验证服务器 即:
- 🔐 处理OAuth2流 适用于MCP客户端(VS Code、Claude Desktop等)
- 🔥 使用Firebase身份验证 作为后端身份提供者
- 🚀 准备部署 使用Docker或直接使用Gradle
- 🎯 MCP兼容 具有适当的发现端点和错误处理
- ⚡ 易于配置 仅包含环境变量
🏗️ 建筑
graph TD
A[MCP Client
VS Code, Claude Desktop] --> B[Your MCP Server
:8080]
B --> C[MCP Auth Server Proxy
:9000 - This Project]
C --> D[Firebase Authentication
Google's Service]
style C fill:#f9f,stroke:#333,stroke-width:3px
style C color:#000- MCP客户端 → 您的MCP服务器→ 此身份验证代理 → 火基
- 此代理处理所有OAuth2复杂性,因此您的MCP服务器保持简单
- Firebase提供实际的用户身份验证和管理
✨ 特性
OAuth2合规性
- ✅ 使用PKCE的授权码流
- ✅ 代币交换和刷新
- ✅ 客户注册
- ✅ OAuth2发现端点
- ✅ 正确处理WWW-Authenticate标头的错误
Firebase集成
- ✅ Firebase ID令牌验证
- ✅ 用户资料提取(电子邮件、姓名、图片)
- ✅ 服务帐户身份验证
- ✅ JWT声明中的安全令牌嵌入
MCP兼容性
- ✅
.well-known发现端点 - ✅ 适当的资源元数据响应
- ✅ MCP检查器兼容
- ✅ 为web客户端启用CORS
生产就绪
- ✅ Docker容器化
- ✅ 基于环境的配置
- ✅ 健康检查端点
- ✅ 综合录井
- ✅ 专业UI模板
🚀 快速开始
先决条件
- 启用身份验证的Firebase项目
- Firebase服务帐户密钥
- Java 17+(如果在本地运行)或Docker
1.克隆和配置
git clone https://github.com/muthuishere/mcp-firebase-auth-server.git
cd mcp-firebase-auth-server
# Copy and edit environment file
cp .env.example .env
# Edit .env with your Firebase credentials2.部署
# Option 1: Docker (Recommended)
docker-compose up -d
# Option 2: Local development
./gradlew bootRun3.验证
# Check OAuth2 discovery
curl http://localhost:9000/.well-known/oauth-authorization-server
# Visit the auth server
open http://localhost:9000🎉 就是这样! 您的OAuth2身份验证服务器正在端口9000上运行。
🛠️ 配置
环境变量
| 变量 | 描述 | 示例 |
|---|---|---|
AUTH_SERVER_PORT | 身份验证服务器的端口 | 9000 |
MCP_AUTH_SERVER_URL | 此服务器的公共URL | http://localhost:9000 |
FIREBASE_PROJECT_ID | 您的Firebase项目ID | my-project-123 |
FIREBASE_API_KEY | Firebase web API密钥 | AIzaSy... |
FIREBASE_SERVICE_ACCOUNT_KEY | Firebase服务帐户JSON | {"type":"service_account",...} |
Firebase设置
- 在以下位置创建Firebase项目 Firebase控制台
- 启用与所需提供商(谷歌、电子邮件/密码等)的身份验证
- 从项目设置生成服务帐户密钥→ 服务帐户
- 从项目设置获取web API密钥→ 将军
📖 可用端点
OAuth2端点
GET /.well-known/oauth-authorization-server-OAuth2服务器元数据GET /.well-known/openid-configuration-OpenID连接发现GET /oauth2/authorize-授权端点POST /oauth2/token-令牌交换端点POST /oauth2/refresh-令牌刷新端点POST /oauth2/register-动态客户端注册POST /oauth2/consent-用户同意处理
认证流程
GET /-登录页面GET /login-备选登录端点POST /api/auth/session-会话身份验证GET /api/config-客户端配置
健康与监测
GET /api/health-简单的健康检查GET /oauth2/health-详细的健康状况
🔗 与您的MCP服务器集成
此身份验证服务器旨在与您的自定义MCP服务器配合使用。您的MCP服务器需要实现特定的端点才能与此代理集成。
📋 完整集成指南→
集成指南包括:
- MCP服务器所需的REST API端点
- JWT令牌验证逻辑
- 身份验证错误处理
- 当地开发设置
- MCP检验员测试
🎨 用户界面
认证服务器包括具有专业外观的web模板,包括:
- 🔥 带有消防图标的Firebase品牌
- 📱 响应式设计
- 🎯 清晰的OAuth2流程指南
- 👤 个人归因和链接
- ❌ 正确的错误处理页面
🐳 部署选项
Docker Compose(推荐)
version: '3.8'
services:
mcp-auth-server:
image: muthuishere/mcp-firebase-auth-server
ports:
- "9000:9000"
env_file:
- .envDocker运行
docker run -p 9000:9000 --env-file .env muthuishere/mcp-firebase-auth-server云部署
部署到任何支持Docker的平台:
- AWS ECS/Fargate
- 谷歌云运行
- Azure容器实例
- 数字海洋应用平台
- 铁路,渲染,Heroku
🧪 测试
手动测试
# Test OAuth2 discovery
curl http://localhost:9000/.well-known/oauth-authorization-server
# Test authorization (will redirect to login)
open "http://localhost:9000/oauth2/authorize?response_type=code&client_id=test&redirect_uri=http://localhost:3000/callback"与MCP检查员一起
使用MCP检查器通过可视化界面测试完整的OAuth2流。
🤝 贡献
欢迎投稿!该项目通过提供标准化的身份验证解决方案来帮助MCP生态系统。
开发环境设置
git clone https://github.com/muthuishere/mcp-firebase-auth-server.git
cd mcp-firebase-auth-server
./gradlew bootRun项目结构
src/main/java/tools/muthuishere/mcpauthserver/-主要应用代码src/main/resources/templates/-身份验证流的HTML模板referencemcpserver/-MCP服务器集成的参考实现mcp-server-setup.md-完整的集成指南
📝 许可证
麻省理工学院许可证-请在您的项目中自由使用!
👨💻 作者
Muthukumaran Navanethakrishnan
🆘 支持
- 📖 集成帮助:参见 MCP服务器设置指南
- 🐛 问题:
- 💬 问题:联系方式 @穆修希尔
______________________________________________________________________
