Puoi utilizzare il server Firebase MCP per consentire agli strumenti di sviluppo basati sull'AI di lavorare con i tuoi progetti Firebase e con il codebase della tua app.
Il server Firebase MCP funziona con qualsiasi strumento che possa fungere da client MCP, tra cui: Firebase Studio, interfaccia a riga di comando di Gemini e Gemini Code Assist, Claude Code e Claude Desktop, Cline, Cursor, VS Code Copilot, Windsurf e altri ancora.
Vai alle istruzioni di configurazione
Vantaggi del server MCP
Un editor configurato per utilizzare il server Firebase MCP può utilizzare le sue funzionalità di AI per aiutarti a:
- Creare e gestire progetti Firebase
- Gestire gli utenti di Firebase Authentication
- Utilizzare i dati in Cloud Firestore e Firebase Data Connect
- Recuperare gli schemi di Firebase Data Connect
- Comprendere le regole di sicurezza per Firestore e Cloud Storage for Firebase
- Inviare messaggi con Firebase Cloud Messaging
Alcuni strumenti utilizzano Gemini in Firebase per aiutarti:
- Generare lo schema e le operazioni di Firebase Data Connect
- Chiedere a Gemini informazioni sui prodotti Firebase
Questi sono solo elenchi parziali. Per un elenco completo degli strumenti disponibili per l'editor, consulta la sezione Funzionalità del server.
Configurare il client MCP
Il server Firebase MCP può funzionare con qualsiasi client MCP che supporti I/O standard (stdio) come mezzo di trasporto.
Quando il server Firebase MCP effettua chiamate di strumenti, utilizza le stesse credenziali utente che autorizzano la CLI Firebase nell'ambiente in cui è in esecuzione. Può trattarsi di un utente che ha eseguito l'accesso o delle credenziali predefinite dell'applicazione, a seconda dell'ambiente.
Prima di iniziare
Assicurati di avere un'installazione funzionante di Node.js e npm.
Configurazione di base
Di seguito sono riportate le istruzioni di configurazione di base per l'utilizzo del server Firebase MCP con alcuni strumenti di assistenza AI più diffusi:
Firebase Studio
Per configurare Firebase Studio in modo che utilizzi il server Firebase MCP, modifica o
crea il file di configurazione: .idx/mcp.json
.
Se il file non esiste ancora, crealo facendo clic con il tasto destro del mouse sulla directory principale e selezionando Nuovo file. Aggiungi i seguenti contenuti al file:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Interfaccia a riga di comando di Gemini
Il modo consigliato per configurare la CLI Gemini in modo che utilizzi il server Firebase MCP è installare l'estensione Firebase per la CLI Gemini:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
L'installazione dell'estensione Firebase configura automaticamente il server Firebase MCP e include anche un file di contesto che può migliorare il rendimento dello sviluppo di app Firebase di Gemini.
In alternativa, puoi configurare l'interfaccia a riga di comando Gemini per utilizzare il server Firebase MCP (ma non il file di contesto dell'estensione Firebase) modificando o creando uno dei file di configurazione:
- Nel tuo progetto:
.gemini/settings.json
- Nella tua home directory:
~/.gemini/settings.json
Se il file non esiste ancora, crealo facendo clic con il tasto destro del mouse sulla directory principale e selezionando Nuovo file. Aggiungi i seguenti contenuti al file:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini Code Assist
Il modo consigliato per configurare Gemini Code Assist in modo che utilizzi il server Firebase MCP è installare l'estensione Firebase per l'interfaccia a riga di comando di Gemini:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
L'installazione dell'estensione Firebase configura automaticamente il server Firebase MCP e include anche un file di contesto che può migliorare il rendimento dello sviluppo di app Firebase di Gemini.
In alternativa, puoi configurare Gemini Code Assist in modo che utilizzi il server Firebase MCP (ma non il file di contesto dell'estensione Firebase) modificando o creando uno dei file di configurazione:
- Nel tuo progetto:
.gemini/settings.json
- Nella tua home directory:
~/.gemini/settings.json
Se il file non esiste ancora, crealo facendo clic con il tasto destro del mouse sulla directory principale e selezionando Nuovo file. Aggiungi i seguenti contenuti al file:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Claude
Claude Code
Per configurare Claude Code in modo che utilizzi il server Firebase MCP, esegui questo comando nella cartella dell'app:
claude mcp add firebase npx -- -y firebase-tools@latest mcp
Puoi verificare l'installazione eseguendo:
claude mcp list
Dovrebbe mostrare:
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Claude Desktop
Per configurare Claude Desktop in modo che utilizzi il server MCP Firebase, modifica il file
claude_desktop_config.json
. Puoi aprire o creare questo file dal menu
Claude > Impostazioni. Seleziona la scheda Sviluppatore, quindi fai clic su
Modifica configurazione.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Cline
Per configurare Cline in modo che utilizzi il server MCP di Firebase, modifica il file
cline_mcp_settings.json
. Puoi aprire o creare questo file facendo clic sull'icona
dei server MCP nella parte superiore del riquadro Cline, quindi facendo clic sul pulsante
Configura server MCP.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"],
"disabled": false
}
}
}
Cursore
Per configurare Cursor in modo che utilizzi il server MCP Firebase, modifica il file
.cursor/mcp.json
(per configurare solo un progetto specifico) o il file
~/.cursor/mcp.json
(per rendere disponibile il server MCP in tutti i progetti):
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
VS Code Copilot
Per configurare un singolo progetto, modifica il file .vscode/mcp.json
nell'area di lavoro:
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Per rendere disponibile il server in ogni progetto che apri, modifica le impostazioni utente:
"mcp": {
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Windsurf
Per configurare Windsurf Editor, modifica il file
~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Configurazione facoltativa
Oltre alla configurazione di base per ogni client, mostrata in precedenza, esistono due parametri facoltativi che puoi specificare:
--dir ABSOLUTE_DIR_PATH
: il percorso assoluto di una directory contenentefirebase.json
, per impostare un contesto di progetto per il server MCP. Se non viene specificato, gli strumentiget_project_directory
eset_project_directory
diventano disponibili e la directory predefinita sarà la directory di lavoro in cui è stato avviato il server MCP.--only FEATURE_1,FEATURE_2
: un elenco separato da virgole dei gruppi di funzionalità da attivare. Utilizzalo per limitare gli strumenti esposti solo alle funzionalità che utilizzi attivamente. Tieni presente che gli strumenti di base sono sempre disponibili.
Ad esempio:
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Funzionalità del server MCP
Il server MCP Firebase fornisce tre diverse categorie di funzionalità MCP:
Prompt: una raccolta di prompt precompilati che puoi eseguire; sono ottimizzati per sviluppare ed eseguire un'app con Firebase
Strumenti: un insieme di strumenti destinati all'uso da parte dei LLM che li aiutano a lavorare direttamente con il tuo progetto Firebase (con la tua approvazione).
Risorse: file di documentazione destinati all'uso da parte degli LLM per fornire loro maggiori indicazioni e contesto per completare un'attività o un obiettivo
Prompt
Il server Firebase MCP include una libreria di prompt precompilati ottimizzati per lo sviluppo e l'esecuzione di un'app con Firebase. Puoi eseguire questi prompt per completare varie attività o obiettivi comuni.
La tabella seguente descrive i prompt resi disponibili dal server MCP.
La maggior parte degli strumenti di sviluppo che supportano MCP offre un modo pratico per eseguire questi prompt. Ad esempio, Gemini CLI rende questi prompt disponibili come comandi slash:
/firebase:init
Nella CLI Gemini, inizia a digitare /firebase:
per visualizzare un elenco dei comandi disponibili.
Nome del prompt | Gruppo di caratteristiche | Descrizione |
---|---|---|
firebase:deploy | core | Utilizza questo comando per eseguire il deployment delle risorse su Firebase. Argomenti: <prompt> (facoltativo): eventuali istruzioni specifiche che vuoi fornire sul deployment |
firebase:init | core | Utilizza questo comando per configurare i servizi Firebase, come le funzionalità di backend e AI. |
firebase:consult | core | Utilizza questo comando per consultare l'assistente Firebase con accesso alla documentazione dettagliata e aggiornata della piattaforma Firebase. Argomenti: <prompt>: una domanda da passare al modello Gemini in Firebase |
crashlytics:connect | crashlytics | Accedere ai dati Crashlytics di un'applicazione Firebase. |
Strumenti
Il server Firebase MCP fornisce anche una serie di strumenti destinati all'uso da parte dei LLM che li aiutano a interagire direttamente con il tuo progetto Firebase (con la tua approvazione). A differenza dei prompt, questi strumenti non vengono chiamati direttamente; piuttosto, i modelli che supportano la chiamata di strumenti (come Gemini, Claude e GPT) possono chiamarli automaticamente per eseguire attività di sviluppo quando necessario.
La tabella seguente descrive gli strumenti resi disponibili dal server MCP.
Nome dello strumento | Gruppo di caratteristiche | Descrizione |
---|---|---|
firebase_login | core | Utilizzalo per consentire all'utente di accedere all'interfaccia a riga di comando di Firebase e al server Firebase MCP. Per creare e utilizzare i progetti Firebase è necessario un Account Google e l'accesso. |
firebase_logout | core | Utilizza questo comando per disconnettere l'utente dall'interfaccia a riga di comando di Firebase e dal server Firebase MCP. |
firebase_validate_security_rules | core | Utilizza questo strumento per controllare la sintassi e gli errori di convalida delle regole di sicurezza Firebase per Firestore, Storage o Realtime Database. |
firebase_get_project | core | Utilizza questo comando per recuperare informazioni sul progetto Firebase attualmente attivo. |
firebase_list_apps | core | Utilizza questo comando per recuperare un elenco delle app Firebase registrate nel progetto Firebase attualmente attivo. Le app Firebase possono essere iOS, Android o web. |
firebase_list_projects | core | Utilizza questo metodo per recuperare un elenco dei progetti Firebase a cui l'utente che ha eseguito l'accesso ha accesso. |
firebase_get_sdk_config | core | Utilizza questo metodo per recuperare le informazioni di configurazione di Firebase per un'app Firebase. Devi specificare UNA piattaforma O l'ID app Firebase per un'app Firebase registrata nel progetto Firebase attualmente attivo. |
firebase_create_project | core | Utilizza questo strumento per creare un nuovo progetto Firebase. |
firebase_create_app | core | Utilizza questa opzione per creare una nuova app Firebase nel progetto Firebase attualmente attivo. Le app Firebase possono essere iOS, Android o web. |
firebase_create_android_sha | core | Utilizza questo comando per aggiungere l'hash del certificato SHA specificato all'app Firebase per Android specificata. |
firebase_get_environment | core | Utilizza questo comando per recuperare la configurazione dell'ambiente Firebase corrente per la CLI Firebase e il server Firebase MCP, inclusi l'utente autenticato corrente, la directory del progetto, il progetto Firebase attivo e altro ancora. |
firebase_update_environment | core | Utilizza questo comando per aggiornare la configurazione dell'ambiente per la CLI Firebase e il server Firebase MCP, ad esempio la directory del progetto, il progetto attivo, l'account utente attivo, l'accettazione dei Termini di servizio e altro ancora. Utilizza firebase_get_environment per visualizzare l'ambiente attualmente configurato. |
firebase_init | core | Utilizza questo comando per inizializzare i servizi Firebase selezionati nello spazio di lavoro (database Cloud Firestore, Firebase Data Connect, Firebase Realtime Database, Firebase AI Logic). Tutti i servizi sono facoltativi; specifica solo i prodotti che vuoi configurare. Puoi inizializzare nuove funzionalità in una directory di progetto esistente, ma la reinizializzazione di una funzionalità esistente potrebbe sovrascrivere la configurazione. Per eseguire il deployment delle funzionalità inizializzate, esegui il comando firebase deploy dopo lo strumento firebase_init . |
firebase_get_security_rules | core | Utilizzalo per recuperare le regole di sicurezza per un servizio Firebase specificato. Se nel prodotto sono presenti più istanze del servizio, vengono restituite le regole per l'istanza predefinita. |
firebase_read_resources | core | Utilizza questo comando per leggere i contenuti delle risorse firebase:// o elencare le risorse disponibili. |
firestore_delete_document | firestore | Utilizza questo comando per eliminare documenti Firestore da un database nel progetto corrente in base ai percorsi completi dei documenti. Utilizza questa opzione se conosci il percorso esatto di un documento. |
firestore_get_documents | firestore | Utilizza questo metodo per recuperare uno o più documenti Firestore da un database nel progetto corrente in base ai percorsi completi dei documenti. Utilizza questa opzione se conosci il percorso esatto di un documento. |
firestore_list_collections | firestore | Utilizza questo comando per recuperare un elenco di raccolte da un database Firestore nel progetto attuale. |
firestore_query_collection | firestore | Utilizza questo metodo per recuperare uno o più documenti Firestore da una raccolta di un database nel progetto corrente in base a una raccolta con un percorso completo del documento. Utilizza questa opzione se conosci il percorso esatto di una raccolta e la clausola di filtro che vuoi applicare al documento. |
auth_get_users | autorizzazione | Utilizza questo metodo per recuperare uno o più utenti Firebase Auth in base a un elenco di UID o di indirizzi email. |
auth_update_user | autorizzazione | Utilizza questa opzione per disattivare, attivare o impostare un'attestazione personalizzata sull'account di un utente specifico. |
auth_set_sms_region_policy | autorizzazione | Utilizza questo criterio per impostare un criterio per le regioni SMS per Firebase Authentication in modo da limitare le regioni che possono ricevere messaggi di testo in base a un elenco di codici paese CONSENTITI o NON CONSENTITI. Se impostato, questo criterio sostituirà tutti i criteri esistenti. |
dataconnect_build | dataconnect | Utilizza questo comando per compilare lo schema, le operazioni e/o i connettori di Firebase Data Connect e verificare la presenza di errori di compilazione. |
dataconnect_generate_schema | dataconnect | Utilizza questo strumento per generare uno schema Firebase Data Connect in base alla descrizione di un'app fornita dagli utenti. |
dataconnect_generate_operation | dataconnect | Utilizza questo strumento per generare una singola query o mutazione di Firebase Data Connect in base allo schema attualmente implementato e al prompt fornito. |
dataconnect_list_services | dataconnect | Utilizza questo comando per elencare i servizi Firebase Data Connect locali e di backend esistenti |
dataconnect_execute | dataconnect | Utilizza questo comando per eseguire un'operazione GraphQL su un servizio Data Connect o sul relativo emulatore. |
storage_get_object_download_url | archiviazione | Utilizza questo metodo per recuperare l'URL di download di un oggetto in un bucket Cloud Storage per Firebase. |
messaging_send_message | messaggistica | Utilizza questo campo per inviare un messaggio a un token di registrazione o a un argomento Firebase Cloud Messaging. In una chiamata specifica può essere fornito SOLO UNO dei seguenti valori: registration_token o topic . |
functions_get_logs | funzioni | Utilizza questo metodo per recuperare una pagina di voci di log di Cloud Functions utilizzando i filtri avanzati di Google Cloud Logging. |
remoteconfig_get_template | remoteconfig | Utilizza questo comando per recuperare il modello Firebase Remote Config specificato dal progetto Firebase attualmente attivo. |
remoteconfig_update_template | remoteconfig | Utilizza questo comando per pubblicare un nuovo modello di configurazione remota o eseguire il rollback a una versione specifica del progetto |
crashlytics_create_note | crashlytics | Aggiungere una nota a un problema di Crashlytics. |
crashlytics_delete_note | crashlytics | Eliminare una nota da un problema di Crashlytics. |
crashlytics_get_issue | crashlytics | Recupera i dati per un problema di Crashlytics, che possono essere utilizzati come punto di partenza per il debug. |
crashlytics_list_events | crashlytics | Utilizza questo campo per elencare gli eventi più recenti che corrispondono ai filtri specificati. Può essere utilizzato per recuperare arresti anomali ed eccezioni di esempio per un problema, che includeranno stack trace e altri dati utili per il debug. |
crashlytics_batch_get_events | crashlytics | Recupera eventi specifici in base al nome della risorsa. Può essere utilizzato per recuperare arresti anomali ed eccezioni di esempio per un problema, che includeranno stack trace e altri dati utili per il debug. |
crashlytics_list_notes | crashlytics | Utilizza questo campo per elencare tutte le note relative a un problema in Crashlytics. |
crashlytics_get_top_issues | crashlytics | Utilizza questo report per conteggiare gli eventi e gli utenti distinti interessati, raggruppati per problema. I gruppi sono ordinati in base al conteggio degli eventi, in ordine decrescente. Conta solo gli eventi che corrispondono ai filtri specificati. |
crashlytics_get_top_variants | crashlytics | Conteggia gli eventi e gli utenti interessati distinti, raggruppati per variante del problema. I gruppi sono ordinati in base al conteggio degli eventi, in ordine decrescente. Conta solo gli eventi che corrispondono ai filtri specificati. |
crashlytics_get_top_versions | crashlytics | Conteggia gli eventi e gli utenti interessati distinti, raggruppati per versione. I gruppi sono ordinati in base al conteggio degli eventi, in ordine decrescente. Conta solo gli eventi che corrispondono ai filtri specificati. |
crashlytics_get_top_apple_devices | crashlytics | Conteggia gli eventi e gli utenti interessati distinti, raggruppati per dispositivo Apple. I gruppi sono ordinati in base al conteggio degli eventi, in ordine decrescente. Conta solo gli eventi che corrispondono ai filtri specificati. Rilevante solo per le applicazioni iOS, iPadOS e macOS. |
crashlytics_get_top_android_devices | crashlytics | Conteggia gli eventi e gli utenti interessati distinti, raggruppati per dispositivo Android. I gruppi sono ordinati in base al conteggio degli eventi, in ordine decrescente. Conta solo gli eventi che corrispondono ai filtri specificati. Pertinente solo per le applicazioni Android. |
crashlytics_get_top_operating_systems | crashlytics | Conteggia gli eventi e gli utenti interessati distinti, raggruppati per sistema operativo. I gruppi sono ordinati in base al conteggio degli eventi, in ordine decrescente. Conta solo gli eventi che corrispondono ai filtri specificati. |
crashlytics_update_issue | crashlytics | Utilizza questo campo per aggiornare lo stato del problema Crashlytics. |
apphosting_fetch_logs | apphosting | Utilizza questo comando per recuperare i log più recenti per un backend App Hosting specificato. Se viene specificato buildLogs , vengono restituiti i log della procedura di build per l'ultima build. I log più recenti sono elencati per primi. |
apphosting_list_backends | apphosting | Utilizza questo comando per recuperare un elenco dei backend di App Hosting nel progetto attuale. Un elenco vuoto indica che non sono presenti backend. uri è l'URL pubblico del backend. Un backend funzionante avrà un array managed_resources che conterrà una voce run_service . run_service.service è il nome della risorsa del servizio Cloud Run che gestisce il backend di hosting delle app. L'ultimo segmento del nome è l'ID servizio. domains è l'elenco dei domini associati al backend. Hanno il tipo CUSTOM o DEFAULT . Ogni backend deve avere un dominio DEFAULT . Il dominio effettivo che un utente utilizzerebbe per connettersi al backend è l'ultimo parametro del nome della risorsa di dominio. Se un dominio personalizzato è configurato correttamente, avrà stati che terminano con ACTIVE . |
realtimedatabase_get_data | realtimedatabase | Utilizza questo metodo per recuperare i dati dalla posizione specificata in un database Firebase Realtime Database. |
realtimedatabase_set_data | realtimedatabase | Utilizza questo metodo per scrivere dati nella posizione specificata in un Firebase Realtime Database. |
Risorse
Il server MCP fornisce risorse, ovvero file di documentazione destinati all'utilizzo da parte dei LLM. I modelli che supportano l'utilizzo delle risorse includeranno automaticamente le risorse pertinenti nel contesto della sessione.
La tabella seguente descrive le risorse rese disponibili dal server MCP.
Nome della risorsa | Descrizione |
---|---|
backend_init_guide | Guida all'inizializzazione del backend Firebase: guida l'agente di codifica alla configurazione dei servizi di backend Firebase nel progetto corrente |
ai_init_guide | Guida di inizializzazione di Firebase GenAI: guida l'agente di codifica alla configurazione delle funzionalità di AI generativa nel progetto corrente utilizzando Firebase |
data_connect_init_guide | Guida all'inizializzazione di Firebase Data Connect: guida l'agente di codifica alla configurazione di Data Connect per l'accesso a PostgreSQL nel progetto corrente |
firestore_init_guide | Guida all'inizializzazione di Firestore: guida l'agente di codifica alla configurazione di Firestore nel progetto corrente |
firestore_rules_init_guide | Guida iniziale alle regole di Firestore: guida l'agente di codifica alla configurazione delle regole di sicurezza di Firestore nel progetto |
rtdb_init_guide | Guida all'inizializzazione di Firebase Realtime Database: guida l'agente di codifica alla configurazione di Realtime Database nel progetto corrente |
auth_init_guide | Guida all'inizializzazione di Firebase Authentication: guida l'agente di codifica alla configurazione di Firebase Authentication nel progetto corrente |
hosting_init_guide | Guida al deployment di Firebase Hosting: guida l'agente di codifica durante il deployment in Firebase Hosting nel progetto corrente |
documenti | Documenti Firebase: carica contenuti di testo normale dalla documentazione di Firebase, ad es. https://firebase.google.com/docs/functions diventa firebase://docs/functions |