Django Firebase Mcp

Django Firebase Mcp

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

  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

# 以标准输入输出模式运行 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 - 删除文件

💻 使用示例

基础用法

您可以使用以下代码示例将 Django Firebase MCP 集成到 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 文件。


🔥 准备好使用 Firebase 为您的 AI 代理赋能了吗?

先从独立代理开始,然后阅读完整文档以了解高级用法!

  • 0 关注
  • 0 收藏,34 浏览
  • system 提出于 2025-10-05 19:57

相似服务问题

相关AI产品