Underlayer

Crie, publique e acompanhe cursos de treinamento in-product pelo seu assistente de IA: cursos, alunos, conclusões e SCORM.

Servidor MCP hospedado

npx add-mcp 'https://underlayerhq.com/api/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

MCP

Um servidor MCP remoto para que Claude, Cursor e outros clientes MCP possam criar e gerenciar cursos como ferramentas — as mesmas operações da API REST, acionáveis a partir de uma conversa.

Conectar

Aponte qualquer cliente MCP que fale Streamable HTTP para esta URL, usando sua chave de API como token Bearer — a mesma chave da página API Keys do seu workspace. Cada chamada de ferramenta é limitada ao workspace daquela chave, exatamente como na API REST.

Configuração mcpServers do Claude Desktop / Cursorjson

{
  "underlayer": {
    "url": "https://underlayerhq.com/api/mcp",
    "headers": {
      "Authorization": "Bearer sk_live_..."
    }
  }
}

Para clientes que só suportam stdio e não conseguem acessar uma URL remota diretamente, faça a ponte com mcp-remote:

{
  "underlayer": {
    "command": "npx",
    "args": ["-y", "mcp-remote", "https://underlayerhq.com/api/mcp",
      "--header", "Authorization:Bearer sk_live_..."]
  }
}

OAuth, para Claude.ai e outros clientes web

O fluxo "Adicionar conector personalizado" baseado em navegador do Claude.ai não permite colar um cabeçalho Bearer — ele autentica via OAuth. O Underlayer é seu próprio servidor de autorização para isso: adicione https://underlayerhq.com/api/mcp como conector personalizado e o Claude descobre todo o resto automaticamente (metadados de recurso protegido RFC 9728 → metadados de servidor de autorização RFC 8414 → fluxo de código de autorização + PKCE, usando CIMD para se identificar — sem registro manual de cliente da sua parte).

Você verá uma tela de login (se ainda não estiver conectado) e depois uma tela de consentimento nomeando o aplicativo conector e seu workspace. Aprovar concede o mesmo acesso que uma chave de API teria — criação/leitura/atualização/exclusão completas em tudo abaixo. Revogue a qualquer momento em Connected Apps no seu painel; o acesso cessa imediatamente.

Uma coisa que esse acesso não inclui: emitir chaves de API. Uma chave é uma credencial separada, não uma visão desta conexão, então uma chave criada por um conector continuaria funcionando depois de você revogar o conector — acesso que sobrevive à própria revogação. Chaves são emitidas apenas na página API Keys, onde uma pessoa está olhando a tela. Listar e revogar estão disponíveis como ferramentas, já que nenhuma delas cria acesso.

Ferramentas

Cada recurso REST é exposto como um conjunto correspondente de ferramentas — mesma validação, mesmas restrições de plano, mesmas verificações de propriedade. Os resultados retornam como JSON.

Ferramentas de autoria escrevem; as ferramentas de progresso apenas leem. Essa assimetria é intencional: uma conclusão é um registro de algo que uma pessoa real fez, e uma ferramenta que pudesse editá-la seria uma ferramenta que poderia conceder aprovação.

Cursos

list_courses get_course create_course update_course delete_course

Telas e blocos

list_block_types list_screen_templates add_screen update_screen add_block duplicate_screen delete_screen reorder_screens

Geração com IA PLANO BUILD

generate_course get_generation

SCORM PLANO SCALE

export_scorm import_scorm

Temas PLANO SCALE

list_themes get_theme create_theme update_theme delete_theme

Coleções

list_collections get_collection create_collection update_collection delete_collection add_course_to_collection move_course_in_collection remove_course_from_collection

Traduções PLANO SCALE

list_translations get_translation create_translation update_translation delete_translation

Webhooks

list_webhooks get_webhook create_webhook update_webhook delete_webhook

Modelos de certificado PLANO SCALE

list_certificates get_certificate create_certificate update_certificate delete_certificate

Identidades

list_identities get_identity upsert_identity bulk_upsert_identities delete_identity bulk_delete_identities

Progresso do aluno SOMENTE LEITURA

list_completions get_completion list_issued_certificates get_issued_certificate

Relatórios SOMENTE LEITURA

get_overview search_content get_usage list_audit_events

Equipe e credenciais

list_members invite_member cancel_invite update_member_role remove_member list_api_keys revoke_api_key

Workspace

get_workspace_info update_workspace_settings

list_completions aceita identityExternalId, então você pode perguntar sobre um aluno usando seu próprio identificador para ele sem precisar consultar o nosso primeiro, e get_issued_certificate aceita um serial como foi digitado — maiúsculas/minúsculas e hífens são normalizados, porque o serial geralmente chega lido de um pedaço de papel.

Prefira as ferramentas de tela em vez de update_course para editar conteúdo. update_course só consegue escrever o array screens inteiro, então alterar uma tela entre trinta significa ler todas de volta e reescrever tudo — e duas edições em andamento perdem uma delas. update_screen faz a leitura-modificação-escrita no lado do servidor, em uma única tela. Comece por list_block_types: um bloco com nomes de campo errados é salvo sem erro e depois renderiza vazio.

Autenticação e erros

Cada requisição reautentica com a mesma chave Bearer da API REST — uma chave ausente ou revogada falha a conexão por completo. Um problema no nível da ferramenta (não encontrado, entrada inválida, plano necessário) retorna como resultado normal da ferramenta com isError: true e uma mensagem legível, não uma conexão quebrada.

Ações que mudam quem pode entrar — convidar, remover, alterar um papel, revogar uma chave, renomear o workspace — são gravadas no log de auditoria nomeando a chave que as executou, para que uma alteração automatizada seja tão rastreável quanto uma humana. Leia de volta com list_audit_events ou em Configurações no painel.