HaveTML

Publique HTML gerado por IA como páginas hospedadas e compartilháveis. Conecte Claude, ChatGPT ou Cursor para enviar artefatos, organizar pastas e projetos, e coletar comentários em links compartilhados.

Servidor MCP hospedado

npx add-mcp 'https://havetml.com/mcp/mcpservers'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Publicar artefatos HTML, Markdown, YAML e JSON como links de compartilhamento permanentes e com comentários. Conecte o HaveTML via MCP e seu assistente pode publicar o que ele criou, entregar o link de compartilhamento e ler os comentários que chegarem.

O servidor MCP é gratuito para todos. 60 ferramentas — 21 delas somente leitura — via Streamable HTTP em https://havetml.com/api/mcp.

01

O que seu assistente pode fazer

  • Publicar o HTML, Markdown, YAML ou JSON que seu assistente acabou de escrever e obter um link que você pode enviar para qualquer pessoa.
  • Republicar o mesmo artefato e ele se torna uma nova versão atrás do mesmo link, com as versões antigas ainda legíveis.
  • Ler os comentários que as pessoas fixaram na página renderizada e o estado JSON que elas alteraram ao usá-la.
  • Agrupar o trabalho em projetos, organizá-lo em um canvas e registrar as decisões tomadas sobre ele.

02

Instale na sua ferramenta

Cada configuração abaixo está completa, exceto pelo token. Crie uma conta e o assistente de conexão entrega o mesmo bloco com um token ativo já preenchido — ou cole um token em Dashboard → API access via havetml_your_token_here.

Conector Claude

Name: HaveTML
Remote MCP server URL: https://havetml.com/api/mcp
OAuth Client ID: (leave blank)
OAuth Client Secret: (leave blank)

Claude → Customize → Connectors → Add custom connector. Cole a URL, deixe OAuth Client ID/Secret em branco e aprove o acesso no HaveTML.

Claude Code

claude mcp add --transport http havetml https://havetml.com/api/mcp \
  --header "Authorization: Bearer havetml_your_token_here"

Execute em qualquer terminal e digite /mcp no Claude Code para confirmar a conexão.

Codex

# ~/.codex/config.toml
[mcp_servers.havetml]
url = "https://havetml.com/api/mcp"
bearer_token_env_var = "HAVETML_TOKEN"

# then, in your shell profile:
export HAVETML_TOKEN="havetml_your_token_here"

Adicione em ~/.codex/config.toml. O ChatGPT desktop, o Codex CLI e a extensão Codex IDE compartilham essa configuração.

Cursor

{
  "mcpServers": {
    "havetml": {
      "url": "https://havetml.com/api/mcp",
      "headers": {
        "Authorization": "Bearer havetml_your_token_here"
      }
    }
  }
}

Global: ~/.cursor/mcp.json — ou .cursor/mcp.json dentro de um projeto.

Windsurf

{
  "mcpServers": {
    "havetml": {
      "serverUrl": "https://havetml.com/api/mcp",
      "headers": {
        "Authorization": "Bearer havetml_your_token_here"
      }
    }
  }
}

Adicione em ~/.codeium/windsurf/mcp_config.json ou cole em Settings → Cascade → Manage MCPs → View raw config. Servidores remotos precisam de serverUrl, não url; clique em Refresh depois.

Claude Desktop

{
  "mcpServers": {
    "havetml": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://havetml.com/api/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer havetml_your_token_here"
      }
    }
  }
}

Use o app Desktop → Developer → Edit Config, não Customize → Connectors. Isso usa mcp-remote como ponte local; reinicie o Claude Desktop após salvar.

Outros clientes MCP

{
  "mcpServers": {
    "havetml": {
      "url": "https://havetml.com/api/mcp",
      "headers": {
        "Authorization": "Bearer havetml_your_token_here"
      }
    }
  }
}

Use isso para ferramentas que suportam servidores remotos Streamable HTTP. Para clientes somente stdio, use o padrão de ponte do Claude Desktop.

03

Como ele faz login

Conectores Claude

Entre sem token

