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 projetoLocalização no painel do NomaCMS se precisar remover um locale).

Coleções

  • list_collections — Listar todas as coleções
  • get_collection — Obter uma coleção com seu esquema completo de campos
  • create_collection — Criar uma coleção (com criação opcional de campos em lote)
  • update_collection — Atualizar o nome e o slug de uma coleção
  • reorder_collections — Reordenar coleções

Campos

  • create_field — Adicionar um campo a uma coleção
  • update_field — Atualizar um campo
  • reorder_fields — Reordenar campos dentro de uma coleção

Entradas de Conteúdo

  • list_entries — Listar entradas com filtragem avançada (where com 13 operadores, grupos OR, filtragem por relação), ordenação, paginação, contagem e primeiro
  • get_entry — Obter uma única entrada de conteúdo
  • create_entry — Criar uma entrada de conteúdo
  • update_entry — Atualizar uma entrada de conteúdo
  • patch_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 atomicamente
  • bulk_update_entries — Atualizar múltiplas entradas atomicamente por UUID
  • bulk_delete_entries — Excluir múltiplas entradas atomicamente por UUID
  • link_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 entrada
  • get_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ção
  • get_asset — Obter um asset por UUID ou nome de arquivo
  • upload_asset — Enviar um arquivo como asset
  • bulk_upload_assets — Enviar múltiplos arquivos atomicamente
  • bulk_update_asset_metadata — Atualizar metadados de múltiplos assets atomicamente
  • delete_asset — Excluir um asset

Webhooks

  • list_webhooks — Listar todos os webhooks do projeto
  • get_webhook — Obter um webhook por UUID
  • create_webhook — Criar um webhook para eventos de conteúdo e autenticação (name, url, events, sources; opcionais description, secret, payload, status, collection_ids)
  • update_webhook — Atualizar um webhook por UUID (mesmos campos da criação)
  • delete_webhook — Excluir um webhook por UUID
  • list_webhook_logs — Listar logs de entrega de um webhook (uuid; opcionais paginate, 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: filtros where com 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:

CapacidadeFerramentas
readlistar/obter coleções, entradas, assets, webhooks; logs de webhook
createcriar entradas, enviar assets, criar webhooks
updateatualizar entradas, link_entry_translation, atualizar metadados de assets, atualizar webhooks
deleteexcluir entradas, excluir assets, excluir webhooks
admincriar/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