Jataí + IA

Peça ao seu agente de IA — Claude Code, Cursor, Codex ou Gemini CLI — para colocar o projeto da sua pasta no ar. Ele fala direto com o Jataí pelo servidor MCP da CLI (jatai mcp), sem precisar de GitHub.

1. Antes de começar

Crie sua conta em jataicloud.com.br e confirme o e-mail. O agente não consegue criar a conta por você, e sem o e-mail confirmado o login pelo navegador não é aprovado.

2. O que dá para pedir ao agente

O servidor MCP entrega ao agente nove ferramentas. Você não precisa chamá-las pelo nome: descreva o que quer em português e o agente escolhe.

Ferramenta O que o agente faz com ela
jatai_contaConfere quem está logado, o time atual e o que já existe na conta, inclusive se a cortesia gratuita já está em uso.
jatai_loginInicia o login e mostra um link e um código para você aprovar no navegador.
jatai_criar_appDetecta a stack do projeto, escolhe o nome, grava o .jatai.yml e cria o app. Apps que não são estáticos ganham um banco PG Base automaticamente.
jatai_publicarEnvia o código da pasta, acompanha o build e devolve a URL do app. Se o deploy falha, traz o fim do log do build para o agente corrigir e tentar de novo.
jatai_statusMostra o estado do app e do último deploy.
jatai_logsLê as linhas recentes de log do app, com filtro de texto opcional.
jatai_variaveis_listarLista os nomes das variáveis de ambiente do app.
jatai_variaveis_definirCria ou altera variáveis de ambiente, e pode já publicar de novo em seguida.
jatai_variaveis_removerRemove variáveis de ambiente, e também pode publicar de novo em seguida.

Valores não voltam para o agente. O Jataí nunca devolve os valores das variáveis ao agente, só os nomes. Mesmo assim, um valor que você digita no chat passa pelo agente. Uma variável nova ou alterada passa a valer no próximo deploy; basta pedir ao agente para publicar logo depois.

O que continua só no painel

Apagar app ou banco, mudar plano e escala, domínios, cobrança e comandos remotos. Se você pedir uma dessas coisas, o agente indica o caminho no painel.

3. Instalar a CLI

A forma mais simples é não instalar nada: com Node.js no computador, o npx baixa e roda a CLI sozinho (use os blocos da próxima seção). Se preferir deixar a CLI instalada, escolha um canal:

macOS e Linux
curl -fsSL https://jataicloud.com.br/install.sh | sh
Windows (PowerShell)
irm https://jataicloud.com.br/install.ps1 | iex
Homebrew
brew install jataicloud/tap/jatai
Windows (Scoop)
scoop bucket add jataicloud https://github.com/JataiCloud/scoop-bucket
scoop install jatai
npm (qualquer sistema com Node.js)
npm i -g jatai-cli

Para conferir: jatai --version.

4. Configurar o agente

Copie o bloco do seu agente. Todos usam npx, então não exigem instalação prévia. Depois de salvar, reinicie o agente para ele carregar o servidor.

Antes de abrir o agente pela primeira vez, rode uma vez no terminal o comando abaixo. Ele faz o primeiro download da CLI, que pode demorar mais do que o agente espera para iniciar o servidor. Quando aparecer a versão, está pronto.

terminal, uma vez, antes de abrir o agente
npx -y jatai-cli@latest --version

Claude Code

Um comando no terminal. O --scope user deixa o Jataí disponível em qualquer pasta, não só na atual:

terminal
claude mcp add --scope user jatai -- npx -y jatai-cli@latest mcp

Cursor

Adicione ao arquivo ~/.cursor/mcp.json (ou .cursor/mcp.json dentro do projeto):

~/.cursor/mcp.json
{
  "mcpServers": {
    "jatai": {
      "command": "npx",
      "args": ["-y", "jatai-cli@latest", "mcp"]
    }
  }
}

Gemini CLI

Adicione ao arquivo ~/.gemini/settings.json:

~/.gemini/settings.json
{
  "mcpServers": {
    "jatai": {
      "command": "npx",
      "args": ["-y", "jatai-cli@latest", "mcp"]
    }
  }
}

Codex

Adicione ao arquivo ~/.codex/config.toml. O startup_timeout_sec dá tempo para o npx iniciar a CLI:

~/.codex/config.toml
[mcp_servers.jatai]
command = "npx"
args = ["-y", "jatai-cli@latest", "mcp"]
startup_timeout_sec = 30

