Django Firebase MCP
一个全面的Django应用程序,实现了Firebase模型上下文协议(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-mcp2.安装依赖项
pip install -r requirements.txt3.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(推荐用于生产环境)
在端口6379上安装并运行Redis:
# Install Redis using Chocolatey
choco install redis-64
# Or download from: https://github.com/microsoftarchive/redis/releases
# Then run Redis server
redis-server添加到您的 .env 文件:
# Redis Configuration
REDIS_URL=redis://localhost:6379
USE_REDIS=true选项B:InMemorySaver(快速测试)
对于没有Redis的快速测试,代理将自动使用InMemorySaver。无需额外设置。
添加到您的 .env 文件:
# Memory-based state (no persistence)
USE_REDIS=false注: InMemorySaver不会在重启之间持久化对话,而Redis会在会话之间保持状态。
6.使用独立代理进行快速测试
立即使用独立的Firebase代理测试您的设置:
# Run the standalone agent
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
> quit7.完整的Django设置(可选)
对于完整的Django集成:
# Apply migrations
python manage.py migrate
# Create superuser (optional)
python manage.py createsuperuser
# Run Django development server
python manage.py runserver 8001MCP服务器将在以下地点提供: http://127.0.0.1:8001/mcp/
🛠️ 管理命令
核心命令
# Run standalone Firebase agent (quick testing)
python firebase_admin_mcp/standalone_firebase_agent.py
# Run MCP server via Django
python manage.py runserver 8001
# Run MCP server in stdio mode (for MCP clients)
python manage.py run_mcp --transport stdio
# Run MCP server in HTTP mode
python manage.py run_mcp --transport http --host 127.0.0.1 --port 8001
# Run standalone agent via Django management command
python manage.py run_standalone_agent测试命令
# Test Firebase connectivity
python firebase_admin_mcp/tests/test_firebase_connection.py
# Test MCP server completeness
python firebase_admin_mcp/tests/test_mcp_complete.py
# Demo Firebase agent
python firebase_admin_mcp/tests/demo_firebase_agent.py
# Demo standalone agent
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
}'🤖 AI代理集成
LangChain示例
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
# Import Firebase tools
from firebase_admin_mcp.tools.agents.firebase_mcp_client import ALL_FIREBASE_TOOLS
# Create agent with Firebase capabilities
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."
)
# Use the agent
response = agent.invoke({
"messages": [{"role": "user", "content": "Show me all my Firestore collections"}]
})📚 文档
该项目包括全面的文件:
- FIREBASE_ADMI_MCP.md -完整的技术文档
- API详细参考 - 所有工具规格 - 高级配置 - 安全注意事项 - 生产部署指南
- STANDALONE_GENT.md -独立代理文档
- 独立的Firebase代理 - 完整的功能概述 - 使用示例 - 集成模式
🔧 故障排除
常见问题
问题: Default app does not exist 错误 解决方案: 验证 credentials.json 路径在 .env 文件
问题: 服务器无法启动 解决方案: 检查端口8001是否可用: netstat -an | findstr :8001
问题: Firebase连接失败 解决方案: 验证控制台中是否启用了Firebase服务
问题: 导入错误 解决方案: 确保安装了所有依赖项: pip install -r requirements.txt
问题: Redis连接失败 解决方案: 验证Redis是否正在运行: redis-cli ping (应返回“PONG”)
问题: 状态在会话之间不持久 解决方案: 检查Redis配置或从InMemorySaver切换到Redis
🎯 接下来是什么?
- 探索独立代理 -非常适合快速测试和演示
- 阅读完整文档 -有关完整详细信息,请参阅FIREBASE_ADMI_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许可证-有关详细信息,请参阅许可证文件。
______________________________________________________________________
🔥 准备好用Firebase为您的AI代理增压了吗?
从独立代理开始,然后浏览完整的文档以了解高级用法!
