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. O servidor MCP do Firebase funciona com qualquer ferramenta que possa atuar como cliente MCP, incluindo Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor e outras.
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
Esta é apenas uma lista parcial; consulte a seção de recursos do servidor para obter uma lista completa das ferramentas disponíveis para o editor.
Antes de começar
Verifique se você tem uma instalação funcional do Node.js e do npm.
Autentique a CLI do Firebase executando o seguinte comando:
npx -y firebase-tools@latest login --reauth
O servidor MCP do Firebase usa a CLI para lidar com a autenticação nos projetos Firebase. Você deve autenticar com a CLI antes de usar o servidor MCP. Se você tentar usar o servidor sem fazer login ou se o token de autenticação tiver expirado, o servidor mostrará uma mensagem de erro solicitando a reautenticação.
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. Aqui estão as instruções específicas para algumas ferramentas populares:
Configuração básica
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", "experimental: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", "experimental: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", "experimental:mcp"]
}
}
Visual Studio 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", "experimental: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", "experimental:mcp"]
}
}
}
Windsurf Editor
Para configurar o Windsurf Editor, edite o arquivo
~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental: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
Por exemplo:
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "experimental:mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Recursos do servidor MCP
Nome da ferramenta | Grupo de atributos | Descrição |
---|---|---|
firebase_get_project | core | Recupera informações sobre o projeto do Firebase ativo no momento. |
firebase_list_apps | core | Recupera aplicativos registrados no projeto do Firebase atual. |
firebase_get_admin_sdk_config | core | Obtém a configuração do SDK Admin para o projeto atual. |
firebase_list_projects | core | Recupera uma lista de projetos do Firebase até a contagem total especificada. |
firebase_get_sdk_config | core | Recupera as informações de configuração do SDK do Firebase para a plataforma especificada. É necessário especificar uma plataforma ou um app_id. |
firebase_create_project | core | Cria um novo projeto do Firebase. |
firebase_create_app | core | Cria um novo aplicativo no projeto do Firebase para Web, iOS ou Android. |
firebase_create_android_sha | core | Adiciona um hash de certificado SHA a um aplicativo Android. |
firebase_get_environment | core | Recupera informações sobre o ambiente atual do Firebase, incluindo o usuário autenticado atual, o diretório do projeto, o projeto ativo e outros. |
firebase_update_environment | core | Atualiza a configuração do ambiente do Firebase, como diretório do projeto, projeto ativo, conta de usuário ativa e muito mais. Use firebase_get_environment para ver o ambiente configurado no momento. |
firebase_init | core | Inicializa os recursos do Firebase selecionados no espaço de trabalho (Firestore, Data Connect, Realtime Database). Todos os recursos são opcionais. Informe 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 . |
firestore_delete_document | firestore | Exclui 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 | Recupera 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 | Recupera uma lista de coleções de um banco de dados do Firestore no projeto atual. |
firestore_query_collection | firestore | Recupera 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. |
firestore_get_rules | firestore | Recupera as regras de segurança ativas do Firestore para o projeto atual. |
firestore_validate_rules | firestore | Verifica se há erros de sintaxe e de validação na origem das regras do Firestore. Fornece código-fonte a ser validado OU um caminho para um arquivo de origem. |
auth_get_user | auth | Recupera um usuário com base em um endereço de e-mail, número de telefone ou UID. |
auth_disable_user | auth | Desativa ou ativa um usuário com base em um UID. |
auth_list_users | auth | Recupera todos os usuários no projeto até o limite especificado. |
auth_set_claim | auth | Define uma declaração personalizada na conta de um usuário específico. Use para criar valores confiáveis associados a um usuário, por exemplo, marcando-o como administrador. As declarações são limitadas em tamanho e precisam ser sucintas em nome e valor. Especifique apenas UM dos parâmetros value ou json_value . |
auth_set_sms_region_policy | auth | Define uma política de região de SMS para o Firebase Auth a fim de 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_list_services | dataconnect | Lista os serviços do Firebase Data Connect disponíveis no projeto atual. |
dataconnect_get_schema | dataconnect | Recupera informações sobre o esquema do Firebase Data Connect no projeto, incluindo fontes de dados do Cloud SQL e o esquema do GraphQL que descreve o modelo de dados. |
dataconnect_get_connectors | dataconnect | Extrai os conectores do Firebase Data Connect no projeto, que inclui as consultas GraphQL predefinidas acessíveis aos SDKs do cliente. |
dataconnect_execute_graphql | dataconnect | Executa um GraphQL arbitrário em um serviço do Data Connect ou no emulador dele. |
dataconnect_execute_graphql_read | dataconnect | Executa uma consulta GraphQL arbitrária em um serviço do Data Connect ou no emulador dele. Não grava dados. |
dataconnect_execute_mutation | dataconnect | Executa uma mutação do Data Connect implantada em um serviço ou emulador. Pode ler e gravar dados. |
dataconnect_execute_query | dataconnect | Executa uma consulta do Data Connect implantada em um serviço ou emulador. Não grava dados. |
storage_get_rules | armazenamento | Recupera as regras de segurança do Storage ativas para o projeto atual. |
storage_validate_rules | armazenamento | Verifica se há erros de sintaxe e validação na fonte de regras do Firebase Storage. Fornece código-fonte a ser validado OU um caminho para um arquivo de origem. |
storage_get_object_download_url | armazenamento | Recupera o URL de download de um objeto no Firebase Storage. |
messaging_send_message | messaging | Envia uma mensagem para 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. |
remoteconfig_get_template | remoteconfig | Recupera um modelo de configuração remota para o projeto |
remoteconfig_publish_template | remoteconfig | Publica um novo modelo de configuração remota para o projeto |
remoteconfig_rollback_template | remoteconfig | Reverte para uma versão específica do modelo da Configuração remota de um projeto |
crashlytics_list_top_issues | crashlytics | Lista as principais falhas do Crashlytics que ocorrem no app. |
apphosting_fetch_logs | apphosting | Busca 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 | Recupera 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 . |