Outro cliente MCP, com a CLI instalada

Qualquer cliente MCP com transporte stdio serve. Se você instalou a CLI na seção 3, o comando é só jatai com o argumento mcp:

mcpServers
{
  "mcpServers": {
    "jatai": {
      "command": "jatai",
      "args": ["mcp"]
    }
  }
}

Windows com npx

No Windows, os clientes costumam não achar o npx direto. Chame pelo cmd, ou então instale a CLI (seção 3) e use jatai mcp como no bloco genérico acima. Escolha o bloco do seu agente:

Claude Code (terminal):

Claude Code, Windows
claude mcp add --scope user jatai -- cmd /c npx -y jatai-cli@latest mcp

Cursor (~/.cursor/mcp.json) e Gemini CLI (~/.gemini/settings.json):

Cursor e Gemini CLI, Windows
{
  "mcpServers": {
    "jatai": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "jatai-cli@latest", "mcp"]
    }
  }
}

Codex (~/.codex/config.toml):

Codex, Windows
[mcp_servers.jatai]
command = "cmd"
args = ["/c", "npx", "-y", "jatai-cli@latest", "mcp"]
startup_timeout_sec = 30

5. Primeiro uso

Abra o agente na pasta do projeto e peça, em português mesmo:

no chat do agente
Publique o projeto desta pasta no Jataí
  1. 1Login. Na primeira vez o agente mostra um link e um código. Abra o link no navegador, confira o código e aprove. Você precisa ter a conta com o e-mail confirmado.
  2. 2Criação e envio. O agente detecta a stack, cria o app (com banco, se o projeto precisar) e envia o código da pasta.
  3. 3Build e rollout. Em poucos minutos o app fica no ar em um endereço *.jataiapp.com.br, e o agente devolve a URL.

Se o agente disser que o deploy está “em andamento”, é normal: builds mais longos passam do tempo que o cliente espera por uma resposta. O agente segue acompanhando com o status do app, e você pode pedir “veja como está o deploy” quando quiser.

Depois é só conversar: “mostre os logs de erro”, “adicione a variável STRIPE_KEY e publique de novo”.

6. Projetos Next.js

No Jataí as variáveis de ambiente, como o DATABASE_URL, existem só em execução, não durante o build. Uma página que lê o banco ao ser gerada no build vai falhar. A solução é fazer a página ser renderizada a cada requisição, e o jeito depende da versão.

Os exemplos abaixo usam o driver pg. Se o projeto ainda não tem, rode npm i pg e npm i -D @types/pg; o Jataí já entrega o DATABASE_URL ao app.

Com cacheComponents (padrão do create-next-app 16)

Não exporte dynamic: o build recusa. Leia o banco dentro de <Suspense> e depois de await connection(), importado de next/server. Sem o <Suspense>, o build falha com “uncached or runtime data during prerendering”:

app/page.tsx
import { Suspense } from "react";
import { connection } from "next/server";
import { Pool } from "pg";

const pool = new Pool({ connectionString: process.env.DATABASE_URL });

async function Hora() {
  await connection();
  const { rows } = await pool.query("select now() as agora");
  return <p>Hora no banco: {String(rows[0].agora)}</p>;
}

export default function Page() {
  return (
    <Suspense fallback={<p>Carregando...</p>}>
      <Hora />
    </Suspense>
  );
}

Next.js 15, ou sem cacheComponents

Marque a página como dinâmica:

app/page.tsx
import { Pool } from "pg";

export const dynamic = "force-dynamic";

const pool = new Pool({ connectionString: process.env.DATABASE_URL });

export default async function Page() {
  const { rows } = await pool.query("select now() as agora");
  return <p>Hora no banco: {String(rows[0].agora)}</p>;
}

Atenção: as variáveis NEXT_PUBLIC_* (e VITE_*, no Vite) ainda não ficam disponíveis durante o build no Jataí. Não dependa delas para valores embutidos no código do navegador por enquanto.

7. Limites

  • A cortesia do Jataí cobre 1 Hex Base + 1 PG Base por time, sem cartão.
  • Para um segundo app ou banco, cadastre um meio de pagamento em Faturamento. Quando isso acontecer, o agente avisa e mostra o link.
  • Apagar recursos, plano, domínios e cobrança continuam no painel.

Próximos passos