NomaCMS MCP Server
Servidor MCP para NomaCMS. Gerencie coleções, campos, conteúdo e assets por meio de agentes de IA.
Documentação
NomaCMS MCP Server
Um servidor MCP (Model Context Protocol) que conecta agentes de IA como Cursor e Claude Code ao seu projeto NomaCMS. Gerencie coleções, campos, entradas de conteúdo, assets e webhooks programaticamente por meio de linguagem natural.
Configuração
NOMA_API_KEY: chave de API em Configurações do usuário → Chaves de API — veja capacidades da chave de API.NOMA_PROJECT_ID: o UUID do seu projeto — você pode encontrá-lo na página inicial do projeto ou em Configurações do projeto → Acesso à API
Uso com o Cursor
Adicione isto às configurações MCP do Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"nomacms": {
"command": "npx",
"args": ["-y", "@nomacms/mcp-server"],
"env": {
"NOMA_API_KEY": "your-api-key",
"NOMA_PROJECT_ID": "your-project-uuid"
}
}
}
}
Uso com o Claude Code
Adicione o servidor MCP usando a CLI do Claude Code:
claude mcp add nomacms \
-e NOMA_API_KEY=your-api-key \
-e NOMA_PROJECT_ID=your-project-uuid \
-- npx -y @nomacms/mcp-server
Ferramentas Disponíveis (39)
Projeto
get_project— Obter informações do projeto (default_locale,locales, etc.)add_project_locale— Adicionar um código de locale ao projeto (requer admin)set_default_project_locale— Definir o locale padrão (requer admin)
A remoção de locales é intencionalmente não exposta aqui (use Configurações do projeto → Localização no painel do NomaCMS se precisar remover um locale).
Coleções
list_collections— Listar todas as coleçõesget_collection— Obter uma coleção com seu esquema completo de camposcreate_collection— Criar uma coleção (com criação opcional de campos em lote)update_collection— Atualizar o nome e o slug de uma coleçãoreorder_collections— Reordenar coleções
Campos
create_field— Adicionar um campo a uma coleçãoupdate_field— Atualizar um camporeorder_fields— Reordenar campos dentro de uma coleção
Entradas de Conteúdo
list_entries— Listar entradas com filtragem avançada (wherecom 13 operadores, grupos OR, filtragem por relação), ordenação, paginação, contagem e primeiroget_entry— Obter uma única entrada de conteúdocreate_entry— Criar uma entrada de conteúdoupdate_entry— Atualizar uma entrada de conteúdopatch_entry— Atualizar parcialmente uma entrada (HTTP PATCH; mescla apenas os campos enviados)publish_entry— Publicar o rascunho como uma nova versão imutável (update)unpublish_entry— Limpar o ponteiro de publicação ativo; versões mantidas (update)delete_entry— Exclusão suave de uma entrada de conteúdo (move para a lixeira)bulk_create_entries— Criar múltiplas entradas atomicamentebulk_update_entries— Atualizar múltiplas entradas atomicamente por UUIDbulk_delete_entries— Excluir múltiplas entradas atomicamente por UUIDlink_entry_translation— Vincular duas entradas (locales diferentes) ao mesmo grupo de tradução (POST …/link-translation; requer capacidade update)list_entry_versions— Listar histórico de versões de uma entradaget_entry_version— Buscar uma versão por número (inclui payload de snapshot)revert_entry_version— Restaurar rascunho de um snapshot anterior e publicar (update)update_entry_version_label— Editar rótulo/descrição em uma versão; snapshot inalterado (update)
Formato da API de conteúdo: Cada entrada tem uuid, locale, published_at e fields (valores de campos personalizados). Valores de rich text são strings markdown na escrita; na leitura, são markdown bruto ou HTML renderizado, dependendo do editor.outputFormat do campo (markdown vs html). Campos de relação retornam objetos de entrada aninhados (ou arrays para um-para-muitos) na leitura; na escrita, envie apenas o UUID ou id numérico da entrada relacionada (nunca o objeto aninhado completo de um get_entry anterior). get_entry suporta os parâmetros de consulta translation_locale, exclude, timestamps e state.
URLs de assets: A API retorna url, thumbnail_url e original_url como links estáveis (?variant=thumbnail ou ?variant=original opcionais).
Assets
list_assets— Listar assets com paginaçãoget_asset— Obter um asset por UUID ou nome de arquivoupload_asset— Enviar um arquivo como assetbulk_upload_assets— Enviar múltiplos arquivos atomicamentebulk_update_asset_metadata— Atualizar metadados de múltiplos assets atomicamentedelete_asset— Excluir um asset
Webhooks
list_webhooks— Listar todos os webhooks do projetoget_webhook— Obter um webhook por UUIDcreate_webhook— Criar um webhook para eventos de conteúdo e autenticação (name,url,events,sources; opcionaisdescription,secret,payload,status,collection_ids)update_webhook— Atualizar um webhook por UUID (mesmos campos da criação)delete_webhook— Excluir um webhook por UUIDlist_webhook_logs— Listar logs de entrega de um webhook (uuid; opcionaispaginate,page)
Recursos
O servidor expõe três recursos de referência que os agentes de IA podem ler para contexto:
- Referência de Tipos de Campo (
nomacms://field-types) — Referência completa de todos os 16 tipos de campo, suas opções, validações e padrões comuns. - Guia de Coleções (
nomacms://collections-guide) — Guia para trabalhar com coleções, singletons, slugs reservados e melhores práticas. - Referência de Consultas (
nomacms://query-reference) — Documentação completa para consultas de conteúdo: filtroswherecom 13 operadores, grupos OR, filtragem por relação, ordenação, paginação e exemplos.
Capacidades da chave de API
Sua chave de API precisa das capacidades apropriadas para as ferramentas que você deseja usar:
| Capacidade | Ferramentas |
|---|---|
read | listar/obter coleções, entradas, assets, webhooks; logs de webhook |
create | criar entradas, enviar assets, criar webhooks |
update | atualizar entradas, link_entry_translation, atualizar metadados de assets, atualizar webhooks |
delete | excluir entradas, excluir assets, excluir webhooks |
admin | criar/atualizar/reordenar coleções e campos; adicionar/definir locales padrão do projeto (o MCP não expõe remoção de locales) |
Crie a chave no painel do NomaCMS em Configurações do usuário → Chaves de API. Copie o ID do Projeto da página inicial do projeto ou de Configurações do projeto → Acesso à API ao configurar este servidor.
Usando Múltiplos Projetos
Cada entrada MCP conecta-se a um único projeto NomaCMS. Para trabalhar com múltiplos projetos, adicione entradas separadas na sua configuração MCP:
{
"mcpServers": {
"nomacms-blog": {
"command": "npx",
"args": ["-y", "@nomacms/mcp-server"],
"env": {
"NOMA_API_KEY": "blog-project-api-key",
"NOMA_PROJECT_ID": "blog-project-uuid"
}
},
"nomacms-store": {
"command": "npx",
"args": ["-y", "@nomacms/mcp-server"],
"env": {
"NOMA_API_KEY": "store-project-api-key",
"NOMA_PROJECT_ID": "store-project-uuid"
}
}
}
}
Licença
MIT