Servidor MCP

Visão geral

O Creator inclui um servidor MCP (Model Context Protocol) incorporado. Qualquer assistente de IA compatível com MCP — Claude em claude.ai, Claude Code, MCP Inspector — pode ligar-se à sua conta Creator e, a partir de um chat, fazer tudo o que o editor faz:

  • Explorar o seu espaço de trabalho e organizações
  • Criar pastas, cursos, microlearnings e bancos de perguntas
  • Adicionar, editar, mover e eliminar lições e todos os 44 tipos de brick com a sua configuração completa
  • Configurar o tema do conteúdo (cores, tipos de letra, capa, CSS personalizado)
  • Exportar para SCORM, web ou PDF, publicar links de partilha, gerir snapshots, duplicar e traduzir

A autenticação usa OAuth contra a sua conta SLXD: o assistente nunca vê a sua palavra-passe e pode revogar o acesso a qualquer momento. Tudo o que o assistente faz está limitado ao que o seu utilizador pode fazer — a associação e os papéis na organização são impostos em cada chamada.

Ligar

O endpoint MCP é o URL do conector da sua organização:

https://<a-sua-organizacao>.slxd.app/mcp/creator

Não precisa de o construir à mão: a plataforma SLXD mostra-o em Organização > Conectores, ao lado dos conectores dos outros produtos da suite.

claude.ai

  1. Vá a Definições > Conectores > Adicionar conector personalizado
  2. Cole o URL do endpoint
  3. Complete o início de sessão e autorize o acesso

Claude Code

claude mcp add --transport http creator https://<a-sua-organizacao>.slxd.app/mcp/creator

A primeira chamada abre o navegador para iniciar sessão e autorizar.

Os clientes registam-se automaticamente (registo dinâmico de cliente OAuth) — não há nada a configurar do lado do servidor.

Como funcionam as ferramentas

O servidor expõe um conjunto selecionado de ferramentas de topo (exploração do espaço de trabalho, CRUD de conteúdo/lição, bricks, tema, exportação, carregamento de ficheiros, duplicação de conteúdo) mais três meta-ferramentas que desbloqueiam o catálogo completo:

browse_workspace cobre três necessidades: explorar um nível de pasta, pesquisar em todo o âmbito por título/nome com query, ou mapear toda a árvore de pastas numa única chamada com recursive: true (cada pasta com o seu parentId). Para clonar um conteúdo — lições, bricks e recursos — como modelo, use duplicate_content (de topo); duplicate_lesson faz o mesmo para uma única lição.

Além da autoria, o catálogo também cobre: o ciclo de vida completo do lixo para pastas (restore_folder, delete_folder_permanently) e operações em lote sobre conteúdo (batch_move_contents, batch_trash_contents); mover um conteúdo entre organizações (update_content com targetOrganizationId); gestão de versões (rename_snapshot, delete_snapshot); pesquisa em bibliotecas de stock licenciadas e importação de um recurso para um conteúdo (search_stock_images/import_stock_image, search_stock_icons/import_stock_icon); e auditoria e correção de problemas de acessibilidade (ver abaixo). A média que o modelo gera por si mesmo é carregada com request_asset_upload.

Meta-ferramentaFinalidade
find_toolsPesquisar em todo o catálogo por palavra-chave (publicação, snapshots, tradução, modelos, lixo…)
tool_schemaObter o esquema de entrada de qualquer ferramenta do catálogo
run_toolExecutar uma ferramenta do catálogo pelo nome

Para os bricks, list_brick_types lista todos os tipos agrupados por categoria (texto, média, coleções, perguntas, jogos) com uma sugestão de "quando usar" para escolher o mais adequado a um objetivo pedagógico, e get_brick_type_schema devolve a forma exata de autoria (com um exemplo) para cada um — o texto rico é gerado como HTML simples.

Escolher o brick certo

Para ajudar o assistente a escolher o brick mais apropriado, list_brick_types inclui orientação de "quando usar" por tipo, e o recurso creator://guides/brick-selection é um guia de seleção completo (intenção → bricks recomendados). Ambos são gerados a partir da mesma fonte, pelo que nunca divergem, e ambos funcionam em qualquer cliente MCP.

Carregar ficheiros

O conteúdo do Creator usa ficheiros — imagens, vídeo, áudio, legendas, anexos descarregáveis, tipos de letra personalizados, pacotes de incorporação — e o MCP pode carregá-los. O binário nunca passa pelo MCP (sem base64): a ferramenta gera um URL de carregamento pré-assinado de curta duração e o cliente envia o ficheiro diretamente para o armazenamento, fora de banda.

