mcpField
F
Firebase MCP

Firebase MCP

本地服务
github.com/robertodevs云与基础设施681 周前更新

关于 Firebase MCP

Firebase MCP 使用 Firebase Admin SDK 管理 Firebase Authentication 用户和 Firestore 数据。它提供用户管理、文档操作及批量写入工具,可集成 Cursor IDE 和 Claude Desktop。

主要功能

  1. 01创建、列出、更新和删除 Auth 用户
  2. 02生成邮箱验证及密码重置链接
  3. 03浏览 Firestore 集合与文档
  4. 04创建、更新和删除 Firestore 文档
  5. 05执行原子批量写入

适用场景

  1. 01管理 Firebase Authentication 账户
  2. 02查看和修改 Firestore 集合及文档
  3. 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 助手集成)

设置

  1. 创建 Firebase 项目

    • 前往 Firebase Console
    • 创建新项目或选择现有项目
    • 启用 Authentication 和 Firestore 服务
  2. 获取 Firebase Admin SDK 凭据

    • 在 Firebase Console 中,前往 Project Settings > Service Accounts
    • 点击“Generate New Private Key”
    • 将 JSON 文件保存为项目根目录下的 service-account-key.json
  3. 安装依赖项

    pip install firebase-admin fastmcp
    
  4. 配置服务

    • 更新 firebase.py 中的服务账号密钥路径:
      cred = credentials.Certificate("path/to/your/service-account-key.json")
      

运行服务

  1. 启动 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
    
  2. 在 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
    
  3. 直接执行

    对于高级使用场景,你可以直接运行服务:

    from mcp.server.fastmcp import FastMCP
    
    mcp = FastMCP("Firebase Tools")
    
    if __name__ == "__main__":
        mcp.run()
    

    然后运行:

    python firebase.py
    # or
    mcp run firebase.py
    

调试

  1. 服务日志

    MCP 服务会提供详细日志。你可以通过设置环境变量来启用调试日志:

    mcp dev firebase.py -v MCP_LOG_LEVEL=debug
    
  2. 生命周期管理

    如需调试初始化和清理过程,请实现生命周期 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)
    
  3. 工具测试

    你可以使用 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]"}'
    
  4. 集成测试

    如需测试完整的服务集成:

    # 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"
}

安全注意事项

  1. 服务账号密钥

    • 切勿将 service-account-key.json 提交到版本控制中
    • 将其添加到 .gitignore
    • 在生产环境中使用环境变量
  2. 身份验证

    • 始终验证用户输入
    • 实施适当的错误处理
    • 遵循 Firebase 安全最佳实践

贡献

  1. Fork 此仓库
  2. 创建功能分支
  3. 提交更改
  4. 将更改推送到分支
  5. 创建 Pull Request

许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

支持

如有问题或功能请求,请在 GitHub 仓库中创建 issue。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。