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 proyecto → Localización en el panel de NomaCMS si debes eliminar un locale).
Colecciones
list_collections— Listar todas las coleccionesget_collection— Obtener una colección con su esquema de campos completocreate_collection— Crear una colección (con creación opcional de campos en lote)update_collection— Actualizar el nombre y el slug de una colecciónreorder_collections— Reordenar colecciones
Campos
create_field— Añadir un campo a una colecciónupdate_field— Actualizar un camporeorder_fields— Reordenar campos dentro de una colección
Entradas de contenido
list_entries— Listar entradas con filtrado avanzado (wherecon 13 operadores, grupos OR, filtrado por relaciones), ordenación, paginación, recuento y primeraget_entry— Obtener una sola entrada de contenidocreate_entry— Crear una entrada de contenidoupdate_entry— Actualizar una entrada de contenidopatch_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ómicamentebulk_update_entries— Actualizar múltiples entradas atómicamente por UUIDbulk_delete_entries— Eliminar múltiples entradas atómicamente por UUIDlink_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 entradaget_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ónget_asset— Obtener un activo por UUID o nombre de archivoupload_asset— Subir un archivo como activobulk_upload_assets— Subir múltiples archivos atómicamentebulk_update_asset_metadata— Actualizar metadatos de múltiples activos atómicamentedelete_asset— Eliminar un activo
Webhooks
list_webhooks— Listar todos los webhooks del proyectoget_webhook— Obtener un webhook por UUIDcreate_webhook— Crear un webhook para eventos de contenido y autenticación (name,url,events,sources; opcionaldescription,secret,payload,status,collection_ids)update_webhook— Actualizar un webhook por UUID (mismos campos que al crear)delete_webhook— Eliminar un webhook por UUIDlist_webhook_logs— Listar registros de entrega de un webhook (uuid; opcionalpaginate,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: filtroswherecon 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:
| Habilidad | Herramientas |
|---|---|
read | listar/obtener colecciones, entradas, activos, webhooks; registros de webhooks |
create | crear entradas, subir activos, crear webhooks |
update | actualizar entradas, link_entry_translation, actualizar metadatos de activos, actualizar webhooks |
delete | eliminar entradas, eliminar activos, eliminar webhooks |
admin | crear/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