Firebase MCP について
Firebase MCP は、Firebase Admin SDK を使って Firebase Authentication のユーザーと Firestore のデータを管理するサーバーです。ユーザー管理やドキュメント操作、バッチ書き込みのツールを提供し、Cursor IDE と Claude Desktop に統合できます。
主な機能
- 01Auth ユーザーの作成・一覧・更新・削除
- 02メール確認リンクとパスワード再設定リンクの生成
- 03Firestore コレクションとドキュメントの参照
- 04Firestore ドキュメントの作成・更新・削除
- 05アトミックな一括書き込み
活用シーン
- 01Firebase Authentication アカウントの管理
- 02Firestore コレクションとドキュメントの確認・変更
- 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 アシスタントとの連携用)
セットアップ
-
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 のセキュリティに関するベストプラクティスに従ってください
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルをご覧ください。
サポート
問題や機能リクエストについては、GitHub リポジトリで issue を作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。