CommunityRedacción y edicióngithub.com

publora/bluesky-post

Úsalo cuando el usuario quiera publicar o programar en Bluesky a través de Publora. Gestiona el límite de 300 caracteres, hashtags y enlaces detectados automáticamente, hasta 4 imágenes y vídeos. El texto alternativo no se puede configurar a través de la API. Necesita una contraseña de aplicación de Bluesky, nunca la contraseña principal. No es para Mastodon (usa social-post).

¿Qué es bluesky-post?

Esta habilidad permite a agentes de IA crear y programar publicaciones en Bluesky a través del servidor MCP de Publora. Soporta publicaciones de texto con detección automática de hashtags y URL, y admite hasta 4 imágenes o vídeos por publicación. La integración requiere una contraseña de aplicación de Bluesky (generada desde Ajustes > Contraseñas de aplicación) y una clave API de Publora. Las herramientas disponibles incluyen `create_post`, `get_upload_url`, `complete_media`, `list_connections`, `post_stats`, `profile_stats` y gestión de borradores y publicaciones programadas. Publicaciones inmediatas, programadas o guardadas como borrador son posibles. La plataforma tiene límites estrictos: 300 caracteres, imágenes de exactamente 2.000.000 bytes (decimal, no 2 MiB), vídeos de hasta 3 minutos, y un máximo de 25 vídeos al día. El texto alternativo (alt text) no se puede establecer a través de la API; debe añadirse manualmente en la aplicación de Bluesky después de publicar. También se incluye una API REST de respaldo para casos en que el servidor MCP no esté disponible.

Compatible con✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/publora/skills/tree/main/skills/bluesky-post

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Publicación en Bluesky

Crea y programa publicaciones en Bluesky usando el servidor MCP de Publora. Soporta publicaciones de texto con hashtags y URL detectados automáticamente, imágenes y vídeos.

Requisitos previos

Planes: Funciona con el plan gratuito Starter. Límites y precios actuales: publora.com/pricing.

Primeros pasos

  1. Crear cuenta en publora.com/register (gratis)
  2. Generar contraseña de aplicación en Ajustes de Bluesky > Contraseñas de aplicación (NO tu contraseña principal)
  3. Conectar Bluesky en el Panel de Publora usando tu usuario + contraseña de aplicación
  4. Obtener clave API en app.publora.com/dashboard/api
  5. Conectar tu agente al servidor MCP en https://mcp.publora.com, autenticando con Authorization: Bearer sk_TU_CLAVE_API. En Claude Code:
claude mcp add publora --transport http https://mcp.publora.com \
  --header "Authorization: Bearer sk_TU_CLAVE_API"

Claude Desktop, Cursor, Codex, OpenClaw y el conector de claude.ai necesitan cada uno un archivo de configuración o flujo diferente: consulta configuración de cliente para la ruta y el fragmento exactos.

Respaldo con API REST

Si el servidor MCP no está disponible o devuelve errores, usa la API REST directamente:

URL base: https://api.publora.com/api/v1

Autenticación: Usa el encabezado x-publora-key (NO Authorization: Bearer):

# Obtén tus plataformas conectadas
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
  -H "x-publora-key: sk_tu_clave_api"

# Crea una publicación
curl -X POST "https://api.publora.com/api/v1/create-post" \
  -H "x-publora-key: sk_tu_clave_api" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["bluesky-did:plc:abc123xyz"],
    "content": "El contenido de tu publicación aquí",
    "scheduledTime": "2026-03-25T10:00:00Z"
  }'

Formato del ID de plataforma: bluesky-{did} donde {did} es de la respuesta de /platform-connections.

Ejemplos de IDs: bluesky-did:plc:abc123xyz, bluesky-did:plc:def456uvw

📖 Documentación completa de la API: docs.publora.com

Límites de la plataforma

CaracterísticaLímite
Caracteres300
ImágenesHasta 4 por publicación
Tamaño de imagenexactamente 2.000.000 bytes (decimal, no 2 MiB)
Duración de vídeo3 minutos
Tamaño de vídeo50-100 MB (según duración)
Vídeos por día25
Texto alternativo2.000 caracteres en Bluesky, pero no se puede establecer a través de esta API (ver abajo)

Niveles de tamaño de vídeo

DuraciónTamaño máximo
Menos de 60s50 MB
60s - 3min100 MB

Facetas de texto enriquecido

