Puoi utilizzare il server Firebase MCP per consentire agli strumenti di sviluppo basati sull'AI di funzionare con i tuoi progetti Firebase. Il server Firebase MCP funziona con qualsiasi strumento che possa fungere da client MCP, tra cui Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor e altri.
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.
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 di credenziali predefinite dell'applicazione, a seconda dell'ambiente.
Prima di iniziare
Assicurati di avere un'installazione funzionante di Node.js e npm.
Autentica la CLI Firebase eseguendo questo comando:
npx -y firebase-tools@latest login --reauth
Il server Firebase MCP utilizza l'interfaccia a riga di comando per gestire l'autenticazione con i tuoi progetti Firebase. Prima di utilizzare il server MCP, devi eseguire l'autenticazione con la CLI. Se provi a utilizzare il server senza accedere o se il tuo token di autenticazione è scaduto, il server stamperà un messaggio di errore che ti chiederà di eseguire nuovamente l'autenticazione.
Configurare il client MCP
Il server Firebase MCP può funzionare con qualsiasi client MCP che supporti I/O standard (stdio) come mezzo di trasporto. Ecco istruzioni specifiche per alcuni strumenti comuni:
Configurazione di base
Claude Desktop
Per configurare Claude Desktop in modo che utilizzi il server Firebase MCP, 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", "experimental:mcp"]
}
}
}
Cline
Per configurare Cline in modo che utilizzi il server Firebase MCP, modifica il file
cline_mcp_settings.json
. Puoi aprire o creare questo file facendo clic sull'icona
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", "experimental: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", "experimental:mcp"]
}
}
Firebase Studio
Per configurare Firebase Studio in modo che utilizzi il server Firebase MCP, modifica o crea i file di configurazione:
- La chat di Gemini in Firebase utilizza
.idx/mcp.json
. - Gemini CLI utilizza
.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", "experimental:mcp"]
}
}
}
Visual Studio Code Copilot
Per configurare un singolo progetto, modifica il file .vscode/mcp.json
nel tuo
spazio di lavoro:
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental: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", "experimental:mcp"]
}
}
}
Editor di windsurf
Per configurare Windsurf Editor, modifica il file
~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
Configurazione facoltativa
Oltre alla configurazione di base per ogni client, mostrata in precedenza, puoi specificare due parametri facoltativi:
--dir ABSOLUTE_DIR_PATH
: il percorso assoluto di una directory contenentefirebase.json
, per impostare un contesto di progetto per il server MCP. Se non specificati, 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 di 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", "experimental:mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Funzionalità del server MCP
Nome dello strumento | Gruppo di caratteristiche | Descrizione |
---|---|---|
firebase_get_project | core | Recupera informazioni sul progetto Firebase attualmente attivo. |
firebase_list_apps | core | Recupera le app registrate nel progetto Firebase corrente. |
firebase_get_admin_sdk_config | core | Recupera la configurazione dell'SDK Admin per il progetto corrente. |
firebase_list_projects | core | Recupera un elenco di progetti Firebase fino al conteggio totale specificato. |
firebase_get_sdk_config | core | Recupera le informazioni di configurazione dell'SDK Firebase per la piattaforma specificata. Devi specificare una piattaforma o un app_id. |
firebase_create_project | core | Crea un nuovo progetto Firebase. |
firebase_create_app | core | Crea una nuova app nel tuo progetto Firebase per web, iOS o Android. |
firebase_create_android_sha | core | Aggiunge un hash del certificato SHA a un'app per Android esistente. |
firebase_consult_assistant | core | Invia una domanda a un assistente AI appositamente migliorato per rispondere alle domande su Firebase. |
firebase_get_environment | core | Recupera informazioni sull'ambiente Firebase corrente, tra cui l'utente autenticato corrente, la directory del progetto, il progetto attivo e altro ancora. |
firebase_update_environment | core | Aggiorna la configurazione dell'ambiente Firebase, ad esempio la directory del progetto, il progetto attivo, l'account utente attivo e altro ancora. Utilizza firebase_get_environment per visualizzare l'ambiente attualmente configurato. |
firebase_init | core | Inizializza le funzionalità Firebase selezionate nel workspace (Firestore, Data Connect, Realtime Database). Tutte le funzionalità sono facoltative; fornisci 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 . |
firestore_delete_document | firestore | Elimina i 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 | Recupera 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 | Recupera un elenco di raccolte da un database Firestore nel progetto attuale. |
firestore_query_collection | firestore | Recupera uno o più documenti Firestore da una raccolta, ovvero un database nel progetto corrente, tramite 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. |
firestore_get_rules | firestore | Recupera le regole di sicurezza Firestore attive per il progetto corrente. |
firestore_validate_rules | firestore | Controlla la presenza di errori di sintassi e convalida nell'origine delle regole di Firestore fornita. Fornisci IL codice sorgente da convalidare OPPURE un percorso a un file sorgente. |
auth_get_user | auth | Recupera un utente in base a un indirizzo email, un numero di telefono o un UID. |
auth_disable_user | auth | Disattiva o attiva un utente in base a un UID. |
auth_list_users | auth | Recupera tutti gli utenti del progetto fino al limite specificato. |
auth_set_claim | auth | Imposta un'attestazione personalizzata sull'account di un utente specifico. Utilizza questo campo per creare valori attendibili associati a un utente, ad esempio per contrassegnarlo come amministratore. Le rivendicazioni hanno una dimensione limitata e devono essere concise nel nome e nel valore. Specifica SOLO UNO dei parametri value o json_value . |
auth_set_sms_region_policy | auth | Imposta un criterio per le regioni per Firebase Auth per limitare le regioni che possono ricevere messaggi di testo in base a un elenco CONSENTITO o NEGATO di codici paese. Se impostato, questo criterio sostituirà tutti i criteri esistenti. |
dataconnect_list_services | dataconnect | Elenca i servizi Firebase Data Connect disponibili nel progetto corrente. |
dataconnect_generate_schema | dataconnect | Genera uno schema Firebase Data Connect in base alla descrizione di un'app fornita dagli utenti. |
dataconnect_generate_operation | dataconnect | Genera una singola query o mutazione Firebase Data Connect in base allo schema attualmente implementato e al prompt fornito. |
dataconnect_get_schema | dataconnect | Recupera informazioni sullo schema Firebase Data Connect nel progetto, incluse le origini dati Cloud SQL e lo schema GraphQL che descrive il modello di dati. |
dataconnect_get_connectors | dataconnect | Ottieni i connettori Firebase Data Connect nel progetto, incluse le query GraphQL predefinite accessibili agli SDK client. |
dataconnect_execute_graphql | dataconnect | Esegue una query GraphQL arbitraria su un servizio Data Connect o sul relativo emulatore. |
dataconnect_execute_graphql_read | dataconnect | Esegue una query GraphQL arbitraria su un servizio Data Connect o sul relativo emulatore. Impossibile scrivere i dati. |
dataconnect_execute_mutation | dataconnect | Esegue una mutazione di Data Connect di cui è stato eseguito il deployment su un servizio o il relativo emulatore. Può leggere e scrivere dati. |
dataconnect_execute_query | dataconnect | Esegue una query Data Connect di cui è stato eseguito il deployment su un servizio o sul relativo emulatore. Impossibile scrivere dati. |
storage_get_rules | archiviazione | Recupera le regole di sicurezza di Storage attive per il progetto corrente. |
storage_validate_rules | archiviazione | Controlla la presenza di errori di sintassi e convalida nell'origine delle regole di archiviazione fornite. Fornisci IL codice sorgente da convalidare OPPURE un percorso a un file sorgente. |
storage_get_object_download_url | archiviazione | Recupera l'URL di download di un oggetto in Firebase Storage. |
messaging_send_message | messaggistica | Invia 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 . |
remoteconfig_get_template | remoteconfig | Recupera un modello di configurazione remota per il progetto |
remoteconfig_publish_template | remoteconfig | Pubblica un nuovo modello di configurazione remota per il progetto |
remoteconfig_rollback_template | remoteconfig | Eseguire il rollback a una versione specifica del modello Remote Config per un progetto |
crashlytics_list_top_issues | crashlytics | Elenca gli arresti anomali più frequenti di Crashlytics che si verificano nell'applicazione. |
apphosting_fetch_logs | apphosting | Recupera 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 | Recupera un elenco di backend di App Hosting nel progetto corrente. 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 . |