Community라이팅 & 에디팅github.com

publora/bluesky-post

사용자가 Publora를 통해 Bluesky에 게시물을 작성하거나 예약하려 할 때 사용합니다. 300자 제한, 자동 감지된 해시태그 및 링크, 최대 4개의 이미지 및 비디오를 처리합니다. API를 통해 대체 텍스트를 설정할 수 없습니다. Bluesky 앱 비밀번호가 필요하며, 메인 비밀번호는 사용하지 마세요. Mastodon에는 적합하지 않습니다(social-post 사용).

bluesky-post란 무엇인가요?

이 스킬은 Publora MCP 서버를 통해 Bluesky에 게시물을 작성하고 예약하는 기능을 제공합니다. 300자 제한, 자동 감지된 해시태그와 URL, 최대 4개의 이미지 및 비디오 업로드를 지원합니다. Claude Code, Cursor, Codex, OpenClaw 등 다양한 AI 에이전트 플랫폼과 호환되며, 무료 Starter 플랜에서 사용할 수 있습니다. MCP 서버에 연결하여 create_post, get_upload_url, complete_media 등의 도구를 통해 게시물 생성, 미디어 업로드, 예약 및 통계 확인이 가능합니다. REST API 대체 수단도 제공하여 MCP 서버가 불가할 때 직접 API 호출로 동일한 작업을 수행할 수 있습니다. Bluesky의 고유한 리치 텍스트 시스템을 자동으로 처리하며, DID 기반 플랫폼 ID를 사용하고 앱 비밀번호 인증이 필수입니다.

지원 대상✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/publora/skills/tree/main/skills/bluesky-post

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Bluesky Post

Publora MCP 서버를 사용하여 Bluesky에 게시물을 작성하고 예약합니다. 자동 감지된 해시태그와 URL, 이미지 및 비디오가 포함된 텍스트 게시물을 지원합니다.

전제 조건

요금제: 무료 Starter 플랜에서 사용 가능합니다. 현재 제한 및 가격: publora.com/pricing.

시작하기

  1. 계정 생성 publora.com/register (무료)
  2. 앱 비밀번호 생성 Bluesky 설정 > 앱 비밀번호 (메인 비밀번호가 아님)
  3. Bluesky 연결 Publora 대시보드에서 핸들 + 앱 비밀번호 사용
  4. API 키 획득 app.publora.com/dashboard/api
  5. 에이전트 연결 MCP 서버 https://mcp.publora.com에 Authorization: Bearer sk_YOUR_API_KEY로 인증하여 연결합니다. Claude Code에서는:
claude mcp add publora --transport http https://mcp.publora.com \
  --header "Authorization: Bearer sk_YOUR_API_KEY"

Claude Desktop, Cursor, Codex, OpenClaw 및 claude.ai 커넥터는 각각 다른 설정 파일이나 흐름이 필요합니다: 정확한 경로와 코드 조각은 클라이언트 설정을 참조하세요.

REST API 대체 수단

MCP 서버를 사용할 수 없거나 오류가 발생하는 경우 REST API를 직접 사용하세요.

기본 URL: https://api.publora.com/api/v1

인증: x-publora-key 헤더 사용 (Authorization: Bearer 아님):

# 연결된 플랫폼 가져오기
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
  -H "x-publora-key: sk_your_api_key"

# 게시물 작성
curl -X POST "https://api.publora.com/api/v1/create-post" \
  -H "x-publora-key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["bluesky-did:plc:abc123xyz"],
    "content": "게시물 내용을 여기에 입력",
    "scheduledTime": "2026-03-25T10:00:00Z"
  }'

플랫폼 ID 형식: bluesky-{did} 여기서 {did}는 /platform-connections 응답에서 가져옵니다.

예시 ID: bluesky-did:plc:abc123xyz, bluesky-did:plc:def456uvw

📖 전체 API 문서: docs.publora.com

플랫폼 제한