Bluesky usa un sistema único de texto enriquecido. Publora maneja la complejidad automáticamente:

  • Hashtags: #hashtag detectado automáticamente y hecho clickable
  • URLs: Cualquier URL detectada automáticamente y hecha clickable
  • Desplazamientos de bytes: Calculados correctamente para caracteres multi-byte (emojis, CJK)

No se necesita formato especial: solo escribe de forma natural.

Herramientas disponibles

create_post

Crea una nueva publicación en Bluesky.

Parámetros:

  • platforms: Array con tu ID de conexión de Bluesky (ej. ["bluesky-did:plc:abc123xyz"])
  • content: Texto de la publicación (hasta 300 caracteres)
  • scheduledTime: Fecha y hora ISO 8601 UTC. Opcional: omítelo y la publicación se crea como borrador. Envía una hora futura para programarla. Una hora cinco o más minutos en el pasado se rechaza con SCHEDULED_TIME_IN_PAST, así que para publicación inmediata usa la hora actual más un minuto.
  • mediaUrls: hasta 10 URL públicas https de imágenes o vídeos. Publora las descarga del lado del servidor y las adjunta antes de la validación, por lo que el contenido multimedia y la programación ocurren en una sola llamada. Esta es la alternativa de una sola vez al flujo de borrador + get_upload_url + complete_media. La ingesta tiene un límite de 60 URL por hora.

get_upload_url

Obtiene una URL prefirmada para subir contenido multimedia.

Parámetros:

  • postGroupId: ID de la publicación a la que adjuntar el contenido multimedia
  • fileName: Nombre del archivo (ej. "photo.jpg")
  • contentType: image/jpeg, image/png, video/mp4
  • type: "image" o "video"

complete_media

Finaliza un archivo subido a través de get_upload_url, después de que el PUT prefirmado tenga éxito. Opcional, porque la programación también finaliza el contenido multimedia pendiente, pero llamarlo temprano muestra errores de formato y prueba antes de publicar. No es necesario para contenido multimedia adjuntado con mediaUrls.

Parámetros:

  • mediaId: el ID devuelto por get_upload_url

list_connections

Lista tus cuentas conectadas con sus IDs de plataforma. Llámalo primero y copia los IDs textualmente; nunca son adivinables.

post_stats

Contadores de interacción para una publicación publicada en Bluesky: reacciones, comentarios, republicaciones, citas y marcadores. En vivo en el momento de la solicitud, almacenado en caché durante aproximadamente dos horas.

Parámetros:

  • platform: bluesky
  • platformId: tu ID de conexión de Bluesky
  • postedIds: los IDs de las publicaciones publicadas a consultar

profile_stats

Seguidores, seguidos y número de publicaciones para la cuenta conectada.

Parámetros:

  • platform: bluesky
  • platformId: tu ID de conexión de Bluesky

list_posts / get_post / update_post / delete_post

Gestiona publicaciones programadas y borradores. update_post también parchea content y platforms en un borrador o publicación programada, por lo que corregir un error tipográfico o redirigir ya no significa eliminar y recrear. delete_media y prune_media_reference limpian archivos subidos.

Ejemplos

Publicación simple con hashtags

Publica esto en Bluesky:
"¡Acabamos de lanzar nuestra nueva documentación de API! Mírala en https://docs.example.com #devtools #api"

Los hashtags y URL se vuelven clickables automáticamente.

Publicación con imagen

Publica esto en Bluesky con una captura de pantalla del panel:
"¡Nuestra nueva vista de análisis ya está disponible! #buildinpublic"

Múltiples imágenes

Crea una publicación en Bluesky con imágenes de comparación antes/después:
"¡Renovación de la oficina completa! Qué transformación."

Nota: Se permiten hasta 4 imágenes por publicación.

Publicación de vídeo

Publica este vídeo de demostración de 60 segundos en Bluesky:
"Visita rápida a las nuevas funciones de nuestra app móvil"

Publicación programada

Programa esto para mañana a las 10 AM:
"¡Buenos días! Aquí tienes tu consejo de productividad diario..."

