🚀 Django Firebase MCP
このDjangoアプリケーションは、Firebase Model Context Protocol (MCP) サーバーを実装しており、AIエージェントが標準化されたプロトコルを通じてFirebaseサービスとやり取りできるようにします。
🚀 クイックスタート
スタンドアロンのFirebaseエージェントを使用して、5分以内にテスト環境を構築して実行できます。
前提条件
- Python 3.11以上
- Admin SDKが設定されたFirebaseプロジェクト
- Git(オプション)
- Redis(永続的な状態管理に必要、オプション)
1. クローンとセットアップ
git clone https://github.com/your-repo/django-firebase-mcp.git
cd django-firebase-mcp
2. 依存関係のインストール
pip install -r requirements.txt
3. Firebaseのセットアップ
Firebaseの資格情報を取得する
- Firebaseコンソールにアクセスします。
- プロジェクトを選択するか、新しく作成します。
- プロジェクト設定 → サービスアカウントに移動します。
- 「新しい秘密鍵を生成する」 をクリックします。
- JSONファイルをダウンロードし、プロジェクトのルートに
credentials.json として保存します。
Firebaseサービスを有効にする
Firebaseプロジェクトで以下のサービスが有効になっていることを確認してください。
- 認証(ユーザー管理用)
- Firestoreデータベース(ドキュメントの保存用)
- クラウドストレージ(ファイルアップロード用)
4. 環境設定
プロジェクトのルートに .env ファイルを作成します。
# Firebase Configuration
SERVICE_ACCOUNT_KEY_PATH=credentials.json
FIREBASE_STORAGE_BUCKET=your-project-id.appspot.com
# MCP Configuration
MCP_TRANSPORT=http
MCP_HOST=127.0.0.1
MCP_PORT=8001
# Django Settings
DEBUG=True
SECRET_KEY=your-secret-key-here
⚠️ 重要: your-project-id を実際のFirebaseプロジェクトIDに置き換えてください。
5. 状態管理のセットアップ
Firebase MCPエージェントは会話の永続化のために状態管理を使用します。以下のいずれかのオプションを選択してください。
オプションA: Redis(本番環境で推奨)
Redisをポート6379でインストールして実行します。
choco install redis-64
redis-server
.env ファイルに以下を追加します。
# Redis Configuration
REDIS_URL=redis://localhost:6379
USE_REDIS=true
オプションB: InMemorySaver(クイックテスト用)
Redisを使用せずにクイックテストを行う場合、エージェントは自動的にInMemorySaverを使用します。追加の設定は必要ありません。
.env ファイルに以下を追加します。
# メモリベースの状態(永続化なし)
USE_REDIS=false
注意: InMemorySaverは再起動間で会話を保持しませんが、Redisはセッション間で状態を維持します。
6. スタンドアロンエージェントでのクイックテスト
スタンドアロンのFirebaseエージェントを使用してすぐにセットアップをテストします。
python firebase_admin_mcp/standalone_firebase_agent.py
以下のような出力が表示されるはずです。
🔥 Firebase MCP Agent Ready!
Type 'help' for available commands, 'quit' to exit.
>
以下のコマンドを試してみてください。
> List all Firebase collections
> Check Firebase health status
> help
> quit
7. 完全なDjangoセットアップ(オプション)
完全なDjango統合を行う場合は、以下の手順を実行します。
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 8001
MCPサーバーは http://127.0.0.1:8001/mcp/ で利用できます。
✨ 主な機能
MCPサーバーは、3つのカテゴリに分けられた 14のFirebaseツール を提供します。
🔐 認証(4つのツール)
firebase_verify_token - Firebase IDトークンを検証します。
firebase_create_custom_token - カスタム認証トークンを作成します。
firebase_get_user - UIDでユーザー情報を取得します。
firebase_delete_user - ユーザーアカウントを削除します。
📚 Firestoreデータベース(6つのツール)
firestore_list_collections - すべてのコレクションをリストします。
firestore_create_document - 新しいドキュメントを作成します。
firestore_get_document - ドキュメントを取得します。
firestore_update_document - ドキュメントを更新します。
firestore_delete_document - ドキュメントを削除します。
firestore_query_collection - フィルターを使用してクエリを実行します。
🗄️ クラウドストレージ(4つのツール)
storage_list_files - フィルタリングしてファイルをリストします。
storage_upload_file - ファイルをアップロードします。
storage_download_file - ファイルをダウンロードします。
storage_delete_file - ファイルを削除します。
💻 使用例
基本的な使用法
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from firebase_admin_mcp.tools.agents.firebase_mcp_client import ALL_FIREBASE_TOOLS
model = ChatOpenAI(model="gpt-4")
agent = create_react_agent(
model=model,
tools=ALL_FIREBASE_TOOLS,
prompt="You are a Firebase assistant with full database and storage access."
)
response = agent.invoke({
"messages": [{"role": "user", "content": "Show me all my Firestore collections"}]
})
📦 インストール
クイックテスト
サーバーのヘルスチェック
curl http://127.0.0.1:8001/mcp/
Firebaseツールのテスト
curl -X POST http://127.0.0.1:8001/mcp/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "firestore_list_collections",
"arguments": {}
},
"id": 1
}'
📚 ドキュメント
このプロジェクトには包括的なドキュメントが含まれています。
- FIREBASE_ADMIN_MCP.md - 完全な技術ドキュメント
- 詳細なAPIリファレンス
- すべてのツールの仕様
- 高度な設定
- セキュリティに関する考慮事項
- 本番環境へのデプロイガイド
- STANDALONE_AGENT.md - スタンドアロンエージェントのドキュメント
- 独立したFirebaseエージェント
- 完全な機能概要
- 使用例
- 統合パターン
🔧 技術詳細
管理コマンド
コアコマンド
python firebase_admin_mcp/standalone_firebase_agent.py
python manage.py runserver 8001
python manage.py run_mcp --transport stdio
python manage.py run_mcp --transport http --host 127.0.0.1 --port 8001
python manage.py run_standalone_agent
テストコマンド
python firebase_admin_mcp/tests/test_firebase_connection.py
python firebase_admin_mcp/tests/test_mcp_complete.py
python firebase_admin_mcp/tests/demo_firebase_agent.py
python firebase_admin_mcp/demo_standalone_agent.py
トラブルシューティング
一般的な問題と解決策
問題: Default app does not exist エラー
解決策: .env ファイル内の credentials.json のパスを確認してください。
問題: サーバーが起動しない
解決策: ポート8001が使用可能か確認してください: netstat -an | findstr :8001
問題: Firebase接続が失敗する
解決策: コンソールでFirebaseサービスが有効になっていることを確認してください。
問題: インポートエラー
解決策: すべての依存関係がインストールされていることを確認してください: pip install -r requirements.txt
問題: Redis接続が失敗する
解決策: Redisが実行中であることを確認してください: redis-cli ping("PONG" が返されるはずです)
問題: セッション間で状態が保持されない
解決策: Redisの設定を確認するか、InMemorySaverからRedisに切り替えてください。
🎯 次のステップ
- スタンドアロンエージェントを探索する - クイックテストやデモに最適です。
- 完全なドキュメントを読む - FIREBASE_ADMIN_MCP.mdを参照して詳細を確認してください。
- AIエージェントと統合する - アプリケーションでMCPツールを使用してください。
- 必要に合わせてカスタマイズする - 追加のFirebase操作を拡張してください。
📝 プロジェクト構造
django-firebase-mcp/
├── README.md # This file
├── FIREBASE_ADMIN_MCP.md # Complete documentation
├── STANDALONE_AGENT.md # Standalone agent guide
├── requirements.txt # Python dependencies
├── credentials.json # Firebase credentials (you create this)
├── .env # Environment variables (you create this)
├── manage.py # Django management
├── firebase_admin_mcp/ # Main MCP app
│ ├── standalone_firebase_agent.py # Standalone agent
│ ├── tools/ # Firebase MCP tools
│ ├── management/commands/ # Django commands
│ └── tests/ # Test suite
└── django_firebase_mcp/ # Django project settings
🤝 コントリビューション
- リポジトリをフォークします。
- 機能ブランチを作成します。
- 変更をテストします。
- プルリクエストを送信します。
📄 ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
🔥 FirebaseでAIエージェントを強化しましょう!
スタンドアロンエージェントから始めて、高度な使用方法については完全なドキュメントを探索してください!