Você pode usar o servidor MCP do Firebase para dar às ferramentas de desenvolvimento com tecnologia de IA a capacidade de trabalhar com seus projetos do Firebase e o codebase do app.
O servidor MCP do Firebase funciona com qualquer ferramenta que possa 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 muito 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 credenciais padrão do aplicativo, 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 de assistência de 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 maneira recomendada de configurar a CLI do Gemini para usar 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/
A instalação da extensão do Firebase configura automaticamente o servidor do MCP do Firebase e também vem com um arquivo de contexto que pode melhorar o desempenho do desenvolvimento de apps do Firebase com o Gemini.
Como alternativa, você pode configurar a CLI do Gemini para usar o servidor MCP do Firebase (mas não o arquivo de contexto da extensão do Firebase) editando ou criando 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 maneira recomendada de configurar o Gemini Code Assist para usar 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/
A instalação da extensão do Firebase configura automaticamente o servidor do MCP do Firebase e também vem com um arquivo de contexto que pode melhorar o desempenho do desenvolvimento de apps do Firebase com o Gemini.
Como alternativa, você pode configurar o Gemini Code Assist para usar o servidor MCP do Firebase (mas não o arquivo de contexto da extensão do Firebase) editando ou criando 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 de cima do painel do Cline e depois 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"]
}
}
Copilot no VS Code
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 de MCP:
Comandos: uma biblioteca de comandos pré-gravados que podem ser executados e são otimizados para desenvolver e executar um app com o Firebase.
Ferramentas: um conjunto de ferramentas destinadas ao uso por LLMs que ajudam a trabalhar diretamente com seu projeto do Firebase (com sua aprovação).
Recursos: arquivos de documentação destinados ao uso por LLMs para dar mais orientação e contexto para concluir uma tarefa ou meta.
Comandos
O servidor MCP do Firebase vem com uma biblioteca de comandos pré-gravados 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 de desenvolvimento compatíveis com o MCP oferece uma maneira conveniente 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 conferir uma lista de comandos
disponíveis.
Nome do comando | Grupo de atributos | Descrição |
---|---|---|
firebase:deploy | core | Use este comando para implantar recursos no Firebase. Argumentos: <prompt> (opcional): instruções específicas sobre a implantação |
firebase:init | core | Use esse comando para configurar serviços do Firebase, como recursos de back-end e de IA. |
firebase:consult | core | Use esse comando para consultar o Firebase Assistente com acesso à documentação detalhada e atualizada da plataforma Firebase. Argumentos: <prompt>: uma pergunta a ser transmitida ao modelo do Gemini no Firebase |
crashlytics:connect | crashlytics | Acessar os dados do Crashlytics de um aplicativo do Firebase. |
Ferramentas
O servidor MCP do Firebase também oferece várias ferramentas destinadas ao uso por LLMs que 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 suportam a chamada de função (como Gemini, Claude e GPT) podem chamar essas ferramentas automaticamente para realizar 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 isso para fazer login do usuário na CLI do Firebase e no servidor MCP do Firebase. Isso exige uma Conta do Google, e o login é necessário para criar e trabalhar com projetos do Firebase. |
firebase_logout | core | Use isso para desconectar o usuário da CLI do Firebase e do servidor MCP do Firebase. |
firebase_validate_security_rules | core | Use isso 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 isso para recuperar informações sobre o projeto do Firebase ativo no momento. |
firebase_list_apps | core | Use isso 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 isso para recuperar uma lista de projetos do Firebase a que o usuário conectado tem acesso. |
firebase_get_sdk_config | core | Use isso 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 isso para criar um novo projeto do Firebase. |
firebase_create_app | core | Use isso para criar um novo app do Firebase no projeto ativo. Os apps do Firebase podem ser para iOS, Android ou Web. |
firebase_create_android_sha | core | Use isso para adicionar o hash de certificado SHA especificado ao app do Firebase para Android especificado. |
firebase_get_environment | core | Use isso para recuperar a configuração do ambiente atual do Firebase para a Firebase CLI e o servidor MCP do Firebase, incluindo o usuário autenticado atual, o diretório do projeto, o projeto ativo do Firebase e muito mais. |
firebase_update_environment | core | Use isso 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 muito mais. Use firebase_get_environment para ver o ambiente configurado no momento. |
firebase_init | core | Use isso 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 isso para recuperar as regras de segurança de um serviço especificado 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 isso para ler o conteúdo dos recursos firebase:// ou listar os recursos disponíveis. |
firestore_delete_document | firestore | Use isso para excluir documentos do Firestore de um banco de dados no projeto atual por caminhos de documentos completos. Use essa opção se você souber o caminho exato de um documento. |
firestore_get_documents | firestore | Use isso para recuperar um ou mais documentos do Firestore de um banco de dados no projeto atual por caminhos de documentos completos. Use essa opção se você souber o caminho exato de um documento. |
firestore_list_collections | firestore | Use isso para recuperar uma lista de coleções de um banco de dados do Firestore no projeto atual. |
firestore_query_collection | firestore | Use isso 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 isso 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 isso para desativar, ativar ou definir uma declaração personalizada na conta de um usuário específico. |
auth_set_sms_region_policy | auth | Use isso 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 de país 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 isso 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 isso 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 isso para listar os serviços locais e de back-end do Firebase Data Connect |
dataconnect_execute | dataconnect | Use isso para executar uma operação GraphQL em um serviço do Data Connect ou no emulador dele. |
storage_get_object_download_url | armazenamento | Use isso para recuperar o URL de download de um objeto em um bucket do Cloud Storage para Firebase. |
messaging_send_message | mensagens | Use isso 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 isso para recuperar uma página de entradas de registro do Cloud Functions usando filtros avançados do Google Cloud Logging. |
remoteconfig_get_template | remoteconfig | Use isso para recuperar o modelo especificado da Configuração remota do Firebase no projeto do Firebase ativo no momento. |
remoteconfig_update_template | remoteconfig | Use 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 | Exclui 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 isso para listar os eventos mais recentes que correspondem aos filtros especificados. Pode ser usado para buscar exemplos de falhas e exceções de um problema, incluindo rastreamentos de pilha e outros dados úteis para depuração. |
crashlytics_batch_get_events | crashlytics | Recebe eventos específicos pelo nome do recurso. Pode ser usado para buscar exemplos de falhas e exceções de um problema, incluindo rastreamentos de pilha e outros dados úteis para depuração. |
crashlytics_list_notes | crashlytics | Use isso para listar todas as observações de um problema no Crashlytics. |
crashlytics_get_top_issues | crashlytics | Use isso para contar eventos e usuários afetados distintos, agrupados por problema. Os grupos são classificados por 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 classificados por 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 classificados por 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 classificados por 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 classificados por contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. Relevante apenas para aplicativos Android. |
crashlytics_get_top_operating_systems | crashlytics | Conta eventos e usuários distintos afetados, agrupados por sistema operacional. Os grupos são classificados por contagem de eventos, em ordem decrescente. Conta apenas eventos que correspondem aos filtros especificados. |
crashlytics_update_issue | crashlytics | Use isso para atualizar o estado do problema do Crashlytics. |
apphosting_fetch_logs | apphosting | Use isso 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 isso 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 isso para recuperar dados do local especificado em um Firebase Realtime Database. |
realtimedatabase_set_data | realtimedatabase | Use isso para gravar dados no local especificado em um Firebase Realtime Database. |
Recursos
O servidor MCP fornece recursos, que são arquivos de documentação destinados ao uso por LLMs. Os modelos que oferecem suporte ao uso de 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 na configuração dos serviços de back-end do Firebase no projeto atual. |
ai_init_guide | Guia de inicialização da IA generativa do Firebase: orienta o agente de programação na configuração dos recursos de IA generativa no projeto atual usando o Firebase. |
data_connect_init_guide | Guia de inicialização do Firebase Data Connect: orienta o agente de programação na configuração do Data Connect para acesso ao PostgreSQL no projeto atual. |
firestore_init_guide | Guia de inicialização do Firestore: orienta o agente de programação na 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 na 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 na configuração do Realtime Database no projeto atual. |
auth_init_guide | Guia de inicialização do Firebase Authentication: orienta o agente de programação na configuração do Firebase Authentication no projeto atual. |
hosting_init_guide | Guia de implantação do Firebase Hosting: orienta o agente de programação na implantação no Firebase Hosting no projeto atual. |
documentos | Documentos do Firebase: carrega conteúdo de texto simples da documentação do Firebase.Por exemplo, https://firebase.google.com/docs/functions se torna firebase://docs/functions . |