기능제한
문자 수300
이미지게시물당 최대 4개
이미지 크기정확히 2,000,000바이트 (10진수, 2MiB 아님)
비디오 길이3분
비디오 크기50-100 MB (길이에 따라 다름)
일일 비디오 수25개
대체 텍스트Bluesky 자체에서는 2,000자 가능하지만, 이 API를 통해 설정할 수 없음 (아래 참조)

비디오 크기 등급

길이최대 크기
60초 미만50 MB
60초 - 3분100 MB

리치 텍스트 패싯

Bluesky는 독특한 리치 텍스트 시스템을 사용합니다. Publora가 복잡성을 자동으로 처리합니다:

  • 해시태그: #해시태그 자동 감지 및 클릭 가능하게 변환
  • URL: 모든 URL 자동 감지 및 클릭 가능하게 변환
  • 바이트 오프셋: 멀티바이트 문자(이모지, CJK)에 대해 올바르게 계산

특별한 서식 지정이 필요 없습니다. 자연스럽게 작성하기만 하면 됩니다.

사용 가능한 도구

create_post

새로운 Bluesky 게시물을 작성합니다.

매개변수:

  • platforms: Bluesky 연결 ID 배열 (예: ["bluesky-did:plc:abc123xyz"])
  • content: 게시물 텍스트 (최대 300자)
  • scheduledTime: ISO 8601 UTC 날짜/시간. 선택사항: 생략하면 게시물이 초안으로 생성됩니다. 미래 시간을 보내면 예약됩니다. 5분 이상 과거 시간은 SCHEDULED_TIME_IN_PAST 오류로 거부되므로, 즉시 게시하려면 현재 시간 + 1분을 사용하세요.
  • mediaUrls: 최대 10개의 공개 https 이미지 또는 비디오 URL. Publora가 서버 측에서 다운로드하여 유효성 검사 전에 첨부하므로, 미디어와 예약이 한 번의 호출로 처리됩니다. 이는 초안 -> get_upload_url -> complete_media 흐름의 원샷 대안입니다. 수집은 시간당 60개의 URL로 속도 제한됩니다.

get_upload_url

미디어 업로드를 위한 사전 서명된 URL을 가져옵니다.

매개변수:

  • postGroupId: 미디어를 첨부할 게시물 ID
  • fileName: 파일 이름 (예: "photo.jpg")
  • contentType: image/jpeg, image/png, video/mp4
  • type: "image" 또는 "video"

complete_media

get_upload_url을 통해 업로드된 파일을 최종 처리합니다. 사전 서명된 PUT 성공 후에 필요합니다. 선택사항입니다. 예약도 보류 중인 미디어를 최종 처리하지만, 조기에 호출하면 포맷 및 프로브 오류가 게시 전에 표시됩니다. mediaUrls로 첨부된 미디어에는 필요하지 않습니다.

매개변수:

  • mediaId: get_upload_url이 반환한 ID

list_connections

연결된 계정과 해당 플랫폼 ID를 나열합니다. 먼저 이 도구를 호출하고 ID를 그대로 복사하세요. ID는 절대 추측할 수 없습니다.

post_stats

게시된 Bluesky 게시물의 참여 지표: 반응, 댓글, 리포스트, 인용 및 북마크. 요청 시점에 실시간이며, 약 2시간 동안 캐시됩니다.

매개변수:

  • platform: bluesky
  • platformId: Bluesky 연결 ID
  • postedIds: 조회할 게시된 게시물 ID

profile_stats

연결된 계정의 팔로워, 팔로잉 및 게시물 수입니다.

매개변수:

  • platform: bluesky
  • platformId: Bluesky 연결 ID

list_posts / get_post / update_post / delete_post

예약된 게시물과 초안을 관리합니다. update_post는 초안 또는 예약된 게시물의 content와 platforms를 패치하므로, 오타 수정이나 타겟 변경 시 삭제 후 재생성할 필요가 없습니다. delete_media와 prune_media_reference는 업로드된 파일을 정리합니다.

예시

해시태그가 있는 간단한 게시물

이 내용을 Bluesky에 게시:
"새로운 API 문서를 출시했습니다! https://docs.example.com 에서 확인하세요 #devtools #api"

