Firebase MCP Server
Enables interaction with Firebase Authentication and Firestore through the MCP protocol, allowing user management and database operations via natural language. Optimized for deployment on Railway.com.
README
Firebase MCP Server for Railway
A Firebase Model Context Protocol (MCP) server designed for deployment on Railway.com using Streamable HTTP transport.
Features
- Firebase Authentication: User management (create, read, update, delete users)
- Firestore Database: Document and collection operations with advanced querying
- HTTP/HTTPS API: Streamable HTTP transport for remote MCP client connections
- Railway Ready: Optimized for Railway.com deployment with proper configuration
Quick Deploy to Railway
Or manually:
- Fork this repository
- Connect to Railway.com
- Set environment variables (see below)
- Deploy!
Environment Variables
Required
Set these in Railway's environment variables:
# Firebase service account as JSON string (recommended for Railway)
FIREBASE_SERVICE_ACCOUNT_JSON='{"type":"service_account","project_id":"your-project",...}'
# OR use file path (less secure for cloud deployment)
# FIREBASE_SERVICE_ACCOUNT_PATH="/path/to/service-account.json"
# Optional API key for authentication
MCP_API_KEY="your-secret-api-key"
Getting Firebase Service Account
- Go to Firebase Console
- Select your project → Settings → Service Accounts
- Click "Generate new private key"
- Copy the entire JSON content and set as
FIREBASE_SERVICE_ACCOUNT_JSON
Local Development
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Edit .env with your Firebase credentials
# Run in development mode
npm run dev
# Build for production
npm run build
npm start
API Endpoints
Once deployed on Railway, your server will have:
- Health Check:
GET https://your-app.railway.app/health - MCP Endpoint:
POST https://your-app.railway.app/mcp
Connecting MCP Clients
Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"firebase-remote": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch", "https://your-app.railway.app/mcp"],
"env": {
"AUTHORIZATION": "Bearer your-secret-api-key"
}
}
}
}
Other MCP Clients
Configure any MCP client to connect to:
- URL:
https://your-app.railway.app/mcp - Transport: Streamable HTTP
- Auth:
Bearer your-secret-api-key(ifMCP_API_KEYis set)
Available Tools
Firebase Authentication
firebase_get_user- Get user by UIDfirebase_create_user- Create new user with email/passwordfirebase_list_users- List all users (with pagination)firebase_delete_user- Delete user by UID
Firestore Database
firebase_get_document- Get single documentfirebase_set_document- Create/overwrite documentfirebase_update_document- Update specific fieldsfirebase_delete_document- Delete documentfirebase_query_collection- Advanced collection queries with filters, ordering, limits
Example Usage
After connecting to Claude Desktop:
"Create a new user with email test@example.com and password secret123"
"Get all documents from the 'products' collection where price > 100, ordered by name"
"Update the user document in 'users' collection with ID 'user123' to set status to 'active'"
Security Considerations
- Always use HTTPS in production (Railway provides this automatically)
- Set
MCP_API_KEYfor authentication - Use Firebase security rules to restrict database access
- Never expose service account keys in client-side code
Deployment Architecture
MCP Client (Claude Desktop)
↓ HTTPS + Streamable HTTP
Railway.com Server
↓ Admin SDK
Firebase Project (Auth + Firestore)
Local vs Official Firebase MCP
| Feature | This Server | Official Firebase CLI MCP |
|---|---|---|
| Deployment | ✅ Railway.com | ❌ Local only (stdio) |
| Transport | ✅ Streamable HTTP | ❌ Stdio only |
| Remote Access | ✅ Yes | ❌ No |
| Tools Count | 9 core tools | 40+ tools |
| Maintenance | Custom | Google maintained |
Use this server for remote/cloud deployments. Use the official Firebase CLI MCP for local development.
Support
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.