Communityライティング&編集github.com

publora/bluesky-post

ユーザーがBlueskyに投稿または予約投稿を行う場合に使用します。300文字の制限、自動検出されるハッシュタグやリンク、最大4枚の画像、動画に対応します。API経由で代替テキストを設定することはできません。Blueskyのアプリパスワードが必要で、メインパスワードは使用しません。Mastodonには使用しないでください(social-postを使用)。

bluesky-post とは?

このスキルは、Publora MCPサーバーを介してBlueskyへの投稿作成と予約投稿を可能にします。テキスト投稿に加え、自動検出されるハッシュタグやURL、画像(最大4枚)、動画(最長3分、最大100MB)をサポートし、Blueskyの300文字制限を自動的に処理します。無料のStarterプランで利用可能で、設定にはBlueskyアプリパスワードの生成とPubloraダッシュボードでの連携が必要です。MCPサーバーが利用できない場合のREST APIフォールバックも提供し、投稿の管理(作成、取得、更新、削除)やメディアアップロード、各種統計情報の取得など、複数のツールを備えています。ただし、API経由で代替テキストを設定することはできないため、投稿後にBlueskyアプリで追加する必要があります。

対応✓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": "Your post content here",
    "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
画像1投稿あたり最大4枚
画像サイズ正確に2,000,000バイト(10進数、2 MiBではありません)
動画時間3分
動画サイズ50~100 MB(時間による)
1日あたりの動画数25
代替テキストBluesky上では2,000文字ですが、このAPIでは設定できません(以下参照)

動画サイズ階層

時間最大サイズ
60秒未満50 MB
60秒~3分100 MB

リッチテキストファセット

Blueskyは独自のリッチテキストシステムを使用しています。Publoraが複雑な処理を自動で行います:

  • ハッシュタグ: #hashtag が自動検出され、クリック可能になります
  • 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がサーバー側でダウンロードし、検証前に添付するため、メディアと予約は1回の呼び出しで行われます。これは、下書き→get_upload_url→complete_media のフローに代わるワンショットの方法です。取り込みは1時間あたり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に投稿を作成:
"オフィスの改装が完了しました!素晴らしい変身です。"

注: 1投稿あたり最大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 Protocolは正確な10進数のバイト上限を強制します(丸めた2 MiBではありません)。80~85%のJPEG品質に圧縮し、バイト数を確認してください。

  5. DIDベースのプラットフォームID: 数値IDを使用する他のプラットフォームとは異なり、Blueskyは did:plc:xxx 形式を使用します。

  6. 動画アップロードにはメール確認が必要: 動画をアップロードする前に、Blueskyでメールアドレスを確認する必要があります。

  7. 1日25本の動画制限: 1日あたり最大25本の動画、または10 GBです。

ベストプラクティス

コンテンツ

  1. 簡潔な投稿: 300文字はTwitterより短いので、パンチの効いた内容に
  2. 自然なハッシュタグ: 1~2個の関連ハッシュタグが効果的
  3. 代替テキスト: 追加する価値はありますが、投稿後にBlueskyアプリで行う必要があります。APIでは対応できません
  4. URLは機能します: リンクはクリック可能です(一部のプラットフォームとは異なります)

タイミング

  • 成長中のプラットフォーム: Xよりも混雑しておらず、注目されやすい
  • テクノロジーに詳しいオーディエンス: 開発者やアーリーアダプターが多い
  • 頻度: 1日1~3回の投稿

エンゲージメント

  • Blueskyは誠実な会話を好みます
  • コメントに返信してコミュニティを築きましょう
  • 関連するユーザーをフォローしてネットワークを広げましょう

トラブルシューティング

エラー原因解決策
"Invalid credentials"誤ったパスワードタイプメインパスワードではなくアプリパスワードを使用
"Image too large"2,000,000バイト超過80~85%のJPEG品質に圧縮
"Content too long"300文字超過コンテンツを短く(自動スレッドはなし)
"Video daily limit"25本の動画に達した24時間待つ
"Email not verified"動画をアップロードしようとしている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).

関連スキル