🚀 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-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 - 按用户ID获取用户信息
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
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一起加速吗?
从独立智能体开始,然后探索完整文档以进行高级使用!