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
| Metodo | Endpoint | Descricao |
|---|---|---|
GET | /api/v1/mcp/tools | Descoberta de tools MCP (publico) |
POST | /api/v1/mcp/deploy | Deploy de HTML (autenticado) |
Descoberta de 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
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
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| html | string | Sim | Conteudo HTML completo (max 512KB) |
| slug | string | Nao | Slug URL-safe (3-63 chars). Se omitido, um slug aleatorio e gerado. |
| title | string | Nao | Titulo do site (max 255 chars) |
| meta_description | string | Nao | Meta description SEO (max 160 chars) |
| source | string | Nao | Ferramenta 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
| Codigo | Significado |
|---|---|
401 | API key ausente ou invalida |
403 | Limite de sites do plano atingido |
422 | Validacao falhou (HTML ausente, slug reservado, storage excedido) |
429 | Rate 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.