一个全面的Django应用,实现了Firebase模型上下文协议(MCP)服务器,使AI代理能够通过标准化协议与Firebase服务进行交互。
在不到5分钟的时间内使用独立的Firebase代理进行测试。
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代理测试你的设置:
# 运行独立代理
python firebase_admin_mcp/standalone_firebase_agent.py
你应该会看到:
🔥 Firebase MCP代理已准备好!
输入'help'查看可用命令,输入'quit'退出。
>
尝试这些命令:
> 列出所有Firebase集合
> 检查Firebase健康状态
> help
> quit
为了完全集成Django:
# 应用迁移
python manage.py migrate
# 创建超级用户(可选)
python manage.py createsuperuser
# 运行Django开发服务器
python manage.py runserver 8001
MCP服务器将在以下地址可用:http://127..0.1:8001/mcp/
# 运行独立的Firebase代理(快速测试)
python firebase_admin_mcp/standalone_firebase_agent.py
# 通过Django运行MCP服务器
python manage.py runserver 8001
# 在标准I/O模式下运行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 - 通过UID获取用户信息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="您是一个具有完整数据库和存储访问权限的Firebase助手。"
)
# 使用代理
response = agent.invoke({
"messages": [{"role": "user", "content": "显示我所有的Firestore集合"}]
})
此项目包含全面的文档:
FIREBASE_ADMIN_MCP.md - 完整的技术文档
STANDALONE_AGENT.md - 独立代理文档
问题: 默认应用不存在错误
解决方案: 验证.env文件中的credentials.json路径
问题: 服务器无法启动
解决方案: 检查端口8001是否可用:netstat -an | findstr :8001
问题: Firebase连接失败 解决方案: 验证控制台中的Firebase服务是否已启用
问题: 导入错误
解决方案: 确保安装了所有依赖项:pip install -r requirements.txt
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代理了吗?
从独立代理开始,然后探索完整的文档以了解高级用法!