Restricciones importantes

  1. El texto alternativo no se puede establecer a través de la API. El editor de Bluesky lee una propiedad alt en el contenido multimedia, pero nada la persiste: ni el flujo de subida prefirmada ni mediaUrls la almacenan, y un valor altTexts enviado a create-post se ignora silenciosamente. platformSettings tampoco ayuda, ya que Bluesky se rechaza allí con 400 PLATFORM_SETTING_UNKNOWN. Publica la imagen y luego añade el texto alternativo en la aplicación de Bluesky. No le digas al usuario que su texto alternativo se publicó.

  2. Contraseña de aplicación requerida: Debes usar una contraseña de aplicación de Bluesky, NO la contraseña principal de tu cuenta. Genérala en Ajustes > Contraseñas de aplicación.

  3. Todas las imágenes se convierten a JPEG: Independientemente del formato de entrada (PNG, WebP, GIF), todas las imágenes se convierten a JPEG antes de subirlas.

  4. Límite estricto de 2.000.000 bytes para imágenes: el Protocolo AT aplica un límite exacto en bytes decimales, no 2 MiB redondeados. Comprime a calidad JPEG del 80-85% y verifica el recuento de bytes.

  5. ID de plataforma basado en DID: A diferencia de otras plataformas que usan IDs numéricos, Bluesky usa el formato did:plc:xxx.

  6. Verificación de correo electrónico para vídeos: Debes verificar tu correo electrónico en Bluesky antes de subir vídeos.

  7. Límite diario de 25 vídeos: Máximo 25 vídeos O 10 GB por día.

Mejores prácticas

Contenido

  1. Publicaciones concisas: 300 caracteres es más corto que Twitter: sé directo
  2. Hashtags naturales: 1-2 hashtags relevantes funcionan bien
  3. Texto alternativo: Vale la pena añadirlo, pero debes hacerlo en la aplicación de Bluesky después de publicar; la API no puede llevarlo
  4. Las URL funcionan: Los enlaces son clickables (a diferencia de algunas plataformas)

Momento

  • Plataforma en crecimiento: Menos concurrida que X, más fácil hacerse notar
  • Audiencia experta en tecnología: Mayoría de desarrolladores y primeros usuarios
  • Frecuencia: 1-3 publicaciones por día

Interacción

  • Bluesky favorece la conversación auténtica
  • Responde a comentarios para construir comunidad
  • Sigue a usuarios relevantes para hacer crecer tu red

Solución de problemas

ErrorCausaSolución
"Invalid credentials"Tipo de contraseña incorrectoUsa contraseña de aplicación, no la principal
"Image too large"Más de 2.000.000 bytesComprime a calidad JPEG del 80-85%
"Content too long"Más de 300 caracteresAcorta el contenido (sin auto-hilo)
"Video daily limit"Se alcanzaron 25 vídeosEspera 24 horas
"Email not verified"Intentando subir vídeoVerifica el correo electrónico en los ajustes de Bluesky

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

publora/instagram-post

Use when the user wants to post or schedule to Instagram through Publora: a single image, a 2-10 image carousel, a Reel or a Story. Requires a Business account and an image or video; text-only posts are rejected by the API. Not for Threads (use threads-post).

publora/linkedin-analytics

Analyze LinkedIn performance and manage engagement through Publora. Use when the user asks how a LinkedIn post or account performed (impressions, reach, reactions, comments, reshares, follower growth) or wants to react, comment, reshare or resolve an @mention. Statistics run over the REST API, engagement over MCP tools. Not for creating posts (use linkedin-post).

publora/linkedin-post

Use when the user wants to publish or schedule a LinkedIn post through Publora: text, a multi-image grid, a video, a PDF document, or @mentions. Not for analytics, reactions, comments or reshares (use linkedin-analytics), and not for other platforms.

publora/social-post

Use when the user wants to post or schedule to YouTube, a Facebook Page or Mastodon through Publora. YouTube needs a video on every post, Facebook publishes to Pages only, Mastodon caps at 500 characters. Not for the platforms that have their own skill.

publora/telegram-post

Use when the user wants to post or schedule to a Telegram channel or group through Publora, using a bot. Covers Telegram markdown, silent delivery, link previews and forward protection. Bot API caps media captions at 1,024 characters and videos at 50 MB. Not for other platforms (each has its own skill).

publora/threads-post

Create and schedule Threads posts with image carousels and reply control via Publora MCP. Use when the user wants to post to Meta's Threads. Multi-part threading is currently disabled by the platform, so long content stays a single post. Not for Instagram (use instagram-post) or X threads (use x-post).

publora/tiktok-post

Use when the user wants to upload or schedule a TikTok video through Publora, with privacy, comment, duet, stitch and commercial-disclosure settings. Video runs 3 seconds to 10 minutes at 23+ FPS; carousels take up to 35 images. Unaudited apps can publish private videos only. Not for Reels (use instagram-post).

publora/x-post

Use when the user wants to post or schedule to X (Twitter) through Publora, including threads auto-split past 280 characters, up to 4 images, or a video up to 140 seconds. X needs a paid Publora plan. Not for Threads or Bluesky (each has its own skill).

Skills relacionados