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. 01Auth ユーザーの作成・一覧・更新・削除
  2. 02メール確認リンクとパスワード再設定リンクの生成
  3. 03Firestore コレクションとドキュメントの参照
  4. 04Firestore ドキュメントの作成・更新・削除
  5. 05アトミックな一括書き込み

活用シーン

  1. 01Firebase Authentication アカウントの管理
  2. 02Firestore コレクションとドキュメントの確認・変更
  3. 03複数の Firestore 書き込みのアトミックな実行

MCP 対応

MCP サーバーは、Firebase Authentication と Firestore の操作をツールとして、Cursor IDE や Claude Desktop などの MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Firebase MCP サーバー

Firebase Authentication と Firestore の操作を管理するための一連のツールを提供する、Firebase Admin SDK MCP(Model-Controller-Provider)サーバーです。このサーバーは、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. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更をコミットします
  4. ブランチにプッシュします
  5. プルリクエストを作成します

ライセンス

このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルをご覧ください。

サポート

問題や機能リクエストについては、GitHub リポジトリで issue を作成してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。