Skip to main content
Glama
NigelThorne

Firebase Live MCP Server

by NigelThorne
README.md
# Firebase Live MCP Server

MCP server for querying live Firebase projects - Firestore and Cloud Function logs.

## Setup

```bash
npm install
npm run build
```

## Authentication

Uses Application Default Credentials. Run:

```bash
gcloud auth application-default login
```

## Project Detection

The server auto-detects the Firebase project from `.firebaserc` in the current working directory.

Override with env var:

```bash
FIREBASE_PROJECT_ID=my-project
```

## Usage with Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "firebase-live": {
      "command": "node",
      "args": ["/Users/nigelthorne/code/firebase_live_mcp_server/dist/index.js"],
      "cwd": "/path/to/your/firebase/project",
      "env": {
        "FIREBASE_PROJECT_ID": "optional-override"
      }
    }
  }
}
```

The `cwd` should point to a directory with `.firebaserc` for auto-detection.

## Tools

| Tool | Description |
|------|-------------|
| `list_collections` | List top-level Firestore collections |
| `list_subcollections` | List subcollections of a document |
| `list_documents` | List documents in a collection |
| `get_document` | Get a single document by path |
| `query_collection` | Query with filters, ordering, limit |
| `get_function_logs` | Get Cloud Function logs with grep filtering |

### get_function_logs options

- `pattern` - Regex to filter log messages
- `severity` - Minimum level: DEBUG/INFO/NOTICE/WARNING/ERROR/CRITICAL
- `functionName` - Filter by function name
- `limit` - Max entries (default 50)
- `hoursAgo` - Fetch logs from last N hours (default 1)

## Required Permissions

Your gcloud account needs:

- `roles/datastore.viewer` - Firestore read access
- `roles/logging.viewer` - Cloud Logging read access