해시태그와 URL이 자동으로 클릭 가능하게 변환됩니다.

이미지가 있는 게시물

대시보드 스크린샷과 함께 이 내용을 Bluesky에 게시:
"새로운 분석 보기가 출시되었습니다! #buildinpublic"

여러 이미지

Before/After 비교 이미지와 함께 Bluesky 게시물 작성:
"사무실 리노베이션이 완료되었습니다! 완전히 변했네요."

참고: 게시물당 최대 4개의 이미지가 허용됩니다.

비디오 게시물

이 60초 데모 비디오를 Bluesky에 게시:
"새로운 모바일 앱 기능의 빠른 둘러보기"

예약된 게시물

내일 오전 10시에 이 내용을 예약:
"좋은 아침입니다! 오늘의 생산성 팁을 알려드립니다..."

중요 제한 사항

  1. API를 통해 대체 텍스트를 설정할 수 없습니다. Bluesky 퍼블리셔는 미디어의 alt 속성을 읽지만, 사전 서명된 업로드 흐름이나 mediaUrls 모두 이를 저장하지 않으며, create-post로 전송된 altTexts 값은 자동으로 무시됩니다. platformSettings도 Bluesky가 400 PLATFORM_SETTING_UNKNOWN으로 거부되므로 도움이 되지 않습니다. 이미지를 게시한 후 Bluesky 앱에서 대체 텍스트를 추가하세요. 사용자에게 대체 텍스트가 게시되었다고 말하지 마세요.

  2. 앱 비밀번호 필요: Bluesky 앱 비밀번호를 사용해야 하며, 메인 계정 비밀번호를 사용하지 마세요. 설정 > 앱 비밀번호에서 생성하세요.

  3. 모든 이미지는 JPEG로 변환됨: 입력 형식(PNG, WebP, GIF)에 관계없이 모든 이미지는 업로드 전에 JPEG로 변환됩니다.

  4. 엄격한 2,000,000바이트 이미지 제한: AT 프로토콜은 반올림된 2MiB가 아닌 정확한 10진수 바이트 상한을 강제합니다. 80-85% JPEG 품질로 압축하고 바이트 수를 확인하세요.

  5. DID 기반 플랫폼 ID: 숫자 ID를 사용하는 다른 플랫폼과 달리 Bluesky는 did:plc:xxx 형식을 사용합니다.

  6. 비디오를 위한 이메일 인증: 비디오를 업로드하기 전에 Bluesky에서 이메일을 인증해야 합니다.

  7. 일일 25개 비디오 제한: 하루 최대 25개 비디오 또는 10GB입니다.

모범 사례

콘텐츠

  1. 간결한 게시물: 300자는 트위터보다 짧습니다. 강렬하게 작성하세요.
  2. 자연스러운 해시태그: 1-2개의 관련 해시태그가 효과적입니다.
  3. 대체 텍스트: 추가할 가치가 있지만, 게시 후 Bluesky 앱에서 직접 해야 합니다. API가 전달할 수 없습니다.
  4. URL 작동: 링크는 클릭 가능합니다 (일부 플랫폼과 달리).

타이밍

  • 성장 중인 플랫폼: X보다 덜 혼잡하여 주목받기 쉽습니다.
  • 기술에 정통한 사용자: 개발자와 얼리어답터가 많습니다.
  • 빈도: 하루 1-3개의 게시물.

참여

  • Bluesky는 진정한 대화를 선호합니다.
  • 커뮤니티를 구축하려면 댓글에 답변하세요.
  • 네트워크를 확장하려면 관련 사용자를 팔로우하세요.

문제 해결

오류원인해결책
"잘못된 자격 증명"잘못된 비밀번호 유형앱 비밀번호 사용, 메인 비밀번호 사용 금지
"이미지가 너무 큼"2,000,000바이트 초과80-85% JPEG 품질로 압축
"내용이 너무 김"300자 초과내용 줄이기 (자동 스레딩 없음)
"비디오 일일 한도"25개 비디오 도달24시간 대기
"이메일 미인증"비디오 업로드 시도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).

관련 스킬