O fluxo para um recurso de brick:

  1. Chame request_asset_upload com o contentId de destino, o kind (image | video | audio | subtitle | attachment | font) e o contentType do ficheiro (por exemplo, image/png). Cada tipo tem uma lista de MIME permitidos, pelo que um tipo incompatível é rejeitado de imediato.
  2. A ferramenta devolve { uploadUrl, path, curlCommand, expiresAt }. Carregue o ficheiro — execute o curlCommand devolvido (substituindo <local-file> pelo caminho real) ou faça um PUT dos bytes para uploadUrl com o Content-Type exato. O URL expira ao fim de 15 minutos.
  3. Coloque o path devolvido no campo de média do brick através de add_brick / update_brick (imagePath, videoPath, audioPath, filePath, posterPath, subtitlesPath, front*/back*/…), ou no tema através de update_theme (imagem de capa, logótipo, tipos de letra woff2 personalizados).

list_content_assets devolve os ficheiros já carregados para um conteúdo, para que um recurso existente possa ser reutilizado em vez de carregado novamente.

Bricks de incorporação (um pacote autónomo de index.html + recursos) usam request_embed_upload: carregue cada ficheiro do pacote sob o mesmo folderId, depois defina o embedFolderPrefix devolvido no brick EMBED. Estes ficam alojados no bucket privado embeds com o seu Content-Type fixado e são servidos a quem os vê através de URL efémeros por pasta — nunca a partir de um domínio público.

Importações seguem o mesmo padrão pré-assinado:

  • Articulate Rise — start_rise_import (carregar o .zip) → confirm_rise_import → sondar get_rise_import até completed para ler o contentId criado.

A importação de documentos de design instrucional não é exposta intencionalmente via MCP: o seu passo de análise depende de extração do lado do navegador na aplicação, pelo que o fluxo não pode ser concluído sem interface — faça-o no editor de Design Instrucional da aplicação.

Todas as ferramentas de carregamento autorizam o conteúdo de destino (âmbito + associação à organização) antes de assinar, e o servidor constrói a chave de armazenamento — um cliente nunca fornece um caminho em bruto.

Acessibilidade

O mesmo verificador WCAG 2.2 que alimenta o verificador de acessibilidade do editor é exposto via MCP, para que um assistente possa rever e corrigir um curso de ponta a ponta:

  1. audit_content_accessibility — contagens de erros/avisos por lição num conteúdo. Comece aqui para uma visão geral do curso.
  2. audit_lesson_accessibility — cada problema numa lição: a regra, o critério WCAG, o brick afetado, uma razão e o texto de correção (no idioma do conteúdo), e — quando existe uma correção segura — um descritor autofixes.
  3. apply_accessibility_autofix — aplica um desses descritores (marcar uma imagem como decorativa, corrigir o nível de um título, ativar um cabeçalho de tabela…) ao brick/item exato. Um passo de anulação; as alterações chegam a um editor aberto em tempo real, tal como update_brick.
  4. generate_accessibility_alt_text — para imagens sem uma correção determinística segura, envia a imagem ao modelo de visão de IA configurado e devolve texto alternativo sugerido. Não escreve nada — aplique o resultado com apply_accessibility_autofix (kind: "set-property", ou "set-item-property"/"set-character-property" para imagens de galeria/diálogo). Consome créditos da organização, tal como as outras ferramentas de IA.

Um fluxo típico: chame audit_content_accessibility, escolha uma lição com problemas, chame audit_lesson_accessibility sobre ela, aplique as correções determinísticas, gere e aplique texto alternativo para o resto, depois volte a executar a auditoria da lição para confirmar que está limpa.

Colaboração em tempo real

As edições de brick feitas via MCP são fundidas através do servidor de colaboração: se alguém tiver a lição aberta no editor, verá as alterações do assistente aparecer em tempo real, e o trabalho de ninguém é substituído.

Ações destrutivas

Eliminar conteúdo, lições ou bricks, repor temas, restaurar snapshots e esvaziar o lixo exigem todos um confirm: true explícito. Sem ele, a ferramenta responde com uma pré-visualização do que aconteceria, para que o assistente possa perguntar-lhe primeiro.

Notas de operação

  • O servidor de autorização OAuth faz parte da aplicação (plugin mcp do Better Auth); os tokens vivem nas tabelas oauth_* e expiram ao fim de 1 hora (tokens de atualização: 7 dias).
  • O endpoint tem um limite de taxa por utilizador (120 pedidos/minuto).
  • Quando a faturação está ativada, o acesso MCP é controlado pela funcionalidade apiAccess do plano, tal como as chaves de API.
Servidor MCP