Umbraco MCP
Interactúa con la API de administración de Umbraco CMS para tareas administrativas.
Documentación
THIS REPO HAS NOW MOVED - https://github.com/umbraco/Umbraco-Cms-MCP-Dev
Umbraco MCP 
Un servidor MCP (Model Context Protocol) para Umbraco CMS que proporciona acceso a partes clave de la Management API, permitiéndote realizar tareas de back office con tu agente.
Introducción
El servidor MCP utiliza un usuario de API de Umbraco para acceder a tu Management API de Umbraco, lo que significa que las herramientas disponibles para la IA pueden controlarse mediante los permisos normales de usuario de Umbraco.
Primeros pasos
Umbraco
Para que el MCP pueda comunicarse con la Management API, necesitarás crear un usuario de API. Si no estás seguro de cómo hacerlo, sigue la documentación de Umbraco.
El nivel de acceso que proporciones a este usuario determinará lo que tu agente pueda hacer.
Instalación
Primero, crea un usuario de API de Umbraco con los permisos adecuados. Puedes encontrar instrucciones en la documentación de Umbraco.
Claude Desktop
Para comenzar a usar Umbraco MCP con Claude, primero descarga e instala la aplicación de escritorio de Claude.ai.
Inicia tu instancia de Umbraco (actualmente compatible con la versión 15.latest) y crea nuevas credenciales de usuario de API. Puedes ver instrucciones sobre cómo hacerlo en la documentación de Umbraco.
Una vez que tengas esta información, vuelve a la aplicación de escritorio de Claude y ve a Configuración > Desarrollador > Editar configuración. Abre el archivo json en un editor de texto de tu elección y agrega lo siguiente, reemplazando UMBRACO_CLIENT_ID, UMBRACO_CLIENT_SECRET y UMBRACO_BASE_URL con tu información de conexión local. La adición de la variable de entorno NODE_TLS_REJECT_UNAUTHORIZED es para permitir que Claude se conecte al MCP usando un certificado autofirmado.
{
"mcpServers": {
"umbraco-mcp": {
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0",
"UMBRACO_CLIENT_ID": "umbraco-back-office-mcp",
"UMBRACO_CLIENT_SECRET": "1234567890",
"UMBRACO_BASE_URL": "https://localhost:44391"
}
}
}
}
Reinicia Claude y pruébalo con un prompt simple como Tell me the GUID of the home page document type. Deberás permitir cada una de las herramientas a medida que Umbraco MCP comienza a trabajar. Si recibes un error de conexión con Umbraco MCP, haz clic en el botón para abrir los registros y revisa el archivo mcp-server-umbraco-mcp.log para obtener información adicional sobre cómo solucionar el problema.
[!NOTE] Es posible que necesites actualizar a una versión de pago de Claude.ai para tener un contexto lo suficientemente amplio para ejecutar tus prompts.
Claude Code
Usa la CLI de Claude Code para agregar el servidor Umbraco MCP:
claude mcp add umbraco-mcp npx @umbraco-mcp/umbraco-mcp-cms@alpha
O configura las variables de entorno y el ámbito:
# Install Claude Code globally (if not already installed)
npm install -g @anthropic-ai/claude-code
# Add with environment variables
claude mcp add umbraco-mcp --env UMBRACO_CLIENT_ID="your-id" --env UMBRACO_CLIENT_SECRET="your-secret" --env UMBRACO_BASE_URL="https://your-domain.com" -- npx @umbraco-mcp/umbraco-mcp-cms@alpha
# Verify installation
claude mcp list
Esto agregará umbraco-mcp al proyecto existente en el archivo de configuración claude.json.
VS Code
Haz clic en el botón para instalar:
Requisitos: VS Code 1.101+ con la extensión GitHub Copilot Chat instalada.
O instala manualmente: Sigue la guía de instalación de MCP, usa esta configuración.
{
"servers": {
"umbraco-mcp": {
"type": "stdio",
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"UMBRACO_CLIENT_ID": "<API user name>",
"UMBRACO_CLIENT_SECRET": "<API client secret>",
"UMBRACO_BASE_URL": "https://<domain>",
"EXCLUDE_MANAGEMENT_TOOLS": "<toolname>,<toolname>"
}
}
}
}
Cursor
O instala manualmente:
Ve a Cursor Settings -> Tools & Integrations -> Add new MCP Server.
Agrega lo siguiente al archivo de configuración y actualiza las variables de entorno.
{
"mcpServers": {
"umbraco-mcp": {
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"UMBRACO_CLIENT_ID": "<API user name>",
"UMBRACO_CLIENT_SECRET": "<API client secret>",
"UMBRACO_BASE_URL": "https://<domain>",
"EXCLUDE_MANAGEMENT_TOOLS": "<toolname>,<toolname>"
}
}
}
}
Variables de entorno de configuración
UMBRACO_CLIENT_ID
Nombre de usuario de API de Umbraco
UMBRACO_CLIENT_SECRET
Secreto de cliente del usuario de API de Umbraco
UMBRACO_BASE_URL
URL del sitio al que deseas conectarte, solo necesita ser el esquema y el dominio, por ejemplo https://example.com
EXCLUDE_MANAGEMENT_TOOLS
Esto te permite especificar herramientas por nombre si deseas excluirlas de la lista de herramientas utilizables. Esto es útil ya que algunos agentes no pueden manejar tantas herramientas. Es una lista separada por comas de herramientas que se pueden encontrar a continuación.
Herramientas de la Management API de Umbraco
Ver lista de herramientas
Cultura
get-culture - obtiene todas las culturas disponibles para Umbraco
Tipo de dato
get-data-type-search - Buscar tipos de datos
get-data-type - Obtener un tipo de dato específico por ID
get-data-type-references - Obtener referencias a un tipo de dato
is-used-data-type - Verificar si un tipo de dato está en uso
get-data-type-root - Obtener tipos de datos de nivel raíz
get-data-type-children - Obtener tipos de datos secundarios
get-data-type-ancestors - Obtener tipos de datos ancestros
get-all-data-types - Obtener todos los tipos de datos
delete-data-type - Eliminar un tipo de dato
create-data-type - Crear un nuevo tipo de dato
update-data-type - Actualizar un tipo de dato existente
copy-data-type - Copiar un tipo de dato
move-data-type - Mover un tipo de dato a una ubicación diferente
create-data-type-folder - Crear una carpeta para organizar tipos de datos
delete-data-type-folder - Eliminar una carpeta de tipos de datos
get-data-type-folder - Obtener información sobre una carpeta de tipos de datos
update-data-type-folder - Actualizar los detalles de una carpeta de tipos de datos
Diccionario
get-dictionary-search - Buscar elementos de diccionario
get-dictionary-by-key - Obtener un elemento de diccionario por clave
create-dictionary - Crear un nuevo elemento de diccionario
update-dictionary - Actualizar un elemento de diccionario
delete-dictionary - Eliminar un elemento de diccionario
Documento
get-document-by-id - Obtener un documento por ID
get-document-publish - Obtener el estado de publicación del documento
get-document-configuration - Obtener la configuración del documento
copy-document - Copiar un documento
create-document - Crear un nuevo documento
post-document-public-access - Establecer acceso público al documento
delete-document - Eliminar un documento
delete-document-public-access - Eliminar el acceso público de un documento
get-document-urls - Obtener URLs del documento
get-document-domains - Obtener dominios del documento
get-document-audit-log - Obtener registro de auditoría del documento
get-document-public-access - Obtener configuración de acceso público del documento
move-document - Mover un documento
move-to-recycle-bin - Mover documento a la papelera de reciclaje
get-document-notifications - Obtener notificaciones del documento
publish-document - Publicar un documento
publish-document-with-descendants - Publicar un documento y sus descendientes
sort-document - Ordenar el orden de los documentos
unpublish-document - Despublicar un documento
update-document - Actualizar un documento
put-document-domains - Actualizar dominios del documento
put-document-notifications - Actualizar notificaciones del documento
put-document-public-access - Actualizar acceso público del documento
delete-from-recycle-bin - Eliminar documento de la papelera de reciclaje
empty-recycle-bin - Vaciar la papelera de reciclaje
get-recycle-bin-root - Obtener elementos raíz en la papelera de reciclaje
get-recycle-bin-children - Obtener elementos secundarios en la papelera de reciclaje
search-document - Buscar documentos
validate-document - Validar un documento
get-document-root - Obtener documentos raíz
get-document-children - Obtener documentos secundarios
get-document-ancestors - Obtener ancestros del documento
Blueprint de documento
get-blueprint - Obtener un blueprint de documento
delete-blueprint - Eliminar un blueprint de documento
update-blueprint - Actualizar un blueprint de documento
create-blueprint - Crear un nuevo blueprint de documento
get-blueprint-ancestors - Obtener ancestros del blueprint
get-blueprint-children - Obtener hijos del blueprint
get-blueprint-root - Obtener blueprints raíz
Tipo de documento
get-document-type - Obtener un tipo de documento
get-document-type-configuration - Obtener configuración del tipo de documento
get-document-type-blueprint - Obtener blueprint del tipo de documento
get-document-type-by-id-array - Obtener tipos de documento por IDs
get-document-type-available-compositions - Obtener composiciones disponibles
get-document-type-composition-references - Obtener referencias de composición
update-document-type - Actualizar un tipo de documento
copy-document-type - Copiar un tipo de documento
move-document-type - Mover un tipo de documento
create-document-type - Crear un nuevo tipo de documento
delete-document-type - Eliminar un tipo de documento
create-element-type - Crear un tipo de elemento
get-icons - Obtener iconos disponibles
get-document-type-allowed-children - Obtener tipos secundarios permitidos
get-all-document-types - Obtener todos los tipos de documento
create-document-type-folder - Crear una carpeta
delete-document-type-folder - Eliminar una carpeta
get-document-type-folder - Obtener información de la carpeta
update-document-type-folder - Actualizar detalles de la carpeta
get-document-type-root - Obtener tipos de documento raíz
get-document-type-ancestors - Obtener ancestros del tipo de documento
get-document-type-children - Obtener hijos del tipo de documento
Idioma
get-language-items - Obtener todos los idiomas
get-default-language - Obtener idioma predeterminado
create-language - Crear un nuevo idioma
update-language - Actualizar un idioma
delete-language - Eliminar un idioma
get-language-by-iso-code - Obtener idioma por código ISO
Visor de registros
get-log-viewer-saved-search-by-name - Obtener búsqueda guardada por nombre
get-log-viewer-level-count - Obtener recuentos de niveles de registro
post-log-viewer-saved-search - Guardar una búsqueda de registros
delete-log-viewer-saved-search-by-name - Eliminar búsqueda guardada
get-log-viewer - Obtener registros
get-log-viewer-level - Obtener niveles de registro
get-log-viewer-search - Buscar registros
get-log-viewer-validate-logs - Validar registros
get-log-viewer-message-template - Obtener plantilla de mensaje
Medios
get-media-by-id - Obtener medio por ID
get-media-ancestors - Obtener ancestros del medio
get-media-children - Obtener hijos del medio
get-media-root - Obtener elementos de medios raíz
create-media - Crear nuevo medio
delete-media - Eliminar medio
update-media - Actualizar medio
get-media-configuration - Obtener configuración del medio
get-media-urls - Obtener URLs del medio
validate-media - Validar medio
sort-media - Ordenar elementos de medios
get-media-by-id-array - Obtener medios por IDs
move-media - Mover medio
get-media-audit-log - Obtener registro de auditoría del medio
get-media-recycle-bin-root - Obtener raíz de la papelera de reciclaje
get-media-recycle-bin-children - Obtener hijos de la papelera de reciclaje
empty-recycle-bin - Vaciar papelera de reciclaje
restore-from-recycle-bin - Restaurar desde la papelera de reciclaje
move-media-to-recycle-bin - Mover a la papelera de reciclaje
delete-from-recycle-bin - Eliminar de la papelera de reciclaje
Tipo de medio
get-media-type-configuration - Obtener configuración del tipo de medio
get-media-type-by-id - Obtener tipo de medio por ID
get-media-type-by-ids - Obtener tipos de medio por IDs
get-allowed - Obtener tipos de medio permitidos
get-media-type-allowed-at-root - Obtener tipos permitidos en la raíz
get-media-type-allowed-children - Obtener tipos secundarios permitidos
get-media-type-composition-references - Obtener referencias de composición
get-root - Obtener tipos de medio raíz
get-children - Obtener tipos de medio secundarios
get-ancestors - Obtener tipos de medio ancestros
get-folder - Obtener información de la carpeta
create-folder - Crear una nueva carpeta
delete-folder - Eliminar una carpeta
update-folder - Actualizar detalles de la carpeta
create-media-type - Crear un nuevo tipo de medio
copy-media-type - Copiar un tipo de medio
get-media-type-available-compositions - Obtener composiciones disponibles
update-media-type - Actualizar un tipo de medio
move-media-type - Mover un tipo de medio
delete-media-type - Eliminar un tipo de medio
Miembro
get-member - Obtener miembro por ID
create-member - Crear un nuevo miembro
delete-member - Eliminar un miembro
update-member - Actualizar un miembro
find-member - Encontrar miembros
Grupo de miembros
get-member-group - Obtener grupo de miembros
get-member-group-by-id-array - Obtener grupos de miembros por IDs
create-member-group - Crear un nuevo grupo de miembros
update-member-group - Actualizar un grupo de miembros
delete-member-group - Eliminar un grupo de miembros
get-member-group-root - Obtener grupos de miembros raíz
Tipo de miembro
get-member-type-by-id - Obtener tipo de miembro por ID
create-member-type - Crear un nuevo tipo de miembro
get-member-type-by-id-array - Obtener tipos de miembro por IDs
delete-member-type - Eliminar un tipo de miembro
update-member-type - Actualizar un tipo de miembro
copy-member-type - Copiar un tipo de miembro
get-member-type-available-compositions - Obtener composiciones disponibles
get-member-type-composition-references - Obtener referencias de composición
get-member-type-configuration - Obtener configuración del tipo de miembro
get-member-type-root - Obtener tipos de miembro raíz
Tipo de propiedad
get-property-type - Obtener tipo de propiedad por ID
get-property-type-all-property-type-groups - Obtener todos los grupos de tipos de propiedad
create-property-type - Crear un nuevo tipo de propiedad
update-property-type - Actualizar un tipo de propiedad
delete-property-type - Eliminar un tipo de propiedad
Redirección
get-all-redirects - Obtener todas las redirecciones
get-redirect-by-id - Obtener redirección por ID
delete-redirect - Eliminar una redirección
get-redirect-status - Obtener estado de redirección
update-redirect-status - Actualizar estado de redirección
Servidor
get-server-status - Obtener estado del servidor
get-server-log-file - Obtener archivo de registro del servidor
tour-status - Obtener estado del recorrido
upgrade-status - Obtener estado de actualización
Plantilla
get-template-search - Buscar plantillas por nombre
get-template - Obtener una plantilla por ID
get-templates-by-id-array - Obtener plantillas por IDs
create-template - Crear una nueva plantilla
update-template - Actualizar una plantilla por ID
delete-template - Eliminar una plantilla por ID
execute-template-query - Ejecutar consultas de plantilla y devolver código LINQ generado
get-template-query-settings - Obtener esquema para consultas de plantilla (tipos de documento, propiedades, operadores)
get-template-root - Obtener elementos de plantilla raíz
get-template-children - Obtener plantillas secundarias o carpetas de plantillas por ID del elemento principal
get-template-ancestors - Obtener ancestros de una plantilla por ID
Archivo temporal
create-temporary-file - Crear un archivo temporal
get-temporary-file - Obtener un archivo temporal
delete-temporary-file - Eliminar un archivo temporal
get-temporary-file-configuration - Obtener configuración de archivo temporal
Grupo de usuarios
get-user-group - Obtener grupo de usuarios
get-user-group-by-id-array - Obtener grupos de usuarios por IDs
get-user-groups - Obtener todos los grupos de usuarios
get-filter-user-group - Filtrar grupos de usuarios
create-user-group - Crear un nuevo grupo de usuarios
update-user-group - Actualizar un grupo de usuarios
delete-user-group - Eliminar un grupo de usuarios
delete-user-groups - Eliminar múltiples grupos de usuarios
Webhook
get-webhook-by-id - Obtener webhook por ID
get-webhook-by-id-array - Obtener webhooks por IDs
delete-webhook - Eliminar un webhook
update-webhook - Actualizar un webhook
get-webhook-events - Obtener eventos de webhook
get-all-webhook-logs - Obtener todos los registros de webhook
create-webhook - Crear un nuevo webhook
Contribuir con herramientas de IA
Este proyecto está optimizado para el desarrollo con asistentes de codificación de IA. Proporcionamos archivos de instrucciones para herramientas de IA populares para ayudar a mantener la coherencia con nuestros patrones establecidos y estándares de prueba.
Uso de rulesync
El proyecto incluye archivos de configuración de rulesync que pueden generar automáticamente archivos de instrucciones para 19+ herramientas de desarrollo de IA. Genere archivos de configuración para sus herramientas de IA preferidas:
# Generate only for Claude Code
npx rulesync generate --claudecode
# Generate only for Cursor
npx rulesync generate --cursor
# Generate only for Vs Code Copilot
npx rulesync generate --copilot
Otras herramientas de IA
rulesync admite 19+ herramientas de desarrollo de IA, incluyendo GitHub Copilot, Cline, Aider y más. Consulte el repositorio de rulesync para obtener la lista completa de herramientas compatibles.
Los archivos de instrucciones cubren:
- Patrones y convenciones de desarrollo de MCP
- Directrices de implementación de TypeScript
- Estándares integrales de prueba con builders y helpers
- Contexto y arquitectura específicos del proyecto
- Patrones de integración de API con Umbraco Management API