Funcionalidade · Para desenvolvedores
Um CMS headless para blog que o seu código e o seu assistente de IA usam.
Quem escreve usa o painel. O seu site lê os posts publicados por uma API REST, com uma chave somente leitura. Um assistente de IA trabalha por um servidor MCP: você adiciona uma URL e entra, e ele só faz o que a sua função permite, nos espaços de trabalho que você escolheu. Num plano pago, o conteúdo pode ficar no seu próprio MongoDB e as imagens no seu próprio bucket.

O que existe
| Peça | O que é |
|---|---|
| API REST | https://api.cmskite.com/v1: posts, categorias, tags, autores, mídia, busca e números de leitores. Versão no caminho. O documento OpenAPI é público em api.cmskite.com/openapi.json. |
| SDK | cmskite no npm. Tipos em TypeScript, sem dependências, ESM e CommonJS, além de um rastreador de visualizações para o navegador e o React. |
| Servidor MCP | https://api.cmskite.com/mcp. Permite que o Claude, o ChatGPT, o Cursor e outros clientes MCP leiam e escrevam o seu conteúdo depois que você entra. Nada para instalar. |
| Webhooks | Um POST assinado para a sua URL quando um post é publicado, atualizado, despublicado ou excluído. |
| Sua própria infraestrutura | Conteúdo no seu cluster MongoDB e imagens no seu próprio bucket, nos planos pagos. |
Não é desenvolvedor? Você não precisa de nada disso. As duas linhas de código e o link gratuito do blog funcionam sem programar.
Duas credenciais, dois trabalhos
| Chave de API do projeto | Ferramenta de IA conectada | |
|---|---|---|
| Formato | csk_live_… | Nada que você veja: a ferramenta entra e guarda a própria credencial |
| Para | O seu site, o seu build, o rastreador de visualizações | Um assistente de IA, um script, um job de CI |
| Pode | Ler o conteúdo publicado de um site. Mais nada. | Só o que você marcou, nunca mais do que a função do dono permite, conferido em cada requisição |
| Seguro no navegador? | Sim. Restrinja aos seus domínios com origens permitidas. | Não. Ele pode escrever e excluir. |
| Criado em | Site → Chaves de API → Criar chave | Na sua ferramenta de IA: adicione a URL, entre e clique em Permitir. Aparece em Configurações → Apps conectados |
Os dois aparecem uma vez só, na criação, e são guardados apenas como hash com chave. Uma chave de projeto não tem permissão de escrita para ser concedida por engano, porque a API por chave não tem nenhuma rota de escrita. O Free permite duas chaves ativas por site; os planos pagos não têm limite de chaves.
Algumas coisas nenhuma ferramenta de IA conectada pode fazer, seja qual for a função do dono: revogar chaves, excluir um site ou espaço de trabalho, mudar o plano ou convidar pessoas. Detalhes: Authentication (em inglês).
Ler posts leva poucas linhas
npm install cmskiteimport { createCMSKite } from 'cmskite'
const cms = createCMSKite({ apiKey: process.env.CMSKITE_KEY! })
// The index: a page of published posts (bodies left out of lists).
const { items } = await cms.posts.list({ limit: 10 })
// One post by its address. null rather than a throw when there is none.
const post = await cms.posts.findBySlug(slug)
if (!post) notFound()
// A renamed post still resolves; send the old address to the new one.
if (post.slugRedirectedFrom) redirect(`/blog/${post.slug}`)A paginação é por cursor, e cms.posts.all() percorre todos os posts como um iterador assíncrono, para sitemaps e builds estáticos. Os erros chegam como um único CMSKiteError, com o status, um código de erro e um id de requisição. Sem o SDK, é HTTP puro com um bearer token:
curl "https://api.cmskite.com/v1/blog/posts?limit=10" \
-H "Authorization: Bearer csk_live_..."Comece pelo Quickstart (em inglês), depois o guia do SDK (em inglês) e a referência da API (em inglês).
Um CMS de blog com MCP
Adicione https://api.cmskite.com/mcp à sua ferramenta de IA — um comando no Claude Code ou no Codex, uma entrada em um arquivo de configuração no Gemini CLI, Cursor, VS Code ou Windsurf, um conector personalizado no Claude, no ChatGPT ou no Lovable. A ferramenta abre o CMSKite no navegador: entre, escolha todos os seus espaços de trabalho ou um só, decida se ela pode excluir e clique em Permitir. Nenhuma chave é mostrada ou colada, e você pode desconectar quando quiser em Configurações → Apps conectados.
claude mcp add --transport http cmskite https://api.cmskite.com/mcpcodex mcp add cmskite --url https://api.cmskite.com/mcp{
"mcpServers": {
"cmskite": {
"url": "https://api.cmskite.com/mcp"
}
}
}Depois é só pedir com palavras comuns: “Escreva um rascunho sobre cuidados com a pele no verão e coloque na categoria Pele”. O assistente lê as suas categorias, escreve o post e deixa como rascunho, a menos que você tenha pedido para publicar. Ele também consegue montar um site inteiro: criar o site, escrever posts, gerar a chave somente leitura e conferir se as visualizações estão chegando.
A configuração passo a passo de cada ferramenta, todas as permissões e as ferramentas por trás delas: MCP and automation (em inglês).
Webhooks
Adicione um endpoint em Configurações do site → Webhooks e escolha os eventos: post.published, post.updated, post.unpublished, post.deleted. Cada entrega é um POST em JSON, normalmente usado para reconstruir um site estático assim que um post muda.
- Assinado:
CMSKite-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256>sobre<t>.<raw body>. O segredo de assinatura aparece uma vez só. Recuse timestamps com mais de cinco minutos. - Uma entrega que falha é tentada de novo. Depois de 20 falhas seguidas, o endpoint é desligado, para uma URL morta não ser bombardeada para sempre.
- O cartão mostra a última entrega e o status de cada endpoint. Os registros de entrega ficam guardados por 90 dias.
Seu blog no seu próprio banco de dados
Em todos os planos pagos, um site pode guardar o conteúdo num cluster MongoDB seu e as imagens no seu próprio bucket: Cloudflare R2, Amazon S3, qualquer armazenamento compatível com S3 ou Cloudinary. Configure em Banco de dados e armazenamento.
Testar
A conexão é testada antes de ser salva, então uma senha errada ou uma rede bloqueada aparece na tela, e não depois como erro para um leitor.
Migrar
O conteúdo existente é copiado e as contagens são conferidas. Dá para retomar, e nada é removido do nosso lado.
Ativar
Leituras e escritas passam para o seu cluster. Cada post mantém o id e o slug, então o seu site não percebe nada.
As credenciais são criptografadas e nunca mais aparecem. Desconectar aponta o site de volta para o nosso banco e não apaga nada do seu, e você pode exportar tudo em JSON delimitado por linha quando quiser. O que pesar: a localização e a disponibilidade do seu cluster passam a ser as da API. Números de leitores, uso e o registro de atividades continuam com a gente. Detalhes: Bring your own database (em inglês).
Limites, e o que cada plano inclui
As requisições por segundo usam um token bucket definido pelo seu plano, e toda resposta traz os cabeçalhos RateLimit-Policy e RateLimit, para o cliente desacelerar antes de ser recusado; um 429 acrescenta Retry-After. As requisições mensais são a cota abaixo. A busca de texto completo e o detalhamento de tráfego por endpoint estão nos planos pagos. Veja Rate limits and quotas (em inglês).
| Free | Starter | Team | |
|---|---|---|---|
| Preço | Grátis para sempre | R$ 39 por mês | R$ 129 por mês |
| Requisições de API | 10K / mês | 100K / mês | 500K / mês |
| Sites | 1 | 1 | 5 |
| Armazenamento de imagens | 100 MB | 1 GB | 20 GB |
Perguntas frequentes
- Existe uma especificação OpenAPI?
- Sim, pública e sem autenticação em https://api.cmskite.com/openapi.json. Os tipos do SDK vêm da mesma API.
- Posso criar posts pela API?
- Os posts são escritos no painel ou por uma ferramenta de IA que você conecta pelo MCP: adicione a URL, entre e clique em Permitir. A API pública é somente leitura: as chaves de projeto só leem conteúdo publicado, e é isso que as torna seguras para ir dentro de um site.
- Posso colocar a chave de API no código do front-end?
- A chave de projeto, sim: ela é somente leitura e só vê posts publicados. Adicione seus domínios às origens permitidas para um navegador em outro site não conseguir usá-la. É a única credencial de que uma página precisa.
- Quais assistentes de IA funcionam com o servidor MCP?
- Qualquer cliente MCP que aceite servidores remotos com login: Claude, ChatGPT, Claude Code, Cursor, VS Code, Lovable e outros. A configuração é a mesma URL em todos.
- Quais planos incluem banco de dados e armazenamento próprios?
- Todos os planos pagos. O plano gratuito usa o nosso banco de dados e armazenamento gerenciados.
- Preciso do SDK?
- Não. Tudo é HTTP puro com um bearer token. O SDK poupa você de escrever a paginação por cursor, os redirecionamentos de slug, as respostas tipadas e o rastreador de visualizações.
Veja também
- Quickstart (em inglês)Da chave aos posts na sua página, passo a passo.
- SDK JavaScript (em inglês)O cliente, a paginação, os erros e o rastreador.
- MCP e automação (em inglês)Configuração, todas as ferramentas e o que nenhuma ferramenta conectada pode fazer.
- Seu próprio banco de dados (em inglês)Como conectar, migrar e desconectar o seu MongoDB.
- Equipe e funçõesQuem na sua equipe pode gerenciar chaves, webhooks e integrações.
- Métricas do blogNúmeros de leitores, e o trecho que um site feito com código precisa.
Conferido em