Django Firebase Mcp

Django Firebase Mcp

🚀 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凭证

  1. 访问 Firebase控制台
  2. 选择你的项目(或创建一个新项目)
  3. 导航到 项目设置服务账号
  4. 点击 “生成新的私钥”
  5. 下载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:

# 使用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

选项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

# 运行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工具

🔐 身份验证(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

# 导入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"}]
})

📚 详细文档

本项目包含全面的文档:

  • 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

🎯 下一步计划

  1. 探索独立智能体 - 非常适合快速测试和演示
  2. 阅读完整文档 - 查看 FIREBASE_ADMIN_MCP.md 以获取完整详细信息
  3. 与你的AI智能体集成 - 在你的应用程序中使用MCP工具
  4. 根据需求进行定制 - 扩展额外的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项目设置

🤝 贡献代码

  1. 分叉仓库
  2. 创建功能分支
  3. 测试你的更改
  4. 提交拉取请求

📄 许可证

本项目采用MIT许可证,详情请参阅 LICENSE 文件。


🔥 准备好让你的AI智能体与Firebase一起加速吗?

从独立智能体开始,然后探索完整文档以进行高级使用!

  • 0 关注
  • 0 收藏,20 浏览
  • system 提出于 2025-10-05 20:24

相似服务问题

相关AI产品