🚀 Django Firebase MCP
Django Firebase MCP 是一個全面的 Django 應用程序,它實現了 Firebase 模型上下文協議(MCP)服務器,使 AI 代理能夠通過標準化協議與 Firebase 服務進行交互。
🚀 快速開始
使用獨立的 Firebase 代理進行測試,在 5 分鐘內即可啟動並運行。
前提條件
- Python 3.11 及以上版本
- 配置了管理 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 配置
SERVICE_ACCOUNT_KEY_PATH=credentials.json
FIREBASE_STORAGE_BUCKET=your-project-id.appspot.com
# MCP 配置
MCP_TRANSPORT=http
MCP_HOST=127.0.0.1
MCP_PORT=8001
# Django 設置
DEBUG=True
SECRET_KEY=your-secret-key-here
⚠️ 重要提示
請將 your-project-id
替換為您實際的 Firebase 項目 ID。
5. 狀態管理設置
Firebase MCP 代理使用狀態管理來實現對話持久化。您可以選擇以下其中一種方式:
選項 A:Redis(推薦用於生產環境)
在端口 6379 上安裝並運行 Redis:
choco install redis-64
redis-server
在 .env
文件中添加以下內容:
# Redis 配置
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/
🛠️ 管理命令
核心命令
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
🔧 可用工具
MCP 服務器提供了跨三個類別的 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
- 刪除文件
🧪 快速測試
測試服務器健康狀態
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
}'
💻 使用示例
LangChain 示例
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"}]
})
📚 詳細文檔
本項目包含全面的文檔:
- FIREBASE_ADMIN_MCP.md - 完整的技術文檔
- 詳細的 API 參考
- 所有工具規範
- 高級配置
- 安全注意事項
- 生產部署指南
- STANDALONE_AGENT.md - 獨立代理文檔
- 獨立的 Firebase 代理
- 完整的功能概述
- 使用示例
- 集成模式
🔧 技術細節
常見問題及解決方案
問題 |
解決方案 |
Default app does not exist 錯誤 |
驗證 .env 文件中 credentials.json 的路徑 |
服務器無法啟動 |
檢查端口 8001 是否可用:`netstat -an |
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 # 本文件
├── FIREBASE_ADMIN_MCP.md # 完整文檔
├── STANDALONE_AGENT.md # 獨立代理指南
├── requirements.txt # Python 依賴項
├── credentials.json # Firebase 憑證(需手動創建)
├── .env # 環境變量(需手動創建)
├── manage.py # Django 管理腳本
├── firebase_admin_mcp/ # 主 MCP 應用
│ ├── standalone_firebase_agent.py # 獨立代理
│ ├── tools/ # Firebase MCP 工具
│ ├── management/commands/ # Django 命令
│ └── tests/ # 測試套件
└── django_firebase_mcp/ # Django 項目設置
🤝 貢獻代碼
- 分叉倉庫
- 創建功能分支
- 測試您的更改
- 提交拉取請求
📄 許可證
本項目採用 MIT 許可證,詳情請參閱 LICENSE 文件。
🔥 準備好讓您的 AI 代理與 Firebase 實現強大功能了嗎?
從獨立代理開始,然後探索完整文檔以進行高級使用!