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.