关于 Firebase MCP
Firebase MCP 使用 Firebase Admin SDK 管理 Firebase Authentication 用户和 Firestore 数据。它提供用户管理、文档操作及批量写入工具,可集成 Cursor IDE 和 Claude Desktop。
主要功能
- 01创建、列出、更新和删除 Auth 用户
- 02生成邮箱验证及密码重置链接
- 03浏览 Firestore 集合与文档
- 04创建、更新和删除 Firestore 文档
- 05执行原子批量写入
适用场景
- 01管理 Firebase Authentication 账户
- 02查看和修改 Firestore 集合及文档
- 03以原子方式执行多项 Firestore 写入
MCP 相关
该 MCP 服务将 Firebase Authentication 和 Firestore 操作作为工具提供给 MCP 客户端,例如 Cursor IDE 和 Claude Desktop。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Firebase MCP 服务
一个 Firebase Admin SDK MCP(模型-控制器-提供者)服务,提供一组用于管理 Firebase Authentication 和 Firestore 操作的工具。此服务可与 Cursor IDE 或 Claude Desktop 搭配使用,实现与 AI 助手的无缝集成。
功能
身份验证工具
create_user:创建新的 Firebase 用户get_users:列出 Firebase Auth 中的所有用户get_user:获取特定用户的详细信息update_user:更新用户属性(电子邮件、显示名称、密码)delete_user:从 Firebase Auth 中移除用户verify_email:生成电子邮件验证链接reset_password:生成密码重置链接
Firestore 工具
get_collections:列出所有 Firestore 集合get_documents:列出集合中的所有文档get_document:获取特定文档的数据create_document:创建新文档update_document:更新现有文档delete_document:从 Firestore 中移除文档batch_write:以原子方式执行多个写入操作
先决条件
- Python 3.7 或更高版本
- 已启用 Admin SDK 的 Firebase 项目
- Firebase 服务账号密钥
- Cursor IDE 或 Claude Desktop(用于与 AI 助手集成)
设置
-
创建 Firebase 项目
- 前往 Firebase Console
- 创建新项目或选择现有项目
- 启用 Authentication 和 Firestore 服务
-
获取 Firebase Admin SDK 凭据
- 在 Firebase Console 中,前往 Project Settings > Service Accounts
- 点击“Generate New Private Key”
- 将 JSON 文件保存为项目根目录下的
service-account-key.json
-
安装依赖项
pip install firebase-admin fastmcp -
配置服务
- 更新
firebase.py中的服务账号密钥路径:cred = credentials.Certificate("path/to/your/service-account-key.json")
- 更新
运行服务
-
启动 MCP 服务
你可以通过多种方式运行服务:
# Using the MCP CLI (recommended) mcp dev firebase.py # With environment variables mcp dev firebase.py -v FIREBASE_KEY=path/to/key.json # With custom name mcp dev firebase.py --name "Firebase Tools Server" # Load environment variables from file mcp dev firebase.py -f .env -
在 Claude Desktop 中安装
# Basic installation mcp install firebase.py # Install with custom name mcp install firebase.py --name "Firebase Tools" # Install with environment variables mcp install firebase.py -v FIREBASE_KEY=path/to/key.json -v OTHER_VAR=value mcp install firebase.py -f .env -
直接执行
对于高级使用场景,你可以直接运行服务:
from mcp.server.fastmcp import FastMCP mcp = FastMCP("Firebase Tools") if __name__ == "__main__": mcp.run()然后运行:
python firebase.py # or mcp run firebase.py
调试
-
服务日志
MCP 服务会提供详细日志。你可以通过设置环境变量来启用调试日志:
mcp dev firebase.py -v MCP_LOG_LEVEL=debug -
生命周期管理
如需调试初始化和清理过程,请实现生命周期 API:
from contextlib import asynccontextmanager from collections.abc import AsyncIterator from mcp.server import Server @asynccontextmanager async def server_lifespan(server: Server) -> AsyncIterator[dict]: # Initialize Firebase on startup firebase_app = initialize_firebase() try: yield {"firebase": firebase_app} finally: # Cleanup on shutdown await firebase_app.delete() # Pass lifespan to server server = Server("firebase-tools", lifespan=server_lifespan) -
工具测试
你可以使用 MCP CLI 测试各个工具:
# Test a specific tool mcp test firebase.py --tool create_user # Test with specific arguments mcp test firebase.py --tool create_user --args '{"email": "[email protected]"}' -
集成测试
如需测试完整的服务集成:
# Start server in test mode mcp dev firebase.py --test # In another terminal, run integration tests mcp test-integration firebase.py
使用示例
身份验证操作
# Create a new user
await create_user(email="[email protected]", password="securepassword123")
# Update user properties
await update_user(
user_id="user123",
email="[email protected]",
display_name="New Name"
)
# Send email verification
await verify_email(
user_id="user123",
action_url="https://yourapp.com/verified"
)
# Generate password reset link
await reset_password(
email="[email protected]",
action_url="https://yourapp.com/reset-complete"
)
Firestore 操作
# Create a document
await create_document(
collection_id="users",
document_id="user123",
data={
"name": "John Doe",
"age": 30
}
)
# Update a document
await update_document(
collection_id="users",
document_id="user123",
data={
"age": 31
}
)
# Get document data
await get_document(
collection_id="users",
document_id="user123"
)
# Perform atomic batch operations
await batch_write(operations=[
{
"type": "create",
"collection_id": "users",
"document_id": "user1",
"data": {
"name": "John Doe",
"email": "[email protected]"
}
},
{
"type": "update",
"collection_id": "profiles",
"document_id": "profile1",
"data": {
"age": 30,
"occupation": "Developer"
}
},
{
"type": "delete",
"collection_id": "temp",
"document_id": "temp1"
}
])
响应格式
所有工具都会以一致的格式返回响应:
# Success response
{
"success": True,
"data": {...} # or relevant success data
"message": "Operation completed successfully"
}
# Error response
{
"success": False,
"error": "Error message details"
}
安全注意事项
-
服务账号密钥
- 切勿将
service-account-key.json提交到版本控制中 - 将其添加到
.gitignore - 在生产环境中使用环境变量
- 切勿将
-
身份验证
- 始终验证用户输入
- 实施适当的错误处理
- 遵循 Firebase 安全最佳实践
贡献
- Fork 此仓库
- 创建功能分支
- 提交更改
- 将更改推送到分支
- 创建 Pull Request
许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
支持
如有问题或功能请求,请在 GitHub 仓库中创建 issue。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。