Cole a URL do servidor no formulário Add custom connector do Claude e deixe os dois campos OAuth vazios. O Claude descobre o servidor de autorização do HaveTML sozinho e envia você para cá para aprovar o acesso. Se negar, o Claude simplesmente não recebe ferramentas.

Todo o resto

Um token bearer

Claude Code, Cursor, Codex, Windsurf e Claude Desktop leem um arquivo de configuração. Eles enviam Authorization: Bearer havetml_… em cada chamada. Os tokens são por conta, nomeados e revogáveis pelo dashboard.

04

As 60 ferramentas

21 de leitura, 27 de escrita, 12 que removem ou substituem algo. Cada uma delas é anotada, para que um cliente possa diferenciá-las antes de chamar.

upload_artifact escrita

Envie HTML, Markdown, YAML ou JSON e receba um link de compartilhamento permanente; reenviar cria versões.

list_artifacts leitura

Liste seus artefatos, opcionalmente limitados a um projeto.

set_artifact_visibility escrita

Mova um artefato existente entre privado, círculo, não listado e público.

create_encrypted_artifact escrita

Armazene um envelope criptografado na sua própria máquina, para que o HaveTML guarde apenas o texto cifrado.

create_project escrita

Crie um projeto — uma pasta compartilhável de artefatos com página própria.

list_projects leitura

Liste seus projetos com slugs, nomes e contagens de artefatos.

set_project_default_visibility escrita

Escolha o que novos artefatos arquivados em um projeto herdam; não move nada que já está nele.

add_comment escrita

Adicione um comentário a um artefato, opcionalmente fixado em um ponto ou em uma thread.

list_comments leitura

Liste todos os comentários em um artefato, incluindo respostas em thread.

invite_collaborator escrita

Convide alguém por e-mail para ver ou editar um artefato.

list_collaborators leitura

Liste as pessoas com acesso a um artefato.

revoke_collaborator destrutiva

Revogue o acesso de um colaborador a um artefato.

invite_project_member escrita

Convide alguém por e-mail para um projeto; editores herdam acesso de edição aos artefatos dele.

list_project_members leitura

Liste as pessoas com acesso a um projeto.

revoke_project_member destrutiva

Revogue o acesso de um membro a um projeto.

create_canvas escrita

Crie um canvas: um quadro de cartões, post-its e as conexões entre eles.

get_canvas leitura

Leia um quadro de canvas: nós, arestas, notas e threads de comentários.

update_canvas destrutiva

Renomeie um quadro, reescreva suas notas ou substitua os nós e arestas dele.

add_canvas_node escrita

Adicione um nó a um canvas sem tocar no que já está nele.

add_canvas_edge escrita

Desenhe uma aresta entre dois nós já presentes em um canvas.

list_events leitura

Consulte atualizações de estado JSON e novos comentários nos seus artefatos.

register_webhook escrita

Registre um endpoint HTTPS para receber eventos assinados de artefatos, comentários e decisões.

list_webhooks leitura

Liste seus webhooks com escopo, eventos e status da última entrega.

delete_webhook destrutiva

Pare de entregar para um webhook e descarte as entregas pendentes dele.

create_decision escrita

Abra uma decisão sobre um artefato: uma pergunta que precisa ser resolvida.

list_decisions leitura

Liste as decisões em um artefato, com seus responsáveis.

get_decision leitura

Leia uma decisão por id, com detalhes completos e responsáveis.

assign_decision escrita

Registre quem deve decidir uma decisão aberta, por id de usuário ou e-mail.

revoke_assignment destrutiva

Remova um responsável de uma decisão; a decisão permanece aberta.

decide_decision escrita

Defina o resultado e a justificativa de uma decisão, bloqueando o registro permanentemente.

supersede_decision destrutiva

Substitua uma decisão decidida por uma nova; a original permanece legível e bloqueada.

update_decision escrita

Altere o título ou o contexto de uma decisão aberta.

delete_decision destrutiva

Exclua uma decisão que ainda não foi decidida.

list_templates leitura

Navegue por modelos prontos para copiar: artefatos funcionais com estado e prompt inicial.

