Você pode usar o servidor MCP do Firebase para permitir que seus Projetos do Firebase e base de código do app usem ferramentas para desenvolvedores com tecnologia de IA.
O servidor MCP do Firebase funciona com qualquer ferramenta que pode atuar como cliente MCP, incluindo: Firebase Studio, CLI do Gemini e Gemini Code Assist, Claude Code e Claude Desktop, Cline, Cursor, VS Code Copilot, Windsurf e mais!
Ir para as instruções de configuração
Benefícios do servidor MCP
Um editor configurado para usar o servidor MCP do Firebase pode utilizar os recursos de IA para ajudar a:
- Criar e gerenciar projetos do Firebase
- Gerenciar seus usuários do Firebase Authentication.
- Trabalhar com dados no Cloud Firestore e no Firebase Data Connect
- Recuperar esquemas do Firebase Data Connect
- Entender as regras de segurança do Firestore e do Cloud Storage para Firebase
- Enviar mensagens com o Firebase Cloud Messaging
Algumas das ferramentas usam o Gemini no Firebase para ajudar você a:
- Gerar esquema e operações do Firebase Data Connect
- Consultar o Gemini sobre produtos do Firebase
Estas são apenas listas parciais. Consulte a seção de recursos do servidor para obter uma lista completa das ferramentas disponíveis para o editor.
Configure seu cliente MCP
O servidor MCP do Firebase pode trabalhar com qualquer cliente MCP que ofereça suporte à E/S padrão (stdio) como meio de transporte.
Quando o servidor MCP do Firebase faz chamadas de função, ele usa as mesmas credenciais de usuário que autorizam a CLI do Firebase no ambiente em que ela está sendo executada. Pode ser um usuário conectado ou Application Default Credentials, dependendo do ambiente.
Antes de começar
Verifique se você tem uma instalação funcional do Node.js e do npm.
Configuração básica
Confira as instruções básicas de configuração para usar o servidor MCP do Firebase com algumas ferramentas assistidas por IA conhecidas:
Firebase Studio
Para configurar o Firebase Studio para usar o servidor MCP do Firebase, edite ou
crie os arquivos de configuração: .idx/mcp.json
Se o arquivo ainda não existir, crie-o clicando com o botão direito do mouse no diretório principal e selecionando Novo arquivo. Adicione o seguinte conteúdo ao arquivo:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
CLI do Gemini
A configuração recomendada para que a CLI do Gemini use o servidor MCP do Firebase é instalar a extensão do Firebase para a CLI do Gemini:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
Instalar a extensão do Firebase configura automaticamente o servidor MCP do Firebase e também disponibiliza um arquivo de contexto que pode melhorar o desempenho do desenvolvimento de Apps do Firebase com o Gemini.
Outra possibilidade para configurar a CLI do Gemini com servidor MCP do Firebase (mas não o arquivo de contexto da extensão do Firebase) é editar ou criar um dos arquivos de configuração:
- No seu projeto:
.gemini/settings.json
- No diretório principal:
~/.gemini/settings.json
Se o arquivo ainda não existir, crie-o clicando com o botão direito do mouse no diretório principal e selecionando Novo arquivo. Adicione o seguinte conteúdo ao arquivo:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini Code Assist
A configuração recomendada para que o Gemini Code Assist use o servidor MCP do Firebase é instalar a extensão do Firebase para a CLI do Gemini:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
Instalar a extensão do Firebase configura automaticamente o servidor MCP do Firebase e também disponibiliza um arquivo de contexto que pode melhorar o desempenho do desenvolvimento de Apps do Firebase com o Gemini.
Outra possibilidade para configurar o Gemini Code Assist com servidor MCP do Firebase (mas não o arquivo de contexto da extensão do Firebase) é editar ou criar um dos arquivos de configuração:
- No seu projeto:
.gemini/settings.json
- No diretório principal:
~/.gemini/settings.json
Se o arquivo ainda não existir, crie-o clicando com o botão direito do mouse no diretório principal e selecionando Novo arquivo. Adicione o seguinte conteúdo ao arquivo:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Claude
Claude Code
Para configurar o Claude Code para usar o servidor MCP do Firebase, execute o seguinte comando na pasta do app:
claude mcp add firebase npx -- -y firebase-tools@latest mcp
Para verificar a instalação, execute:
claude mcp list
Ela vai ser:
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Claude Desktop
Para configurar o Claude Desktop para usar o servidor MCP, do Firebase edite o
arquivo claude_desktop_config.json
. Você pode abrir ou criar esse arquivo no
menu Claude > Configurações. Selecione a guia Desenvolvedor e clique em
Editar configuração.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Cline
Para configurar o Cline para usar o servidor MCP do Firebase, edite o
arquivo cline_mcp_settings.json
. Você pode abrir ou criar esse arquivo clicando no
ícone Servidores MCP na parte superior do painel Cline e clicando no
botão Configurar servidores MCP.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"],
"disabled": false
}
}
}
Cursor
Para configurar o Cursor para usar o servidor MCP do Firebase, edite o arquivo
.cursor/mcp.json
(para configurar apenas um projeto específico) ou o arquivo
~/.cursor/mcp.json
(para tornar o servidor MCP disponível em todos os projetos):
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
VS Code Copilot
Para configurar um único projeto, edite o arquivo .vscode/mcp.json
em seu
espaço de trabalho:
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Para tornar o servidor disponível em todos os projetos que abrir, edite as configurações do usuário:
"mcp": {
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Windsurf
Para configurar o Windsurf Editor, edite o arquivo
~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Configuração opcional
Além da configuração básica de cada cliente, mostrada anteriormente, há dois parâmetros opcionais que você pode especificar:
--dir ABSOLUTE_DIR_PATH
: o caminho absoluto de um diretório que contémfirebase.json
, para definir um contexto de projeto para o servidor MCP. Se não for especificado, as ferramentasget_project_directory
eset_project_directory
ficarão disponíveis e o diretório padrão será o diretório de trabalho em que o servidor MCP foi iniciado.--only FEATURE_1,FEATURE_2
: uma lista separada por vírgulas de grupos de recursos a serem ativados. Utilize para limitar as ferramentas expostas apenas aos recursos que você está usando ativamente. Observe que as ferramentas principais estão sempre disponíveis
Exemplo:
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Recursos do servidor MCP
O servidor MCP do Firebase oferece três categorias diferentes de recursos MCP:
Comandos: uma biblioteca de comandos pré-escritos que podem ser executados e são otimizados para desenvolver e executar um app com o Firebase
Ferramentas: um conjunto de ferramentas voltadas ao uso por LLMs que os ajudam a trabalhar diretamente com seu Projeto do Firebase (com sua aprovação!).
Recursos: arquivos de documentação voltados ao uso por LLMs que dão a eles mais contexto e orientação para concluir uma tarefa ou meta
Comandos
O servidor MCP do Firebase vem com uma biblioteca de comandos pré-escritos otimizados para desenvolver e executar um app com o Firebase. É possível executar esses comandos para concluir várias tarefas ou metas comuns.
A tabela a seguir descreve os comandos disponibilizados pelo servidor MCP.
A maioria das ferramentas para desenvolvedores compatíveis com o MCP oferece um jeito prático de executar esses comandos. Por exemplo, a CLI do Gemini disponibiliza esses comandos como comandos de barra:
/firebase:init
Na CLI do Gemini, comece a digitar /firebase:
para ver uma lista de comandos
disponíveis.
Nome do comando | Grupo de atributos | Descrição |
---|---|---|
firebase:deploy | core | Use esse comando para implantar recursos no Firebase. Argumentos: <comando> (opcional): qualquer instrução específica sobre a implantação que queira fornecer |
firebase:init | core | Use esse comando para configurar serviços do Firebase, como recursos de IA e back-end. |
firebase:consult | core | Use esse comando para consultar o Firebase Assistente com acesso à documentação detalhada e atualizada da plataforma Firebase. Argumentos: <comando>: uma pergunta feita ao modelo do Gemini no Firebase |
crashlytics:connect | crashlytics | Acesse os dados do Crashlytics de um aplicativo do Firebase. |
Ferramentas
O servidor MCP do Firebase também oferece várias ferramentas voltadas ao uso por LLMs que os ajudam a trabalhar diretamente com seu Projeto do Firebase (com sua aprovação!). Ao contrário dos comandos, você não chama essas ferramentas diretamente. Em vez disso, modelos que aceitam a chamada de ferramentas (como o Gemini, Claude e GPT) podem chamar essas ferramentas automaticamente para que realizem tarefas de desenvolvimento quando necessário.
A tabela a seguir descreve as ferramentas disponibilizadas pelo servidor MCP.
Nome da ferramenta | Grupo de atributos | Descrição |
---|---|---|
firebase_login | core | Use-a para fazer login do usuário na CLI do Firebase e no servidor MCP do Firebase. Ela requer uma Conta do Google, e é necessário fazer login para criar e trabalhar com Projetos do Firebase. |
firebase_logout | core | Use-a para desconectar o usuário da CLI do Firebase e do servidor MCP do Firebase. |
firebase_validate_security_rules | core | Use-a para verificar se há erros de sintaxe e validação nas regras de segurança do Firebase para Firestore, Storage ou Realtime Database. |
firebase_get_project | core | Use-a para recuperar informações sobre o Projeto do Firebase ativo no momento. |
firebase_list_apps | core | Use-a para recuperar uma lista dos Apps do Firebase registrados no Projeto do Firebase ativo no momento. Os Apps do Firebase podem ser para iOS, Android ou Web. |
firebase_list_projects | core | Use-a para recuperar uma lista de Projetos do Firebase a que o usuário conectado tem acesso. |
firebase_get_sdk_config | core | Use-a para recuperar as informações de configuração de um App do Firebase. É necessário especificar uma plataforma OU o ID do App do Firebase registrado no Projeto do Firebase ativo no momento. |
firebase_create_project | core | Use-a para criar um novo Projeto do Firebase. |
firebase_create_app | core | Use-a para criar um novo App do Firebase no Projeto do Firebase ativo. Os Apps do Firebase podem ser para iOS, Android ou Web. |
firebase_create_android_sha | core | Use-a para adicionar o hash de certificado SHA específico ao App do Firebase para Android especificado. |
firebase_get_environment | core | Use-a para recuperar a configuração do ambiente atual do Firebase para a CLI do Firebase e o servidor MCP do Firebase, incluindo o usuário autenticado atual, o diretório do projeto, o Projeto do Firebase ativo e mais. |
firebase_update_environment | core | Use-a para atualizar a configuração do ambiente da CLI do Firebase e do servidor MCP do Firebase, como diretório do projeto, projeto ativo, conta de usuário ativa, aceitação dos Termos de Serviço e mais. Use firebase_get_environment para ver o ambiente configurado no momento. |
firebase_init | core | Use-a para inicializar os serviços do Firebase selecionados no espaço de trabalho (banco de dados do Cloud Firestore, Firebase Data Connect, Firebase Realtime Database, Firebase AI Logic). Todos os serviços são opcionais. Especifique apenas os produtos que você quer configurar. É possível inicializar novos recursos em um diretório de projeto, mas reinicializar um recurso pode substituir a configuração. Para implantar os recursos inicializados, execute o comando firebase deploy após a ferramenta firebase_init . |
firebase_get_security_rules | core | Use-a para recuperar as regras de segurança de um serviço específico do Firebase. Se houver várias instâncias desse serviço no produto, as regras da instância padrão serão retornadas. |
firebase_read_resources | core | Use-a para ler o conteúdo dos recursos firebase:// ou listar os recursos disponíveis |
firestore_delete_document | firestore | Use-a para excluir documentos do Firestore de um banco de dados no projeto atual com caminhos de documentos completos. Use essa opção se você souber o caminho exato de um documento. |
firestore_get_documents | firestore | Use-a para recuperar um ou mais documentos do Firestore de um banco de dados no projeto atual com caminhos de documentos completos. Use essa opção se você souber o caminho exato de um documento. |
firestore_list_collections | firestore | Use-a para recuperar uma lista de coleções de um banco de dados do Firestore no projeto atual. |
firestore_query_collection | firestore | Use-a para recuperar um ou mais documentos do Firestore de uma coleção que é um banco de dados no projeto atual por uma coleção com um caminho de documento completo. Use se você souber o caminho exato de uma coleção e a cláusula de filtragem que quer para o documento. |
auth_get_users | auth | Use-a para recuperar um ou mais usuários do Firebase Auth com base em uma lista de UIDs ou e-mails. |
auth_update_user | auth | Use-a para desativar, ativar ou definir uma declaração personalizada na conta de um usuário específico. |
auth_set_sms_region_policy | auth | Use-a para definir uma política de região de SMS para o Firebase Authentication e restringir as regiões que podem receber mensagens de texto com base em uma lista de códigos dos países PERMITIR ou NEGAR. Essa política vai substituir todas as políticas atuais quando definida. |
dataconnect_build | dataconnect | Use isso para compilar o esquema, as operações e/ou os conectores do Firebase Data Connect e verificar erros de build. |
dataconnect_generate_schema | dataconnect | Use-a para gerar um esquema do Firebase Data Connect com base na descrição de um app feita pelo usuário. |
dataconnect_generate_operation | dataconnect | Use-a para gerar uma única consulta ou mutação do Firebase Data Connect com base no esquema implantado e no comando fornecido. |
dataconnect_list_services | dataconnect | Use-a para listar os serviços locais e de back-end do Firebase Data Connect |
dataconnect_execute | dataconnect | Use-a para executar uma operação GraphQL em um serviço do Data Connect ou no emulador dele. |
storage_get_object_download_url | armazenamento | Use-a para recuperar o URL de download de um objeto em um bucket do Cloud Storage para Firebase. |
messaging_send_message | mensagens | Use-a para enviar uma mensagem a um token ou tópico de registro do Firebase Cloud Messaging. SOMENTE UM de registration_token ou topic pode ser fornecido em uma chamada específica. |
functions_get_logs | funções | Use-a para recuperar uma página de entradas de registros do Cloud Functions usando filtros avançados do Google Cloud Logging. |
remoteconfig_get_template | remoteconfig | Use-a para recuperar o modelo específico da Configuração remota do Firebase do Projeto do Firebase ativo no momento. |
remoteconfig_update_template | remoteconfig | Use-a para publicar um novo modelo de configuração remota ou reverter para uma versão específica do projeto |
crashlytics_create_note | crashlytics | Adicione uma nota a um problema do Crashlytics. |
crashlytics_delete_note | crashlytics | Exclua uma observação de um problema do Crashlytics. |
crashlytics_get_issue | crashlytics | Recebe dados de um problema do Crashlytics, que podem ser usados como ponto de partida para depuração. |
crashlytics_list_events | crashlytics | Use-a para listar os eventos mais recentes que correspondem aos filtros especificados. Pode ser usada para buscar exemplos de falhas e exceções de um problema, incluindo stack traces e outros dados úteis para depuração. |
crashlytics_batch_get_events | crashlytics | Recebe eventos específicos pelo nome do recurso. Pode ser usada para buscar exemplos de falhas e exceções de um problema, incluindo stack traces e outros dados úteis para depuração. |
crashlytics_list_notes | crashlytics | Use-a para listar todas as observações de um problema do Crashlytics. |
crashlytics_get_top_issues | crashlytics | Use-a para contar eventos e usuários afetados distintos, agrupados por problema. Os grupos são ordenados pela contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. |
crashlytics_get_top_variants | crashlytics | Conta eventos e usuários afetados distintos, agrupados por variante do problema. Os grupos são ordenados pela contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. |
crashlytics_get_top_versions | crashlytics | Conta eventos e usuários afetados distintos, agrupados por versão. Os grupos são ordenados pela contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. |
crashlytics_get_top_apple_devices | crashlytics | Conta eventos e usuários afetados distintos, agrupados por dispositivo da Apple. Os grupos são ordenados pela contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. Relevante apenas para aplicativos iOS, iPadOS e macOS. |
crashlytics_get_top_android_devices | crashlytics | Conta eventos e usuários afetados distintos, agrupados por dispositivo Android. Os grupos são ordenados pela contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. Relevante apenas para apps Android. |
crashlytics_get_top_operating_systems | crashlytics | Conta eventos e usuários distintos afetados, agrupados por sistema operacional. Os grupos são ordenados pela contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. |
crashlytics_update_issue | crashlytics | Use-a para atualizar o estado do problema do Crashlytics. |
apphosting_fetch_logs | apphosting | Use-a para buscar os registros mais recentes de um back-end do App Hosting especificado. Se buildLogs for especificado, os registros do processo de build do build mais recente serão retornados. Os registros mais recentes são listados primeiro. |
apphosting_list_backends | apphosting | Use-a para recuperar uma lista de back-ends do App Hosting no projeto atual. Uma lista vazia significa que não há back-ends. O uri é o URL público do back-end. Um back-end em funcionamento terá uma matriz managed_resources que conterá uma entrada run_service . run_service.service é o nome do recurso do serviço do Cloud Run que veicula o back-end do App Hosting. O último segmento desse nome é o ID do serviço. domains é a lista de domínios associados ao back-end. Eles têm o tipo CUSTOM ou DEFAULT . Cada back-end precisa ter um domínio DEFAULT . O domínio real que um usuário usaria para se conectar ao back-end é o último parâmetro do nome do recurso de domínio. Se um domínio personalizado estiver configurado corretamente, os status dele vão terminar em ACTIVE . |
realtimedatabase_get_data | realtimedatabase | Use-a para recuperar dados do local especificado em um Firebase Realtime Database. |
realtimedatabase_set_data | realtimedatabase | Use-a para gravar dados no local especificado em um Firebase Realtime Database. |
Recursos
O servidor MCP fornece recursos, que são arquivos de documentação voltados ao uso por LLMs. Os modelos que podem usar recursos incluem automaticamente os recursos relevantes no contexto da sessão.
A tabela a seguir descreve os recursos disponibilizados pelo servidor MCP.
Nome do recurso | Descrição |
---|---|
backend_init_guide | Guia de inicialização do back-end do Firebase: orienta o agente de programação com a configuração de serviços de back-end do Firebase no projeto atual |
ai_init_guide | Guia de inicialização de IA generativa do Firebase: orienta o agente de programação com a configuração de capabilities de IA generativa no projeto atual que usam o Firebase |
data_connect_init_guide | Guia de inicialização do Firebase Data Connect: orienta o agente de programação com a configuração do acesso do PostgreSQL ou Data Connect no projeto atual |
firestore_init_guide | Guia de inicialização do Firestore: orienta o agente de programação com a configuração do Firestore no projeto atual |
firestore_rules_init_guide | Guia de inicialização das regras do Firestore: orienta o agente de programação com a configuração das regras de segurança do Firestore no projeto |
rtdb_init_guide | Guia de inicialização do Firebase Realtime Database: orienta o agente de programação com a configuração do Realtime Database no projeto atual |
auth_init_guide | Guia de inicialização do Firebase Authentication: orienta o agente de programação com a configuração do Firebase Authentication no projeto atual |
hosting_init_guide | Guia de implantação do Firebase Hosting: orienta o agente de programação com a implantação no Firebase Hosting no projeto atual |
docs | Documentação do Firebase: carrega conteúdo de texto simples da documentação do Firebase. Por exemplo, https://firebase.google.com/docs/functions vira firebase://docs/functions |