Django Firebase
STREAMABLE HTTPFirebase MCP服务器集成应用
Firebase MCP服务器集成应用
A comprehensive Django app that implements Firebase Model Context Protocol (MCP) server, enabling AI agents to interact with Firebase services through a standardized protocol.
Get up and running in under 5 minutes with the standalone Firebase agent for testing.
git clone https://github.com/your-repo/django-firebase-mcp.git cd django-firebase-mcp
pip install -r requirements.txt
credentials.json in the project rootMake sure these services are enabled in your Firebase project:
Create a .env file in the project root:
# Firebase Configuration SERVICE_ACCOUNT_KEY_PATH=credentials.json FIREBASE_STORAGE_BUCKET=your-project-id.appspot.com # MCP Configuration MCP_TRANSPORT=http MCP_HOST=127.0.0.1 MCP_PORT=8001 # Django Settings DEBUG=True SECRET_KEY=your-secret-key-here
⚠️ Important: Replace your-project-id with your actual Firebase project ID.
The Firebase MCP agent uses state management for conversation persistence. Choose one option:
Install and run Redis on port 6379:
# Install Redis using Chocolatey choco install redis-64 # Or download from: https://github.com/microsoftarchive/redis/releases # Then run Redis server redis-server
Add to your .env file:
# Redis Configuration REDIS_URL=redis://localhost:6379 USE_REDIS=true
For quick testing without Redis, the agent will automatically use InMemorySaver. No additional setup required.
Add to your .env file:
# Memory-based state (no persistence) USE_REDIS=false
Note: InMemorySaver doesn't persist conversations between restarts, while Redis maintains state across sessions.
Test your setup immediately with the standalone Firebase agent:
# Run the standalone agent python firebase_admin_mcp/standalone_firebase_agent.py
You should see:
🔥 Firebase MCP Agent Ready!
Type 'help' for available commands, 'quit' to exit.
>
Try these commands:
> List all Firebase collections
> Check Firebase health status
> help
> quit
For full Django integration:
# Apply migrations python manage.py migrate # Create superuser (optional) python manage.py createsuperuser # Run Django development server python manage.py runserver 8001
The MCP server will be available at: http://127.0.0.1:8001/mcp/
# Run standalone Firebase agent (quick testing) python firebase_admin_mcp/standalone_firebase_agent.py # Run MCP server via Django python manage.py runserver 8001 # Run MCP server in stdio mode (for MCP clients) python manage.py run_mcp --transport stdio # Run MCP server in HTTP mode python manage.py run_mcp --transport http --host 127.0.0.1 --port 8001 # Run standalone agent via Django management command python manage.py run_standalone_agent
# Test Firebase connectivity python firebase_admin_mcp/tests/test_firebase_connection.py # Test MCP server completeness python firebase_admin_mcp/tests/test_mcp_complete.py # Demo Firebase agent python firebase_admin_mcp/tests/demo_firebase_agent.py # Demo standalone agent python firebase_admin_mcp/demo_standalone_agent.py
The MCP server provides 14 Firebase tools across three categories:
firebase_verify_token - Verify Firebase ID tokensfirebase_create_custom_token - Create custom auth tokensfirebase_get_user - Get user info by UIDfirebase_delete_user - Delete user accountsfirestore_list_collections - List all collectionsfirestore_create_document - Create new documentsfirestore_get_document - Retrieve documentsfirestore_update_document - Update documentsfirestore_delete_document - Delete documentsfirestore_query_collection - Query with filtersstorage_list_files - List files with filteringstorage_upload_file - Upload filesstorage_download_file - Download filesstorage_delete_file - Delete filescurl 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 # Import Firebase tools from firebase_admin_mcp.tools.agents.firebase_mcp_client import ALL_FIREBASE_TOOLS # Create agent with Firebase capabilities 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." ) # Use the agent response = agent.invoke({ "messages": [{"role": "user", "content": "Show me all my Firestore collections"}] })
This project includes comprehensive documentation:
FIREBASE_ADMIN_MCP.md - Complete technical documentation
STANDALONE_AGENT.md - Standalone agent documentation
Problem: Default app does not exist error
Solution: Verify credentials.json path in .env file
Problem: Server won't start
Solution: Check if port 8001 is available: netstat -an | findstr :8001
Problem: Firebase connection fails Solution: Verify Firebase services are enabled in console
Problem: Import errors
Solution: Ensure all dependencies installed: pip install -r requirements.txt
Problem: Redis connection fails
Solution: Verify Redis is running: redis-cli ping (should return "PONG")
Problem: State not persisting between sessions Solution: Check Redis configuration or switch to Redis from InMemorySaver
django-firebase-mcp/
├── README.md # This file
├── FIREBASE_ADMIN_MCP.md # Complete documentation
├── STANDALONE_AGENT.md # Standalone agent guide
├── requirements.txt # Python dependencies
├── credentials.json # Firebase credentials (you create this)
├── .env # Environment variables (you create this)
├── manage.py # Django management
├── firebase_admin_mcp/ # Main MCP app
│ ├── standalone_firebase_agent.py # Standalone agent
│ ├── tools/ # Firebase MCP tools
│ ├── management/commands/ # Django commands
│ └── tests/ # Test suite
└── django_firebase_mcp/ # Django project settings
MIT License - see LICENSE file for details.
🔥 Ready to supercharge your AI agents with Firebase?
Start with the standalone agent, then explore the full documentation for advanced usage!