Umbraco MCP
Interaja com a API de Gerenciamento do Umbraco CMS para tarefas administrativas.
Documentação
THIS REPO HAS NOW MOVED - https://github.com/umbraco/Umbraco-Cms-MCP-Dev
Umbraco MCP 
Um servidor MCP (Model Context Protocol) para Umbraco CMS ele fornece acesso a partes principais da Management API, permitindo que você execute tarefas de back office com seu agente.
Introdução
O servidor MCP usa um usuário de API do Umbraco para acessar sua Management API do Umbraco, o que significa que as ferramentas disponíveis para a IA podem ser controladas usando as permissões normais de usuário do Umbraco.
Começando
Umbraco
Para que o MCP possa se comunicar com a Management API, você precisará criar um usuário de API. Se você não tiver certeza de como fazer isso, siga a documentação do Umbraco.
O nível de acesso que você fornecer a este usuário determinará o que seu agente poderá fazer.
Instalação
Primeiro, crie um usuário de API do Umbraco com as permissões apropriadas. Você pode encontrar instruções na documentação do Umbraco.
Claude Desktop
Para começar a usar o Umbraco MCP com o Claude, primeiro baixe e instale o aplicativo de desktop Claude.ai.
Inicie sua instância do Umbraco (atualmente funcionando com a versão 15.latest) e crie novas credenciais de usuário de API. Você pode ver instruções sobre como fazer isso na documentação do Umbraco.
Depois de ter essas informações, volte ao aplicativo de desktop do Claude e vá para Configurações > Desenvolvedor > Editar Config. Abra o arquivo json em um editor de texto de sua escolha e adicione o conteúdo abaixo, substituindo UMBRACO_CLIENT_ID, UMBRACO_CLIENT_SECRET e UMBRACO_BASE_URL pelas suas informações de conexão local. A adição da flag de ambiente NODE_TLS_REJECT_UNAUTHORIZED é para permitir que o Claude se conecte ao MCP usando um certificado autoassinado.
{
"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"
}
}
}
}
Reinicie o Claude e experimente com um prompt simples como Tell me the GUID of the home page document type. Você precisará permitir cada uma das ferramentas conforme o Umbraco MCP começa a trabalhar. Se você receber um erro de conexão com o Umbraco MCP, clique no botão para abrir os logs e revise o arquivo mcp-server-umbraco-mcp.log para obter informações adicionais sobre como corrigir o problema.
[!NOTE] Você pode precisar atualizar para uma versão paga do Claude.ai para ter um contexto grande o suficiente para executar seus prompts.
Claude Code
Use a CLI do Claude Code para adicionar o servidor Umbraco MCP:
claude mcp add umbraco-mcp npx @umbraco-mcp/umbraco-mcp-cms@alpha
Ou configure as variáveis de ambiente e o escopo:
# 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
Isso adicionará umbraco-mcp ao projeto existente no arquivo de configuração claude.json.
VS Code
Clique no botão para instalar:
Requisitos: VS Code 1.101+ com a extensão GitHub Copilot Chat instalada.
Ou instale manualmente: Siga o guia de instalação do MCP, use esta configuração.
{
"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
Ou instale manualmente:
Vá para Cursor Settings -> Tools & Integrations -> Add new MCP Server.
Adicione o seguinte ao arquivo de configuração e atualize as variáveis de ambiente.
{
"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>"
}
}
}
}
Variáveis de Ambiente de Configuração
UMBRACO_CLIENT_ID
Nome do usuário da API do Umbraco
UMBRACO_CLIENT_SECRET
Segredo do cliente do usuário da API do Umbraco
UMBRACO_BASE_URL
URL do site ao qual você deseja se conectar, precisa apenas do esquema e domínio, por exemplo https://example.com
EXCLUDE_MANAGEMENT_TOOLS
Isso permite que você especifique ferramentas por nome se desejar excluí-las da lista de ferramentas utilizáveis. Isso é útil porque alguns agentes não conseguem lidar com muitas ferramentas. Esta é uma lista separada por vírgulas de ferramentas que podem ser encontradas abaixo.
Ferramentas da Management API do Umbraco
Ver lista de ferramentas
Culture
get-culture - obtém todas as culturas disponíveis para o Umbraco
Data Type
get-data-type-search - Pesquisar tipos de dados
get-data-type - Obter um tipo de dados específico por ID
get-data-type-references - Obter referências a um tipo de dados
is-used-data-type - Verificar se um tipo de dados está em uso
get-data-type-root - Obter tipos de dados de nível raiz
get-data-type-children - Obter tipos de dados filhos
get-data-type-ancestors - Obter tipos de dados ancestrais
get-all-data-types - Obter todos os tipos de dados
delete-data-type - Excluir um tipo de dados
create-data-type - Criar um novo tipo de dados
update-data-type - Atualizar um tipo de dados existente
copy-data-type - Copiar um tipo de dados
move-data-type - Mover um tipo de dados para um local diferente
create-data-type-folder - Criar uma pasta para organizar tipos de dados
delete-data-type-folder - Excluir uma pasta de tipos de dados
get-data-type-folder - Obter informações sobre uma pasta de tipos de dados
update-data-type-folder - Atualizar os detalhes de uma pasta de tipos de dados
Dictionary
get-dictionary-search - Pesquisar itens de dicionário
get-dictionary-by-key - Obter um item de dicionário por chave
create-dictionary - Criar um novo item de dicionário
update-dictionary - Atualizar um item de dicionário
delete-dictionary - Excluir um item de dicionário
Document
get-document-by-id - Obter um documento por ID
get-document-publish - Obter status de publicação do documento
get-document-configuration - Obter configuração do documento
copy-document - Copiar um documento
create-document - Criar um novo documento
post-document-public-access - Definir acesso público ao documento
delete-document - Excluir um documento
delete-document-public-access - Remover acesso público de um documento
get-document-urls - Obter URLs do documento
get-document-domains - Obter domínios do documento
get-document-audit-log - Obter log de auditoria do documento
get-document-public-access - Obter configurações de acesso público do documento
move-document - Mover um documento
move-to-recycle-bin - Mover documento para a lixeira
get-document-notifications - Obter notificações do documento
publish-document - Publicar um documento
publish-document-with-descendants - Publicar um documento e seus descendentes
sort-document - Classificar ordem do documento
unpublish-document - Despublicar um documento
update-document - Atualizar um documento
put-document-domains - Atualizar domínios do documento
put-document-notifications - Atualizar notificações do documento
put-document-public-access - Atualizar acesso público do documento
delete-from-recycle-bin - Excluir documento da lixeira
empty-recycle-bin - Esvaziar a lixeira
get-recycle-bin-root - Obter itens raiz na lixeira
get-recycle-bin-children - Obter itens filhos na lixeira
search-document - Pesquisar documentos
validate-document - Validar um documento
get-document-root - Obter documentos raiz
get-document-children - Obter documentos filhos
get-document-ancestors - Obter ancestrais do documento
Document Blueprint
get-blueprint - Obter um blueprint de documento
delete-blueprint - Excluir um blueprint de documento
update-blueprint - Atualizar um blueprint de documento
create-blueprint - Criar um novo blueprint de documento
get-blueprint-ancestors - Obter ancestrais do blueprint
get-blueprint-children - Obter filhos do blueprint
get-blueprint-root - Obter blueprints raiz
Document Type
get-document-type - Obter um tipo de documento
get-document-type-configuration - Obter configuração do tipo de documento
get-document-type-blueprint - Obter blueprint do tipo de documento
get-document-type-by-id-array - Obter tipos de documento por IDs
get-document-type-available-compositions - Obter composições disponíveis
get-document-type-composition-references - Obter referências de composição
update-document-type - Atualizar um tipo de documento
copy-document-type - Copiar um tipo de documento
move-document-type - Mover um tipo de documento
create-document-type - Criar um novo tipo de documento
delete-document-type - Excluir um tipo de documento
create-element-type - Criar um tipo de elemento
get-icons - Obter ícones disponíveis
get-document-type-allowed-children - Obter tipos filhos permitidos
get-all-document-types - Obter todos os tipos de documento
create-document-type-folder - Criar uma pasta
delete-document-type-folder - Excluir uma pasta
get-document-type-folder - Obter informações da pasta
update-document-type-folder - Atualizar detalhes da pasta
get-document-type-root - Obter tipos de documento raiz
get-document-type-ancestors - Obter ancestrais do tipo de documento
get-document-type-children - Obter filhos do tipo de documento
Language
get-language-items - Obter todos os idiomas
get-default-language - Obter idioma padrão
create-language - Criar um novo idioma
update-language - Atualizar um idioma
delete-language - Excluir um idioma
get-language-by-iso-code - Obter idioma pelo código ISO
Log Viewer
get-log-viewer-saved-search-by-name - Obter pesquisa salva por nome
get-log-viewer-level-count - Obter contagens de níveis de log
post-log-viewer-saved-search - Salvar uma pesquisa de log
delete-log-viewer-saved-search-by-name - Excluir pesquisa salva
get-log-viewer - Obter logs
get-log-viewer-level - Obter níveis de log
get-log-viewer-search - Pesquisar logs
get-log-viewer-validate-logs - Validar logs
get-log-viewer-message-template - Obter modelo de mensagem
Media
get-media-by-id - Obter mídia por ID
get-media-ancestors - Obter ancestrais da mídia
get-media-children - Obter filhos da mídia
get-media-root - Obter itens de mídia raiz
create-media - Criar nova mídia
delete-media - Excluir mídia
update-media - Atualizar mídia
get-media-configuration - Obter configuração da mídia
get-media-urls - Obter URLs da mídia
validate-media - Validar mídia
sort-media - Classificar itens de mídia
get-media-by-id-array - Obter mídia por IDs
move-media - Mover mídia
get-media-audit-log - Obter log de auditoria da mídia
get-media-recycle-bin-root - Obter raiz da lixeira
get-media-recycle-bin-children - Obter filhos da lixeira
empty-recycle-bin - Esvaziar a lixeira
restore-from-recycle-bin - Restaurar da lixeira
move-media-to-recycle-bin - Mover para a lixeira
delete-from-recycle-bin - Excluir da lixeira
Media Type
get-media-type-configuration - Obter configuração do tipo de mídia
get-media-type-by-id - Obter tipo de mídia por ID
get-media-type-by-ids - Obter tipos de mídia por IDs
get-allowed - Obter tipos de mídia permitidos
get-media-type-allowed-at-root - Obter tipos permitidos na raiz
get-media-type-allowed-children - Obter tipos filhos permitidos
get-media-type-composition-references - Obter referências de composição
get-root - Obter tipos de mídia raiz
get-children - Obter tipos de mídia filhos
get-ancestors - Obter tipos de mídia ancestrais
get-folder - Obter informações da pasta
create-folder - Criar uma nova pasta
delete-folder - Excluir uma pasta
update-folder - Atualizar detalhes da pasta
create-media-type - Criar um novo tipo de mídia
copy-media-type - Copiar um tipo de mídia
get-media-type-available-compositions - Obter composições disponíveis
update-media-type - Atualizar um tipo de mídia
move-media-type - Mover um tipo de mídia
delete-media-type - Excluir um tipo de mídia
Member
get-member - Obter membro por ID
create-member - Criar um novo membro
delete-member - Excluir um membro
update-member - Atualizar um membro
find-member - Encontrar membros
Member Group
get-member-group - Obter grupo de membros
get-member-group-by-id-array - Obter grupos de membros por IDs
create-member-group - Criar um novo grupo de membros
update-member-group - Atualizar um grupo de membros
delete-member-group - Excluir um grupo de membros
get-member-group-root - Obter grupos de membros raiz
Member Type
get-member-type-by-id - Obter tipo de membro por ID
create-member-type - Criar um novo tipo de membro
get-member-type-by-id-array - Obter tipos de membro por IDs
delete-member-type - Excluir um tipo de membro
update-member-type - Atualizar um tipo de membro
copy-member-type - Copiar um tipo de membro
get-member-type-available-compositions - Obter composições disponíveis
get-member-type-composition-references - Obter referências de composição
get-member-type-configuration - Obter configuração do tipo de membro
get-member-type-root - Obter tipos de membro raiz
Tipo de Propriedade
get-property-type - Obter tipo de propriedade por ID
get-property-type-all-property-type-groups - Obter todos os grupos de tipos de propriedade
create-property-type - Criar um novo tipo de propriedade
update-property-type - Atualizar um tipo de propriedade
delete-property-type - Excluir um tipo de propriedade
Redirecionamento
get-all-redirects - Obter todos os redirecionamentos
get-redirect-by-id - Obter redirecionamento por ID
delete-redirect - Excluir um redirecionamento
get-redirect-status - Obter status do redirecionamento
update-redirect-status - Atualizar status do redirecionamento
Servidor
get-server-status - Obter status do servidor
get-server-log-file - Obter arquivo de log do servidor
tour-status - Obter status do tour
upgrade-status - Obter status de atualização
Modelo
get-template-search - Pesquisar modelos por nome
get-template - Obter um modelo por ID
get-templates-by-id-array - Obter modelos por IDs
create-template - Criar um novo modelo
update-template - Atualizar um modelo por ID
delete-template - Excluir um modelo por ID
execute-template-query - Executar consultas de modelo e retornar código LINQ gerado
get-template-query-settings - Obter esquema para consultas de modelo (tipos de documento, propriedades, operadores)
get-template-root - Obter itens de modelo raiz
get-template-children - Obter modelos filhos ou pastas de modelos por ID do pai
get-template-ancestors - Obter ancestrais de um modelo por ID
Arquivo Temporário
create-temporary-file - Criar um arquivo temporário
get-temporary-file - Obter um arquivo temporário
delete-temporary-file - Excluir um arquivo temporário
get-temporary-file-configuration - Obter configuração de arquivo temporário
Grupo de Usuários
get-user-group - Obter grupo de usuários
get-user-group-by-id-array - Obter grupos de usuários por IDs
get-user-groups - Obter todos os grupos de usuários
get-filter-user-group - Filtrar grupos de usuários
create-user-group - Criar um novo grupo de usuários
update-user-group - Atualizar um grupo de usuários
delete-user-group - Excluir um grupo de usuários
delete-user-groups - Excluir vários grupos de usuários
Webhook
get-webhook-by-id - Obter webhook por ID
get-webhook-by-id-array - Obter webhooks por IDs
delete-webhook - Excluir um webhook
update-webhook - Atualizar um webhook
get-webhook-events - Obter eventos de webhook
get-all-webhook-logs - Obter todos os logs de webhook
create-webhook - Criar um novo webhook
Contribuindo com Ferramentas de IA
Este projeto é otimizado para desenvolvimento com assistentes de codificação por IA. Fornecemos arquivos de instrução para ferramentas de IA populares para ajudar a manter consistência com nossos padrões estabelecidos e práticas de teste.
Usando rulesync
O projeto inclui arquivos de configuração do rulesync que podem gerar automaticamente arquivos de instrução para mais de 19 ferramentas de desenvolvimento de IA. Gere arquivos de configuração para suas ferramentas 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
Outras Ferramentas de IA
O rulesync suporta mais de 19 ferramentas de desenvolvimento de IA, incluindo GitHub Copilot, Cline, Aider e outras. Consulte o repositório do rulesync para a lista completa de ferramentas suportadas.
Os arquivos de instrução cobrem:
- Padrões e convenções de desenvolvimento MCP
- Diretrizes de implementação em TypeScript
- Padrões abrangentes de teste com builders e helpers
- Contexto e arquitetura específicos do projeto
- Padrões de integração de API com a Umbraco Management API