这是一个全面的Django应用程序,实现了Firebase模型上下文协议(MCP)服务器,使AI智能体能够通过标准化协议与Firebase服务进行交互。
使用独立的Firebase智能体进行测试,在5分钟内即可启动并运行。
git clone https://github.com/your-repo/django-firebase-mcp.git
cd django-firebase-mcp
pip install -r requirements.txt
credentials.json确保你的Firebase项目中启用了以下服务:
在项目根目录下创建一个 .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。
Firebase MCP智能体使用状态管理来实现对话持久化。选择以下其中一个选项:
在端口6379上安装并运行Redis:
# 使用Chocolatey安装Redis
choco install redis-64
# 或者从以下地址下载:https://github.com/microsoftarchive/redis/releases
# 然后运行Redis服务器
redis-server
在你的 .env 文件中添加以下内容:
# Redis配置
REDIS_URL=redis://localhost:6379
USE_REDIS=true
如果不使用Redis进行快速测试,智能体将自动使用InMemorySaver,无需额外设置。
在你的 .env 文件中添加以下内容:
# 基于内存的状态(无持久化)
USE_REDIS=false
💡 使用建议
InMemorySaver在重启之间不会持久化对话,而Redis可以在会话之间保持状态。
立即使用独立的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
若要进行完整的Django集成:
# 应用数据库迁移
python manage.py migrate
# 创建超级用户(可选)
python manage.py createsuperuser
# 运行Django开发服务器
python manage.py runserver 8001
MCP服务器将在以下地址可用:http://127.0.0.1:8001/mcp/
# 运行独立的Firebase智能体(快速测试)
python firebase_admin_mcp/standalone_firebase_agent.py
# 通过Django运行MCP服务器
python manage.py runserver 8001
# 以stdio模式运行MCP服务器(适用于MCP客户端)
python manage.py run_mcp --transport stdio
# 以HTTP模式运行MCP服务器
python manage.py run_mcp --transport http --host 127.0.0.1 --port 8001
# 通过Django管理命令运行独立智能体
python manage.py run_standalone_agent
# 测试Firebase连接
python firebase_admin_mcp/tests/test_firebase_connection.py
# 测试MCP服务器完整性
python firebase_admin_mcp/tests/test_mcp_complete.py
# 演示Firebase智能体
python firebase_admin_mcp/tests/demo_firebase_agent.py
# 演示独立智能体
python firebase_admin_mcp/demo_standalone_agent.py
MCP服务器提供了跨三个类别的 14个Firebase工具:
firebase_verify_token - 验证Firebase ID令牌firebase_create_custom_token - 创建自定义身份验证令牌firebase_get_user - 按用户ID获取用户信息firebase_delete_user - 删除用户账户firestore_list_collections - 列出所有集合firestore_create_document - 创建新文档firestore_get_document - 检索文档firestore_update_document - 更新文档firestore_delete_document - 删除文档firestore_query_collection - 使用过滤器进行查询storage_list_files - 带过滤条件列出文件storage_upload_file - 上传文件storage_download_file - 下载文件storage_delete_file - 删除文件curl http://127.0.0.1:8001/mcp/
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
}'
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
# 导入Firebase工具
from firebase_admin_mcp.tools.agents.firebase_mcp_client import ALL_FIREBASE_TOOLS
# 创建具有Firebase功能的智能体
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"}]
})
本项目包含全面的文档:
| 问题描述 | 解决方案 |
|---|---|
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 以获取完整详细信息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一起加速吗?
从独立智能体开始,然后探索完整文档以进行高级使用!