get_template leitura

Leia o prompt inicial, o estado de demonstração e o link de demonstração de um modelo antes de criar a partir dele.

use_template escrita

Copie a demonstração de um modelo para sua conta como um artefato privado que você pode editar.

set_artifact_custom_slug escrita

Dê a um artefato público um caminho /f/ legível ou libere um, sem renomeá-lo.

add_relation escrita

Desenhe um link tipado entre dois artefatos, como substitui ou depende de.

list_relations leitura

Liste os links tipados entre seus artefatos, para um artefato ou um projeto.

remove_relation destrutiva

Exclua uma relação de artefato por id; nenhum dos artefatos é alterado.

get_artifact_content leitura

Leia o código-fonte de um artefato na versão atual ou em uma anterior.

update_artifact_json destrutiva

Altere o estado JSON ativo de um artefato sem nova versão; o modo de substituição remove chaves.

list_media leitura

Liste imagens, fontes e folhas de estilo armazenadas com um artefato e a cota de mídia usada.

remove_media destrutiva

Exclua um arquivo de mídia armazenado de um artefato e libere sua cota.

list_notes leitura

Leia as notas escritas ao lado de um artefato.

add_note escrita

Adicione uma nota às notas de um artefato, mantendo o que já está lá.

update_notes destrutiva

Substitua as notas de um artefato por novo markdown, descartando o que estava lá.

propose_canvas_layout leitura

Elabore um layout mais organizado para um quadro e retorne-o sem mover nada.

create_folder escrita

Crie uma pasta dentro de um projeto para agrupar artefatos; a visibilidade não muda.

list_folders leitura

Liste todas as pastas em um projeto com caminho e contagem de artefatos.

move_artifact escrita

Mova um artefato para uma pasta ou de volta para a raiz do projeto.

rename_folder escrita

Renomeie uma pasta; as URLs dos artefatos não são afetadas.

move_folder escrita

Mova uma pasta, com seu conteúdo, para outra pasta ou para o nível superior.

delete_folder destrutiva

Exclua uma pasta; seus artefatos e subpastas sobem um nível.

get_project leitura

Leia o nome, a descrição, as contagens e o sistema de design fixado de um projeto.

set_project_design_system escrita

Fixe um artefato como sistema de design de um projeto ou desfixe-o.

propose_folder_organise leitura

Elabore uma estrutura de pastas para um projeto e retorne-a para aprovação; não grava nada.

apply_folder_organise escrita

Aplique uma proposta de pastas aprovada; recusa se o projeto mudou desde então.

undo_folder_organise escrita

Reverta uma organização de pastas aplicada usando o plano de desfazer da resposta.

Parâmetros e descrições completas estão no README do MCP e em server-card.json, se preferir ler como JSON.

05

Limites e o que permanece privado

  • Privado por padrão. Um novo artefato abre para você e para as pessoas que você convidar, e para mais ninguém — o link sozinho não faz nada. Seu assistente precisa ser solicitado antes de tornar um link legível.
  • 50 MB por artefato no HaveTML, mas este endpoint MCP roda na Vercel, que rejeita corpos de requisição acima de 4,5 MB. Qualquer coisa maior sobe pelo dashboard.
  • Arquivos criptografados permanecem criptografados. Uma ferramenta remota não pode fazer criptografia de conhecimento zero, então o caminho criptografado criptografa na sua máquina e envia apenas texto cifrado ao HaveTML. Ele não guarda chave alguma.
  • Gratuito para todos. MCP não é um recurso pago e nada aqui consulta cobrança.

06

Leia os detalhes

  • README completo do MCP — Cada ferramenta, seu rótulo de leitura ou escrita e a configuração de conexão para cada cliente.
  • server-card.json — O cartão legível por máquina: endpoint, transporte, autenticação e lista de ferramentas.
  • Documentação do HaveTML — A API REST, tokens e a extensão Chrome junto com o MCP.

Obtenha seu token

Crie uma conta e você volta para cá, em um assistente que gera o token, preenche a configuração para a ferramenta escolhida e testa a conexão.