NomaCMS MCP Server

Servidor MCP para NomaCMS. Administra colecciones, campos, contenido y activos mediante agentes de IA.

Documentación

Servidor MCP de NomaCMS

Un servidor MCP (Model Context Protocol) que conecta agentes de IA como Cursor y Claude Code a tu proyecto NomaCMS. Gestiona colecciones, campos, entradas de contenido, activos y webhooks programáticamente mediante lenguaje natural.

Configuración

  • NOMA_API_KEY: Clave API de Configuración de usuario → Claves API — consulta Habilidades de la clave API.
  • NOMA_PROJECT_ID: El UUID de tu proyecto — puedes encontrarlo en la página de inicio del proyecto o en Configuración del proyecto → Acceso API

Uso con Cursor

Añade esto a la configuración de MCP de 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 con Claude Code

Añade el servidor MCP usando la CLI de 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

Herramientas disponibles (39)

Proyecto

  • get_project — Obtener información del proyecto (default_locale, locales, etc.)
  • add_project_locale — Añadir un código de locale al proyecto (requiere admin)
  • set_default_project_locale — Establecer el locale predeterminado (requiere admin)

La eliminación de locales está intencionalmente no expuesta aquí (usa Configuración del proyectoLocalización en el panel de NomaCMS si debes eliminar un locale).

Colecciones

  • list_collections — Listar todas las colecciones
  • get_collection — Obtener una colección con su esquema de campos completo
  • create_collection — Crear una colección (con creación opcional de campos en lote)
  • update_collection — Actualizar el nombre y el slug de una colección
  • reorder_collections — Reordenar colecciones

Campos

  • create_field — Añadir un campo a una colección
  • update_field — Actualizar un campo
  • reorder_fields — Reordenar campos dentro de una colección

Entradas de contenido

  • list_entries — Listar entradas con filtrado avanzado (where con 13 operadores, grupos OR, filtrado por relaciones), ordenación, paginación, recuento y primera
  • get_entry — Obtener una sola entrada de contenido
  • create_entry — Crear una entrada de contenido
  • update_entry — Actualizar una entrada de contenido
  • patch_entry — Actualizar parcialmente una entrada (HTTP PATCH; fusiona solo los campos que envíes)
  • publish_entry — Publicar el borrador como una nueva versión inmutable (update)
  • unpublish_entry — Limpiar el puntero de publicación en vivo; las versiones se conservan (update)
  • delete_entry — Eliminación suave de una entrada de contenido (se mueve a la papelera)
  • bulk_create_entries — Crear múltiples entradas atómicamente
  • bulk_update_entries — Actualizar múltiples entradas atómicamente por UUID
  • bulk_delete_entries — Eliminar múltiples entradas atómicamente por UUID
  • link_entry_translation — Vincular dos entradas (diferentes locales) en el mismo grupo de traducción (POST …/link-translation; requiere habilidad update)
  • list_entry_versions — Listar el historial de versiones de una entrada
  • get_entry_version — Obtener una versión por número (incluye el payload de la instantánea)
  • revert_entry_version — Restaurar el borrador desde una instantánea anterior y publicar (update)
  • update_entry_version_label — Editar etiqueta/descripción en una versión; la instantánea no cambia (update)

Forma de la API de contenido: Cada entrada tiene uuid, locale, published_at y fields (valores de campos personalizados). Los valores de texto enriquecido son cadenas de markdown al escribir; al leer son markdown sin procesar o HTML renderizado según el editor.outputFormat del campo (markdown vs html). Los campos de relación devuelven objetos de entrada anidados (o arrays para uno-a-muchos) al leer; al escribir envía solo el UUID o id numérico de la entrada relacionada (nunca el objeto anidado completo de un get_entry anterior). get_entry admite los parámetros de consulta translation_locale, exclude, timestamps y state.

URLs de activos: La API devuelve url, thumbnail_url y original_url como enlaces estables (opcional ?variant=thumbnail o ?variant=original).

Activos

  • list_assets — Listar activos con paginación
  • get_asset — Obtener un activo por UUID o nombre de archivo
  • upload_asset — Subir un archivo como activo
  • bulk_upload_assets — Subir múltiples archivos atómicamente
  • bulk_update_asset_metadata — Actualizar metadatos de múltiples activos atómicamente
  • delete_asset — Eliminar un activo

Webhooks

  • list_webhooks — Listar todos los webhooks del proyecto
  • get_webhook — Obtener un webhook por UUID
  • create_webhook — Crear un webhook para eventos de contenido y autenticación (name, url, events, sources; opcional description, secret, payload, status, collection_ids)
  • update_webhook — Actualizar un webhook por UUID (mismos campos que al crear)
  • delete_webhook — Eliminar un webhook por UUID
  • list_webhook_logs — Listar registros de entrega de un webhook (uuid; opcional paginate, page)

Recursos

El servidor expone tres recursos de referencia que los agentes de IA pueden leer para obtener contexto:

  • Referencia de tipos de campo (nomacms://field-types) — Referencia completa de los 16 tipos de campo, sus opciones, validaciones y patrones comunes.
  • Guía de colecciones (nomacms://collections-guide) — Guía para trabajar con colecciones, singletons, slugs reservados y mejores prácticas.
  • Referencia de consultas (nomacms://query-reference) — Documentación completa para consultas de contenido: filtros where con 13 operadores, grupos OR, filtrado por relaciones, ordenación, paginación y ejemplos.

Habilidades de la clave API

Tu clave API necesita las habilidades adecuadas para las herramientas que deseas usar:

HabilidadHerramientas
readlistar/obtener colecciones, entradas, activos, webhooks; registros de webhooks
createcrear entradas, subir activos, crear webhooks
updateactualizar entradas, link_entry_translation, actualizar metadatos de activos, actualizar webhooks
deleteeliminar entradas, eliminar activos, eliminar webhooks
admincrear/actualizar/reordenar colecciones y campos; añadir/establecer locales de proyecto predeterminados (MCP no expone la eliminación de locales)

Crea la clave en el panel de NomaCMS en Configuración de usuario → Claves API. Copia el ID del proyecto desde la página de inicio del proyecto o Configuración del proyecto → Acceso API al configurar este servidor.

Uso de múltiples proyectos

Cada entrada de MCP se conecta a un solo proyecto NomaCMS. Para trabajar con múltiples proyectos, añade entradas separadas en tu configuración de 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"
      }
    }
  }
}

Licencia

MIT