Bluesky Post
Crie e agende posts para o Bluesky usando o servidor MCP Publora. Suporta posts de texto com hashtags e URLs detectados automaticamente, imagens e vídeos.
Pré-requisitos
Planos: Funciona no plano gratuito Starter. Limites e preços atuais: publora.com/pricing
Primeiros Passos
- Criar conta em publora.com/register (gratuita)
- Gerar senha de aplicativo nas Configurações do Bluesky > Senhas de Aplicativo (NÃO sua senha principal)
- Conectar o Bluesky no Painel Publora usando seu identificador + senha de aplicativo
- Obter chave de API em app.publora.com/dashboard/api
- Conectar seu agente ao servidor MCP em
https://mcp.publora.com, autenticando comAuthorization: Bearer sk_SUA_CHAVE_DE_API. No Claude Code:
claude mcp add publora --transport http https://mcp.publora.com \
--header "Authorization: Bearer sk_SUA_CHAVE_DE_API"
Claude Desktop, Cursor, Codex, OpenClaw e o conector claude.ai precisam de um arquivo de configuração ou fluxo diferente: veja configuração do cliente para o caminho e trecho exatos.
Fallback da API REST
Se o servidor MCP estiver indisponível ou retornar erros, use a API REST diretamente:
URL Base: https://api.publora.com/api/v1
Autenticação: Use o cabeçalho x-publora-key (NÃO Authorization: Bearer):
# Obter suas plataformas conectadas
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
-H "x-publora-key: sk_sua_chave_de_api"
# Criar um post
curl -X POST "https://api.publora.com/api/v1/create-post" \
-H "x-publora-key: sk_sua_chave_de_api" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["bluesky-did:plc:abc123xyz"],
"content": "Conteúdo do seu post aqui",
"scheduledTime": "2026-03-25T10:00:00Z"
}'
Formato do ID da Plataforma: bluesky-{did} onde {did} vem da resposta de /platform-connections.
Exemplos de IDs: bluesky-did:plc:abc123xyz, bluesky-did:plc:def456uvw
📖 Documentação completa da API: docs.publora.com
Limites da Plataforma
| Recurso | Limite |
|---|---|
| Caracteres | 300 |
| Imagens | Até 4 por post |
| Tamanho da imagem | exatamente 2.000.000 bytes (decimal, não 2 MiB) |
| Duração do vídeo | 3 minutos |
| Tamanho do vídeo | 50-100 MB (baseado na duração) |
| Vídeos por dia | 25 |
| Texto alternativo | 2.000 caracteres no próprio Bluesky, mas não configurável através desta API (veja abaixo) |
Faixas de Tamanho de Vídeo
| Duração | Tamanho Máximo |
|---|---|
| Abaixo de 60s | 50 MB |
| 60s - 3min | 100 MB |
Facetas de Rich Text
O Bluesky usa um sistema único de rich text. O Publora lida com a complexidade automaticamente:
- Hashtags:
#hashtagdetectada automaticamente e tornada clicável - URLs: Qualquer URL detectada automaticamente e tornada clicável
- Deslocamentos de bytes: Calculados corretamente para caracteres multibyte (emojis, CJK)
Nenhuma formatação especial necessária - basta escrever naturalmente.
Ferramentas Disponíveis
create_post
Criar um novo post no Bluesky.
Parâmetros:
platforms: Array com seu ID de conexão do Bluesky (ex.:["bluesky-did:plc:abc123xyz"])content: Texto do post (até 300 caracteres)scheduledTime: Data/hora ISO 8601 UTC. Opcional: omita e o post é criado como rascunho. Envie uma data futura para agendar. Uma data com cinco minutos ou mais no passado é rejeitada comSCHEDULED_TIME_IN_PAST, então para postagem imediata use a hora atual mais um minuto.mediaUrls: até 10 URLs https públicas de imagem ou vídeo. O Publora as baixa no servidor e as anexa antes da validação, então mídia e agendamento acontecem em uma única chamada. Esta é a alternativa de uma só vez ao fluxo de rascunho, depoisget_upload_urle depoiscomplete_media. A ingestão é limitada a 60 URLs por hora.
get_upload_url
Obter URL pré-assinada para upload de mídia.
Parâmetros:
postGroupId: ID do post ao qual anexar a mídiafileName: Nome do arquivo (ex.: "photo.jpg")contentType:image/jpeg,image/png,video/mp4type:"image"ou"video"
complete_media
Finalizar um arquivo carregado através de get_upload_url, após o PUT pré-assinado ter sucesso. Opcional, porque o agendamento também finaliza mídias pendentes, mas chamá-lo cedo expõe erros de formato e de sonda antes da publicação. Não necessário para mídia anexada com mediaUrls.
Parâmetros:
mediaId: o id retornado porget_upload_url
list_connections
Listar suas contas conectadas com seus IDs de plataforma. Chame esta função primeiro e copie os IDs exatamente como estão; eles nunca são adivinháveis.
post_stats
Contadores de engajamento para um post publicado no Bluesky: reações, comentários, compartilhamentos, citações e favoritos. Ao vivo no momento da requisição, armazenados em cache por aproximadamente duas horas.
Parâmetros:
platform:blueskyplatformId: seu ID de conexão do BlueskypostedIds: os ids dos posts publicados a serem consultados
profile_stats
Seguidores, seguindo e contagem de posts para a conta conectada.
Parâmetros:
platform:blueskyplatformId: seu ID de conexão do Bluesky
list_posts / get_post / update_post / delete_post
Gerenciar posts agendados e rascunhos. update_post também altera content e platforms em um rascunho ou post agendado, então corrigir um erro de digitação ou redirecionar não significa mais excluir e recriar. delete_media e prune_media_reference limpam arquivos carregados.
Exemplos
Post Simples com Hashtags
Publique isto no Bluesky:
"Acabamos de lançar nossa nova documentação da API! Confira em https://docs.exemplo.com #ferramentasdev #api"
Hashtags e URLs são automaticamente tornadas clicáveis.
Post com Imagem
Publique isto no Bluesky com um print do painel:
"Nossa nova visualização de análises está no ar! #buildinpublic"
Múltiplas Imagens
Crie um post no Bluesky com imagens de antes/depois:
"Reforma do escritório concluída! Que transformação."
Nota: Até 4 imagens permitidas por post.
Post de Vídeo
Publique este vídeo de 60 segundos de demonstração no Bluesky:
"Tour rápido pelos novos recursos do nosso aplicativo móvel"
Post Agendado
Agende isto para amanhã às 10h:
"Bom dia! Aqui vai sua dica de produtividade diária..."
Restrições Importantes
-
O texto alternativo não pode ser definido através da API. O editor do Bluesky lê uma propriedade
altna mídia, mas nada a persiste: nem o fluxo de upload pré-assinado nemmediaUrlsa armazenam, e um valoraltTextsenviado paracreate-posté silenciosamente ignorado.platformSettingstambém não ajuda, já que o Bluesky é rejeitado lá com400 PLATFORM_SETTING_UNKNOWN. Publique a imagem e, em seguida, adicione texto alternativo no aplicativo do Bluesky. Não diga ao usuário que o texto alternativo foi publicado. -
Senha de aplicativo necessária: Você deve usar uma senha de aplicativo do Bluesky, NÃO sua senha principal da conta. Gere uma em Configurações > Senhas de Aplicativo.
-
Todas as imagens convertidas para JPEG: Independentemente do formato de entrada (PNG, WebP, GIF), todas as imagens são convertidas para JPEG antes do upload.
-
Limite rígido de 2.000.000 bytes para imagens: o AT Protocol impõe um teto exato em bytes decimais, não 2 MiB arredondados. Comprima para 80-85% de qualidade JPEG e verifique a contagem de bytes.
-
ID de plataforma baseado em DID: Diferente de outras plataformas que usam IDs numéricos, o Bluesky usa o formato
did:plc:xxx. -
Verificação de e-mail para vídeo: Você deve verificar seu e-mail no Bluesky antes de enviar vídeos.
-
Limite diário de 25 vídeos: Máximo de 25 vídeos OU 10 GB por dia.
Melhores Práticas
Conteúdo
- Posts concisos: 300 caracteres é mais curto que Twitter - seja direto
- Hashtags naturais: 1-2 hashtags relevantes funcionam bem
- Texto alternativo: vale a pena adicionar, mas você tem que fazê-lo no aplicativo do Bluesky após a postagem; a API não pode transportá-lo
- URLs funcionam: Links são clicáveis (ao contrário de algumas plataformas)
Timing
- Plataforma em crescimento: Menos concorrida que o X, mais fácil de ser notado
- Público com conhecimento técnico: Pesado em desenvolvedores e early adopters
- Frequência: 1-3 posts por dia
Engajamento
- O Bluesky favorece conversas autênticas
- Responda a comentários para construir comunidade
- Siga usuários relevantes para expandir sua rede
Solução de Problemas
| Erro | Causa | Solução |
|---|---|---|
| "Credenciais inválidas" | Tipo de senha errado | Use senha de aplicativo, não senha principal |
| "Imagem muito grande" | Acima de 2.000.000 bytes | Comprima para 80-85% de qualidade JPEG |
| "Conteúdo muito longo" | Acima de 300 caracteres | Encurte o conteúdo (sem threading automático) |
| "Limite diário de vídeos" | 25 vídeos atingidos | Aguarde 24 horas |
| "E-mail não verificado" | Tentativa de upload de vídeo | Verifique o e-mail nas configurações do Bluesky |