{"name":"io.github.dasasian/firebase-mcp-server","slug":"dasasian-firebase-mcp-server","title":null,"description":"MCP server for Firebase — Firestore, Storage, Auth, and Cloud Logging, with schema validation.","url":"https://mcp.market/server/dasasian-firebase-mcp-server","rating":null,"grade":"A","score":86,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":21,"stars":0,"forks":0,"downloads_week":35,"last_push_at":"2026-08-16T19:20:27.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/dasasian/firebase-mcp-server","website":"https://dasasian.com/firebase-mcp-server","version":"1.1.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@dasasian/firebase-mcp-server","version":"1.1.0","transport":{"type":"stdio"}}],"tools":[{"name":"firebase_auth_create_user","description":"SQL-style user creation. Maps to: INSERT INTO users (email, password, displayName, customClaims) VALUES (...). Creates new Firebase Auth user with optional properties. Use customClaims to set authorization data on creation (e.g., {admin: true, orgId: \"org_123\"}). No client-side rate limiting.","write_action":true,"price_micros":0,"input_schema":null},{"name":"firebase_auth_delete_user","description":"SQL-style user deletion. Maps to: DELETE FROM users WHERE email=X OR uid=X. Permanently delete Firebase Auth user by email or uid. IRREVERSIBLE - user authentication and data will be permanently removed. Returns details of deleted user for confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"firebase_auth_get_user","description":"SQL-style single user lookup. Maps to: SELECT * FROM users WHERE email=X OR uid=X. Get Firebase Auth user by email or uid. Returns full user data including customClaims (authorization data), account status, and metadata. Use before updating to see current state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_auth_list_users","description":"SQL-style user listing with filtering. Maps to: SELECT * FROM users WHERE ... LIMIT n. Lists Firebase Auth users with client-side filtering support. Supports email LIKE patterns (%@domain.com) and customClaims matching ({admin: true}). Auto-fetches all pages. Use for discovery before updating users.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_auth_revoke_sessions","description":"SQL-style session revocation. Maps to: UPDATE users SET tokensValidAfterTime = NOW() WHERE uid = X. Revokes all refresh tokens for a Firebase Auth user, forcing them to sign out on all devices. User must sign in again to get new tokens. Use for security (compromised account, force logout) or administrative actions (suspend access temporarily).","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_auth_update_user","description":"SQL-style user update with claims merging. Maps to: UPDATE users SET customClaims.admin=true, email=X WHERE uid=Y. Updates Firebase Auth user properties and/or customClaims. Merges customClaims (doesn't replace) - only specified fields are updated. Use dot notation for claims: {\"customClaims.admin\": true} or direct object: {\"customClaims\": {admin: true}}. Set to null to remove: {\"customClaims.admi","write_action":true,"price_micros":0,"input_schema":null},{"name":"firebase_storage_cp","description":"Copy file within Firebase Storage bucket. Maps to Unix: cp source dest. Creates duplicate of file at new location. Original file remains unchanged. Use for backups, creating variants, or organizing files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_find","description":"Search files in Firebase Storage with filters. Maps to Unix: find /path -name \"*.png\" -size +1M. Supports pattern matching (wildcards), content type filter, size filters, and date filters. Use for discovery like \"find all large images\" or \"find PDFs from last month\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_get_access","description":"Check if Firebase Storage file is publicly accessible. Returns isPublic status and public URL if available. Use before sharing links to verify access permissions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_get_url","description":"Get shareable download URL for Firebase Storage file. Returns public URL if file is public, otherwise generates signed URL with expiration. Use to share files with users or generate links for display.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_list_buckets","description":"List all Firebase Storage buckets in the project. Shows bucket names, locations, and storage classes. The default bucket is highlighted. Use this to discover available buckets before performing operations on non-default buckets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_ls","description":"List files in Firebase Storage bucket. Maps to Unix: ls -la /path. Lists files with metadata including name, size, contentType, timestamps, and public URLs if available. Use for discovering files before read/download operations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_mv","description":"Move or rename file within Firebase Storage bucket. Maps to Unix: mv source dest. File is moved to new location and deleted from source. Use for organizing files, renaming, or moving to different folders.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_push","description":"Upload entire directory from local filesystem to Firebase Storage bucket. Maps to Unix: rsync local remote. Uploads all files in local directory to bucket path, preserving folder structure. Supports pattern filtering (e.g., \"*.json\" to upload only JSON files). Use for bulk upload, backup, or publishing processed files.","write_action":true,"price_micros":0,"input_schema":null},{"name":"firebase_storage_read","description":"Download Firebase Storage file to temp directory for analysis. Maps to Unix: cat file. Downloads file to /tmp/firebase-{uuid}-{filename} and returns tempPath. Use Read tool on tempPath to analyze content (images, PDFs, text files, etc.). Enables Claude to work with Storage files like local files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_rm","description":"Delete file from Firebase Storage bucket. Maps to Unix: rm file. Permanently removes file from storage. Returns deleted file details for confirmation. IRREVERSIBLE operation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"firebase_storage_set_access","description":"Set Firebase Storage file access permissions. Make file publicly accessible (public: true) or private (public: false). Public files have permanent URLs anyone can access. Private files require signed URLs with expiration. Use for controlling file visibility.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_stat","description":"Get file metadata from Firebase Storage. Maps to Unix: stat file. Returns detailed information about file including size, content type, creation/update times, MD5 hash. Use to check if file exists or get file info without downloading.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_sync","description":"Download entire directory from Firebase Storage to local filesystem. Maps to Unix: rsync remote local. Downloads all files in remote directory to local path, preserving folder structure. Use for bulk backup, local development with real data, or batch processing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firebase_storage_upload","description":"Upload local file to Firebase Storage bucket. Maps to Unix: cp local remote. Uploads file from local filesystem to bucket path. Auto-detects contentType from extension if not specified. Use after creating/editing files locally (via Write tool) to sync to cloud storage.","write_action":true,"price_micros":0,"input_schema":null},{"name":"firestore_count","description":"Count documents in a collection WITHOUT fetching them. Achieves 99.96% context savings vs fetching all documents. Supports where clauses for filtered counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_delete","description":"SQL-style document deletion. DELETE FROM collection WHERE conditions. Supports single document (id) or batch delete (where). Safety: requires WHERE or id, enforces limits (default: 100, max: 500), supports dryRun for preview. Returns deleted document paths.","write_action":true,"price_micros":0,"input_schema":null},{"name":"firestore_export","description":"Export an entire Firestore collection to JSON. Works with or without schemas (discovery mode). Automatically serializes timestamps. Use limit to control size.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_import","description":"Import document data to Firestore. DRY-RUN BY DEFAULT - shows diff before executing. Set dryRun=false to execute. Validates data if schema available.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_query","description":"Query a Firestore collection with index-aware validation. Validates complex queries against firestore.indexes.json and suggests missing indexes. Supports where, orderBy, and limit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_query_collection_group","description":"Query across all instances of a subcollection (collection group query). For example, query all \"events\" subcollections across all organizations and products. Note: Collection group queries require indexes in production.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_query_select","description":"SQL-style query with optional field projection. Maps to: SELECT fields FROM collection WHERE conditions ORDER BY fields LIMIT n. Supports LIKE operator for case-insensitive pattern matching. Automatically falls back to client-side scan when LIKE used or index missing. If unsure which collection to query, call firestore_show_collections first to see available collections. Omit \"fields\" to return al","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_read","description":"Read a single document from Firestore. Automatically serializes timestamps to ISO 8601 format. Optionally validates against schema if available.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_select","description":"Fetch only specific fields from a document (field projection). Achieves 90% context savings by excluding unnecessary fields. Perfect for checking specific values without loading entire documents.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_show_collections","description":"Maps to SQL: SHOW TABLES. Lists all available Firestore collections and subcollections with their paths and descriptions. ALWAYS call this FIRST when the user asks about data without specifying exact collection names (e.g., \"bar locations\" → check if \"barLocations\" collection exists, \"products\" → see all product collections). Helps you discover collection names and avoid guessing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_stats","description":"Get collection statistics and schema overview WITHOUT loading all documents. Achieves 99.3% context savings. Returns document count, field coverage, and inferred schema from samples. Perfect for exploration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_sum","description":"Sum a numeric field across a collection WITHOUT fetching full documents. Achieves 99.91% context savings. Also returns count and average. Perfect for analytics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"firestore_update","description":"SQL-style update for one or more fields. Maps to: UPDATE path SET field1=value1, field2=value2 (single) or UPDATE collection SET field1=value1 WHERE conditions (batch). Supports dryRun for preview. Safety: enforces limits (default: 100, max: 500).","write_action":true,"price_micros":0,"input_schema":null},{"name":"firestore_validate","description":"Validate a Firestore document against its schema. Shows detailed errors, warnings, and field status breakdown (official/experimental/legacy/unknown). Requires schema to be defined.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":86,"grade":"A","scanned_at":"2026-09-23T11:51:09.746Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T11:51:09.746Z","components":{"code":{"score":25,"max":25,"notes":["103 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 38 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@dasasian/firebase-mcp-server","version":"1.1.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":7,"publishedAt":"2026-08-16T07:28:15.899Z","repositoryUrl":"git+https://github.com/dasasian/firebase-mcp-server.git","weeklyDownloads":35}],"repo":{"found":true,"owner":"dasasian","repo":"firebase-mcp-server","archived":false,"pushedAt":"2026-08-16T19:20:27Z","stars":0,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/267760055?v=4","ownerCreatedAt":"2026-03-12T20:19:14Z","license":"MIT"},"icon":{"url":"https://dasasian.com/favicon.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":35,"license":"MIT","lastPushAt":"2026-08-16T19:20:27.000Z","score":21}}}},"grade_history":[],"reviews":[]}