Conecte um agente de IA ao FireCMS Cloud (servidor MCP)
O FireCMS Cloud oferece um servidor MCP, para que assistentes de IA como Claude, Claude Code ou Cursor possam trabalhar diretamente no seu projeto: navegar e editar dados, criar e alterar coleções, inferir esquemas a partir dos documentos que já existem no seu Firestore e gerenciar usuários.
Há um único endereço para todos:
https://api.firecms.co/mcpAdicione-o ao seu cliente e faça login no FireCMS Cloud pelo navegador. Não há nada para instalar. O agente age com a sua própria conta, portanto nunca consegue fazer nada que você mesmo não pudesse fazer no FireCMS Cloud.
Antes de começar
Seção intitulada “Antes de começar”- Um cliente compatível com MCP: Claude (claude.ai ou Claude Desktop), Claude Code, Cursor ou qualquer outro cliente que fale o Model Context Protocol.
- Uma conta do FireCMS Cloud. A leitura está disponível para qualquer membro do projeto; criar ou
alterar coleções, dados e usuários exige o papel
adminno projeto.
Adicione o servidor MCP do FireCMS
Seção intitulada “Adicione o servidor MCP do FireCMS”No Claude (claude.ai ou Claude Desktop), abra Settings → Connectors, escolha
Add custom connector, dê a ele o nome FireCMS e cole:
https://api.firecms.co/mcpNo Claude Code, execute isto no seu terminal; depois rode /mcp dentro do Claude Code e escolha
Authenticate:
claude mcp add --transport http firecms https://api.firecms.co/mcpNo Cursor, ou em qualquer outro cliente que aceite servidores remotos por URL, adicione isto à
configuração MCP dele (.cursor/mcp.json no seu projeto, ou ~/.cursor/mcp.json para todos os projetos):
{ "mcpServers": { "firecms": { "url": "https://api.firecms.co/mcp" } }}Faça login
Seção intitulada “Faça login”Na primeira vez que o seu cliente se conectar, ele abre o FireCMS Cloud no seu navegador. Faça login se ainda não estiver autenticado, confira qual app está pedindo acesso e para onde ele vai te mandar de volta, e aprove. A partir daí, o seu cliente continua autenticado.
Para desconectar, remova o conector do seu cliente.
Experimente
Seção intitulada “Experimente”Peça ao agente algo como:
List my FireCMS projectsList the collections in my FireCMS project <seu-project-id>Add a "featured" boolean property to the products collection, shown after the titleTrazendo um projeto Firebase existente para o FireCMS
Seção intitulada “Trazendo um projeto Firebase existente para o FireCMS”Conectar um projeto cria uma conta de serviço no seu projeto do Google Cloud, o que exige as suas próprias permissões do Google Cloud. O servidor hospedado nunca tem essas permissões, então esta etapa específica acontece no FireCMS Cloud:
- Peça ao agente para conectar o seu projeto.
connect_project_to_firecmsresponde com um link para app.firecms.co/new. - Escolha o projeto lá e siga os passos. Leva cerca de um minuto.
- De volta ao seu cliente,
setup_all_collectionsinfere todas as coleções raiz a partir dos dados existentes.
O passo 3 é onde um projeto existente vira um CMS funcional: o FireCMS amostra os documentos de cada coleção raiz, infere os tipos das propriedades e escolhe nomes de exibição, um nome no singular, um ícone e um grupo de navegação.
Se preferir que o agente faça toda a conexão sozinho, incluindo ativar as APIs e criar o banco de dados do Firestore, execute o servidor localmente: ele faz login com a sua conta Google, então consegue fazer isso.
Construindo coleções a partir de dados existentes
Seção intitulada “Construindo coleções a partir de dados existentes”| Ferramenta | Descrição |
|---|---|
get_root_collections |
Lista as coleções raiz do Firestore de um projeto (leitura ao vivo) |
list_subcollections |
Lista as subcoleções de um documento, para explorar dados aninhados |
list_databases |
Lista os bancos de dados do Firestore (só é necessário além do (default)) |
preview_inferred_schema |
Infere um esquema a partir de documentos amostrados sem salvar |
infer_collections_from_data 🔒 |
Infere e salva coleções para os caminhos escolhidos |
setup_all_collections 🔒 |
Infere e salva todas as coleções raiz ainda não mapeadas |
preview_inferred_schema é a opção não destrutiva: ele amostra até 200 documentos, infere tipos,
enumerações e validações, e devolve um rascunho que você pode editar e depois persistir com
save_collection_schema. Também funciona para subcoleções e para qualquer caminho que as ferramentas
em massa ignorem.
infer_collections_from_data e setup_all_collections gravam o resultado diretamente no projeto.
Ambos pulam caminhos que já correspondem a uma coleção, então podem ser executados novamente conforme
o banco cresce. Eles também recusam caminhos sem documentos — sem nada para amostrar, um modelo
inventaria um esquema apenas a partir do nome do caminho.
Ferramentas disponíveis
Seção intitulada “Ferramentas disponíveis”As ferramentas marcadas com 🔒 exigem o papel admin no projeto. As marcadas com 💻 só são oferecidas
pelo servidor local.
Cada ferramenta informa ao seu cliente se apenas lê ou se altera algo, e se uma alteração pode sobrescrever ou excluir, para que os clientes que pedem confirmação antes de gravar saibam quando pedir.
| Ferramenta | Descrição |
|---|---|
firecms_get_current_user |
Mostra o usuário atual |
firecms_login 💻 |
Faz login pelo navegador (Google OAuth) |
firecms_logout 💻 |
Faz logout |
Onboarding
Seção intitulada “Onboarding”| Ferramenta | Descrição |
|---|---|
connect_project_to_firecms |
Conecta um projeto Firebase existente. Hospedado: devolve o link para fazer isso no FireCMS Cloud. Local: conecta o projeto e aplica as regras de segurança necessárias |
list_firebase_projects 💻 |
Projetos do Google Cloud a que você tem acesso, com indicadores de prontidão para o FireCMS |
get_project_setup_status 💻 |
Prontidão detalhada de um projeto |
list_firestore_locations 💻 |
Localizações disponíveis para um novo banco do Firestore |
enable_project_apis 💻 |
Ativa as APIs do Google Cloud que o FireCMS exige |
enable_firestore 💻 |
Cria o banco de dados padrão do Firestore (a localização é permanente) |
apply_firestore_security_rules 🔒 |
Adiciona a regra de acesso do FireCMS ao Firestore e ao Storage (idempotente) |
create_firecms_webapp 🔒 |
Tenta novamente criar o app web caso tenha falhado durante a conexão |
Projetos e configuração
Seção intitulada “Projetos e configuração”| Ferramenta | Descrição |
|---|---|
list_projects |
Lista seus projetos do FireCMS Cloud |
get_project_config 🔒 |
Obtém a configuração completa do projeto (nome, cores, plano, recursos) |
update_project_name 🔒 |
Renomeia um projeto |
update_project_colors 🔒 |
Atualiza as cores primária e secundária da marca |
update_default_locale 🔒 |
Altera o idioma padrão |
toggle_text_search 🔒 |
Ativa ou desativa a busca de texto local |
toggle_entity_history 🔒 |
Ativa ou desativa o histórico de entidades |
Usuários
Seção intitulada “Usuários”| Ferramenta | Descrição |
|---|---|
list_users 🔒 |
Lista os usuários do projeto e seus papéis |
add_user 🔒 |
Convida um usuário |
update_user_roles 🔒 |
Altera os papéis de um usuário |
remove_user 🔒 |
Remove um usuário |
Esquemas de coleções
Seção intitulada “Esquemas de coleções”| Ferramenta | Descrição |
|---|---|
list_collection_schemas 🔒 |
Lista todos os esquemas de coleção salvos |
get_collection_schema 🔒 |
Obtém o esquema completo de uma coleção |
save_collection_schema 🔒 |
Cria ou substitui o esquema de uma coleção |
update_collection_schema 🔒 |
Atualiza parcialmente o esquema de uma coleção |
delete_collection_schema 🔒 |
Exclui o esquema de uma coleção (os dados não são tocados) |
save_property 🔒 |
Adiciona ou atualiza uma única propriedade de uma coleção |
delete_property 🔒 |
Remove uma propriedade do esquema de uma coleção |
generate_collection |
Gera com IA o esquema de uma coleção a partir de um prompt |
modify_collection |
Modifica com IA um esquema existente a partir de um prompt |
Documentos
Seção intitulada “Documentos”| Ferramenta | Descrição |
|---|---|
list_documents |
Consulta documentos (filtros, ordenação, paginação) |
get_document |
Obtém um documento pelo caminho |
create_document |
Cria um novo documento |
update_document |
Atualiza parcialmente um documento |
delete_document |
Exclui um documento |
count_documents |
Conta os documentos de uma coleção |
export_collection |
Exporta os dados de uma coleção em JSON |
import_documents 🔒 |
Importa documentos em massa (máx. 500 por chamada) |
Recursos
Seção intitulada “Recursos”Clientes que suportam recursos MCP também podem lê-los diretamente:
| URI | Descrição |
|---|---|
firecms://projects/{id}/collections |
Coleções raiz do Firestore |
firecms://projects/{id}/users |
Usuários do projeto e papéis |
firecms://projects/{id}/schemas |
Todos os esquemas de coleção (árvore de configuração completa) |
firecms://projects/{id}/config |
Instantâneo da configuração do projeto |
Execute o servidor localmente
Seção intitulada “Execute o servidor localmente”O mesmo servidor é publicado como @firecms/mcp-server
e pode rodar na sua máquina via stdio. Ele precisa do Node.js 18 ou superior. Localmente, ele faz
login com a sua conta Google em vez de passar pelo FireCMS Cloud, e é isso que permite que ele também
ative APIs, crie bancos de dados do Firestore e conecte projetos de ponta a ponta.
No Claude Code:
claude mcp add firecms -- npx -y @firecms/mcp-serverPara Claude Desktop, Cursor ou qualquer outro cliente MCP, adicione isto ao arquivo de
configuração MCP do cliente (claude_desktop_config.json no Claude Desktop):
{ "mcpServers": { "firecms": { "command": "npx", "args": ["-y", "@firecms/mcp-server"] } }}Depois reinicie o cliente e peça ao agente para executar a ferramenta firecms_login. Ele abre um
navegador para o login com o Google e guarda as credenciais em ~/.firecms/tokens.json, o mesmo
arquivo usado pela CLI do FireCMS. Você só faz isso uma
vez. Use firecms_logout para sair.
Com o servidor local, toda a conexão de um projeto é feita a partir do agente:
list_firebase_projects— veja quais projetos você pode conectar e o que ainda falta nelesget_project_setup_status— verifique um projeto em detalhe (opcional)enable_project_apis— apenas seapisEnabledfor falseenable_firestore— apenas sefirestoreEnabledfor false (a localização é permanente)connect_project_to_firecms— conta de serviço, usuário administrador e as regras de segurançasetup_all_collections— infere todas as coleções raiz a partir dos dados existentes
Permissões e segurança
Seção intitulada “Permissões e segurança”- Autenticação: o servidor hospedado usa OAuth. Você aprova cada cliente no FireCMS Cloud, e ele
recebe um token apenas para a sua conta. O servidor local usa o Google OAuth no seu navegador, o
mesmo fluxo do
firecms loginna CLI. - A autorização é verificada por projeto: toda escrita exige o papel
admin. - O servidor hospedado não guarda credenciais do Google Cloud. Ele pode fazer o que você pode fazer no FireCMS Cloud, nunca o que você pode fazer no Google Cloud.
- Tokens: o servidor hospedado armazena seus tokens apenas como hashes; os tokens de acesso duram
uma hora e os tokens de atualização são substituídos a cada uso. O servidor local guarda seus tokens
em
~/.firecms/tokens.json, compartilhado com a CLI. - As credenciais nunca chegam ao modelo:
list_projectsremove a conta de serviço de cada projeto da sua resposta.
Solução de problemas
Seção intitulada “Solução de problemas”O cliente não consegue se conectar ou fica pedindo login. Remova o conector e adicione-o de novo
com https://api.firecms.co/mcp, depois aprove a solicitação na janela do navegador que se abre.
As ferramentas não aparecem depois de editar um arquivo de configuração. Clientes MCP leem a configuração na inicialização — reinicie o cliente por completo.
Uma escrita falha com erro de permissões. A conta com a qual você entrou precisa do papel admin
nesse projeto. Confira na seção Usuários do projeto no FireCMS Cloud, ou
peça a um administrador que conceda o papel.
Nenhuma coleção aparece depois de conectar um projeto. Verifique se o Firebase Authentication está
ativado e se as regras de segurança foram aplicadas (apply_firestore_security_rules), e depois
execute setup_all_collections.
O servidor local diz que você não está autenticado. Execute a ferramenta firecms_login. Se a
janela do navegador não abrir, rode npx @firecms/mcp-server --help em um terminal para confirmar que
o pacote instala e inicia.
