Nhost

Servidor MCP oficial para a plataforma backend Nhost — gerencie dados Postgres, GraphQL, autenticação, armazenamento, migrações e metadados do Hasura por meio de assistentes de IA.

Documentação

Nhost CLI

Nhost é uma alternativa open-source ao Firebase com GraphQL.

O Nhost CLI é usado para configurar um ambiente de desenvolvimento local. Esse ambiente rastreia automaticamente migrações de banco de dados e metadados do Hasura.

É recomendado usar o Nhost CLI e a Integração com GitHub do Nhost para desenvolver localmente e implantar alterações em produção automaticamente com um fluxo de trabalho baseado em git (semelhante ao Netlify e Vercel).

Serviços

Instalação

Homebrew

brew install nhost/tap/nhost

Nix

Se você tiver flakes habilitados:

nix profile install github:nhost/nhost#cli

Ou execute diretamente sem instalar:

nix run github:nhost/nhost#cli

npm / pnpm / Yarn / Bun

Instale o CLI em um projeto para fixar a versão para toda a equipe:

npm install -D @nhost/cli
pnpm add -D @nhost/cli
yarn add -D @nhost/cli
bun add -d @nhost/cli

Ou execute sem instalar:

npx @nhost/cli@latest --version
pnpm dlx @nhost/cli@latest --version
yarn dlx @nhost/cli@latest --version
bunx @nhost/cli@latest --version

Instalação rápida (Linux / macOS)

curl -sSL https://raw.githubusercontent.com/nhost/nhost/main/cli/get.sh | bash

Ou especifique uma versão:

curl -sSL https://raw.githubusercontent.com/nhost/nhost/main/cli/get.sh | bash -s 1.38.0

Começando

As etapas abaixo são uma referência rápida. Para um passo a passo guiado, consulte o Início rápido do CLI.

Autenticar

Necessário apenas para obter a configuração de um projeto existente no Nhost Cloud ou para implantar — pule esta etapa para trabalho puramente local.

nhost login

Inicializar um projeto

Cria a estrutura de um diretório nhost/ (configuração de backend, versionada no Git) e um diretório functions/.

nhost init

Ou comece a partir de um projeto existente no Nhost Cloud:

nhost init --remote

Iniciar o ambiente de desenvolvimento

Inicia toda a stack (Postgres, GraphQL, Auth, Storage, Functions) com Docker e exibe as URLs locais dos serviços.

nhost up

O dashboard local roda em https://local.dashboard.local.nhost.run. Pare a stack com nhost down e acompanhe os logs com nhost logs.

Servidor MCP

O Nhost CLI acompanha um servidor MCP que permite interagir com seus projetos Nhost por meio de assistentes de IA usando o Model Context Protocol. Ele fornece acesso seguro e controlado aos seus dados GraphQL, configuração do projeto e documentação — com permissões granulares que permitem especificar exatamente quais consultas e mutações um LLM pode executar. Para desenvolvimento, ele otimiza seu fluxo de trabalho ao permitir gerenciamento de esquema assistido por IA, alterações de metadados e migrações, além de fornecer acesso direto ao seu esquema GraphQL para construção inteligente de consultas.

Você pode ler mais sobre o servidor MCP na documentação do Servidor MCP.

Documentação

Compilar a partir do código-fonte

Certifique-se de ter o Go 1.18 ou posterior instalado.

O código-fonte inclui um certificado autoassinado para fins de teste. Workers do Nhost com acesso configurado à AWS podem usar o script cert.sh para gerar um certificado real da Let's Encrypt.

go build -o /usr/local/bin/nhost

Isso compilará o binário disponível como o comando nhost no terminal.

Regenerar certificados TLS locais

O script de certificado agora exige um alvo Kubernetes explícito. Esta é uma mudança intencional e incompatível para operadores que anteriormente o executavam sem argumentos. A partir da raiz do repositório, entre no shell de desenvolvimento do CLI e execute:

nix develop .#cli
cd cli && ./cert.sh <namespace> <deployment>

O runtime precisa do Certbot e do plugin Route53, kubectl, jq e dig; shellcheck está incluído para linting dos scripts, mas não é uma dependência de runtime. Ferramentas equivalentes do host podem ser usadas no lugar do shell Nix. O operador precisa de credenciais AWS válidas para o certificado Route53 e um contexto Kubernetes ativo com acesso ao Deployment get, patch e ao status/observação de rollout. O script nunca seleciona nem altera um contexto kubectl.

O hook de autenticação de curinga corrige as variáveis ACME_CHALLENGE_* de ambiente existentes no Deployment. Cada uma das nove variáveis suportadas deve ocorrer exatamente uma vez como um value direto e não vazio em um contêiner; variáveis duplicadas, valueFrom ou um layout de Deployment alterado falham de forma segura. A publicação rápida de desafios pode causar oscilação intermediária de rollout. Apenas o hook invocado por último aguarda a geração final e a prontidão do DNS. Os valores de desafio são intencionalmente retidos. Se o Certbot reutilizar todas as autorizações em cache, ele não invoca nenhum hook e a publicação é um no-op válido; se apenas algumas estiverem em cache, o hook final também valida cada valor retido.

O tempo limite de rollout, o tempo limite global de DNS e o intervalo de polling de DNS têm como padrão 300, 300 e 2 segundos. Substitua-os com ACME_ROLLOUT_TIMEOUT_SECONDS, ACME_DNS_TIMEOUT_SECONDS e ACME_DNS_POLL_INTERVAL_SECONDS. O pior caso é, portanto, aproximadamente dez minutos após os patches rápidos. O DNS usa o resolvedor do sistema por padrão. Defina ACME_DNS_SERVER para um hostname ou resolvedor IPv4 na porta padrão 53; um resolvedor autoritativo ou público adequado é preferido quando o cache negativo recursivo atrasa um novo registro TXT.

Não execute solicitações de certificado concorrentes contra o mesmo Deployment: seu ambiente pode armazenar apenas um valor para cada serviço. Uma alteração de UID ou geração no momento do rollout também aborta a execução. Os valores de validação são dados DNS públicos e kubectl set env expõe necessariamente o valor atual na lista de argumentos desse processo; o hook suprime a saída de comandos que contém valores e não cria arquivos de estado de token, então os operadores ainda devem restringir a inspeção local de processos e o rastreamento de comandos.

O certificado Route53, os destinos de cópia do certificado e a limpeza final permanecem inalterados. Execute o comando a partir de cli/ para que seus caminhos de saída relativos existentes continuem resolvendo.

Dependências

Plataformas suportadas

  • macOS
  • Linux
  • Windows WSL2