MCP Integration

O Model Context Protocol (MCP) permite que ferramentas de IA como ChatGPT, Claude, Cursor e outras publiquem sites HTML diretamente no Htmly. Basta enviar o HTML e receber uma URL ao vivo em segundos.

Como funciona

1. A ferramenta de IA consulta o endpoint de descoberta de tools para saber quais acoes estao disponiveis.

2. O usuario pede para a IA publicar o HTML gerado.

3. A IA chama o endpoint de deploy com o HTML, e o Htmly retorna a URL do site publicado.

Autenticacao

O endpoint de deploy requer autenticacao via API key no header Authorization como Bearer token. Voce encontra sua API key na pagina de Perfil do dashboard (/profile).

O endpoint de descoberta de tools (GET /api/v1/mcp/tools) e publico e nao requer autenticacao.

Endpoints

MetodoEndpointDescricao
GET
/api/v1/mcp/toolsDescoberta de tools MCP (publico)
POST
/api/v1/mcp/deployDeploy de HTML (autenticado)

Descoberta de Tools

GET
/api/v1/mcp/tools

Retorna o schema das tools disponiveis no formato MCP. Este endpoint e publico e nao requer autenticacao.

curl -X GET https://htmly.com.br/api/v1/mcp/tools

# Response 200
{
  "tools": [
    {
      "name": "deploy_html",
      "description": "Deploy an HTML page to Htmly and get a live URL...",
      "inputSchema": {
        "type": "object",
        "properties": {
          "html": {
            "type": "string",
            "description": "The full HTML content to deploy (max 512KB)."
          },
          "slug": {
            "type": "string",
            "description": "URL-safe slug for the site..."
          },
          "title": { "type": "string" },
          "meta_description": { "type": "string" },
          "source": {
            "type": "string",
            "enum": ["chatgpt", "claude", "cursor", "bolt", "v0", "other_ai", "manual", "unknown"]
          }
        },
        "required": ["html"]
      }
    }
  ]
}

Deploy de HTML

POST
/api/v1/mcp/deploy

Publica conteudo HTML no Htmly. Se o slug corresponder a um site existente do usuario, o conteudo e atualizado. Caso contrario, um novo site e criado.

Parametros

CampoTipoObrigatorioDescricao
htmlstringSimConteudo HTML completo (max 512KB)
slugstringNaoSlug URL-safe (3-63 chars). Se omitido, um slug aleatorio e gerado.
titlestringNaoTitulo do site (max 255 chars)
meta_descriptionstringNaoMeta description SEO (max 160 chars)
sourcestringNaoFerramenta de IA que gerou o HTML

Exemplo: Criar novo site

curl -X POST https://htmly.com.br/api/v1/mcp/deploy \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<!DOCTYPE html><html><head><title>Meu Site</title></head><body><h1>Hello World</h1></body></html>",
    "slug": "meu-site-ia",
    "title": "Meu Site IA",
    "source": "claude"
  }'

# Response 201
{
  "status": "created",
  "url": "https://meu-site-ia.htmly.com.br",
  "slug": "meu-site-ia"
}

Exemplo: Atualizar site existente

curl -X POST https://htmly.com.br/api/v1/mcp/deploy \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<html><body><h1>Versao Atualizada</h1></body></html>",
    "slug": "meu-site-ia"
  }'

# Response 200
{
  "status": "updated",
  "url": "https://meu-site-ia.htmly.com.br",
  "slug": "meu-site-ia"
}

Exemplo: Slug automatico

curl -X POST https://htmly.com.br/api/v1/mcp/deploy \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<html><body>Site com slug aleatorio</body></html>"
  }'

# Response 201
{
  "status": "created",
  "url": "https://a3k9x2.htmly.com.br",
  "slug": "a3k9x2"
}

Erros Comuns

CodigoSignificado
401API key ausente ou invalida
403Limite de sites do plano atingido
422Validacao falhou (HTML ausente, slug reservado, storage excedido)
429Rate limit excedido

Dica de Integracao

Configure sua API key como variavel de ambiente na ferramenta de IA. Por exemplo, no Claude Desktop, adicione o servidor MCP do Htmly apontando para https://htmly.com.br/api/v1/mcp/tools para descoberta automatica de tools.