🚀 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 - 根据用户 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 - 删除文件
💻 使用示例
基础用法
您可以使用以下代码示例将 Django Firebase MCP 集成到 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 文件。
🔥 准备好使用 Firebase 为您的 AI 代理赋能了吗?
先从独立代理开始,然后阅读完整文档以了解高级用法!