bluesky-post について
bluesky-postは、接続済みのエージェントからPubloraを使ってBlueskyの投稿を作成・予約するスキルです。テキスト、画像、動画に対応し、ハッシュタグとURLをクリック可能な形式にします。
主な機能
- 01投稿の作成と予約
- 02画像と動画の添付
- 03クリック可能なハッシュタグとURLの自動認識
- 04下書きと予約投稿の管理
- 05投稿とプロフィール統計の確認
活用シーン
- 01Blueskyのお知らせを予約投稿
- 02メディア付き投稿の公開
- 03公開済み投稿の反応を確認
MCP 対応
PubloraのMCP サーバーを使って、Blueskyの投稿や接続アカウントを作成、予約、管理します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ publora/ skills --skill bluesky-postインストール後、Claude Code で/bluesky-postを入力して読み込まれたか確認します。
詳細
Bluesky の投稿
Publora MCP サーバーを使用して、Bluesky の投稿を作成・予約します。ハッシュタグと URL の自動検出に対応しており、テキスト投稿、画像、動画を扱えます。
前提条件
プラン: 無料の Starter プランで利用できます。現在の制限と料金については、publora.com/pricing をご覧ください。
はじめに
- publora.com/register でアカウントを作成します(無料)。
- Bluesky の Settings > App Passwords でアプリパスワードを生成します(メインのパスワードは使用しないでください)。
- Publora Dashboard で、ハンドルとアプリパスワードを使用してBluesky を接続します。
- app.publora.com/dashboard/api でAPI キーを取得します。エージェントが OAuth でサインインできない場合、または以下の REST API フォールバックを使用する場合にのみ必要です。
https://mcp.publora.com/mcpで MCP サーバーにエージェントを接続します。/mcpなしの手動接続を更新する場合: Claude はhttps://mcp.publora.comを、バンドルされているサーバーとは別のサーバーとして扱います。既存の接続先を現在のスコープでhttps://mcp.publora.com/mcpに変更し、認証情報と選択済みのアカウントはそのまま維持してください。求められた場合は、もう一度サインインします。または、バンドルされた接続で意図したアカウントが使われていることを確認してから、古い手動登録のみを削除します。2 つ目の登録を追加したり、認証情報を自動的に削除したりしないでください。- Publora のツールがすでに利用可能な場合(
publora-skillsプラグインまたは Claude の Publora コネクター):設定は不要です。ツールの初回実行時に、Claude から Publora へのサインインを求められます。 - OAuth に対応しているエージェント(Claude Code、Cursor、Claude アプリ、ChatGPT アプリ):サーバーを URL で追加してサインインすればよく、API キーは不要です。Claude Code では、サーバーを追加したあと
/mcpを実行してサインインします。
claude mcp add --transport http --scope user publora https://mcp.publora.com/mcp
- OAuth に対応していないエージェント: API キーを
Authorization: Bearer sk_YOUR_API_KEYとして送信します。
claude mcp add --transport http --scope user publora https://mcp.publora.com/mcp \
--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 は使用しないでください)。
# Get your connected platforms
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
-H "x-publora-key: sk_your_api_key"
# Create a post
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 の形式: /platform-connections のレスポンスに含まれる {did} を使用した bluesky-{did}
ID の例:bluesky-did:plc:abc123xyz、bluesky-did:plc:def456uvw
📖 API ドキュメント全文: docs.publora.com
プラットフォームの制限
| 機能 | 制限 |
|---|---|
| 文字数 | 300 |
| 画像 | 投稿あたり最大 4 枚 |
| 画像サイズ | 正確に 2,000,000 バイト(2 MiB ではなく 10 進単位) |
| 動画の長さ | 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:公開されているhttpsの画像または動画URLを最大10件。Publoraはサーバー側でダウンロードし、検証前に添付するため、メディアの添付と予約投稿を1回の呼び出しで行えます。下書き作成後にget_upload_url、complete_mediaを呼び出す手順に代わる、一括処理の方法です。取り込みは1時間あたり60 URLに制限されています。
get_upload_url
メディアアップロード用の署名付きURLを取得します。
パラメーター:
postGroupId:メディアを添付する投稿IDfileName:ファイル名(例:"photo.jpg")contentType:image/jpeg、image/png、video/mp4type:"image"または"video"
complete_media
署名付きPUTが成功した後、get_upload_urlでアップロードしたファイルを確定します。予約投稿の際にも保留中のメディアは確定されるため、この操作は任意です。ただし、公開前に呼び出すと、形式やプローブのエラーを確認できます。mediaUrlsで添付したメディアには不要です。
パラメーター:
mediaId:get_upload_urlから返されたID
list_connections
プラットフォームIDとともに、接続済みアカウントの一覧を表示します。最初にこれを呼び出し、IDをそのままコピーしてください。IDを推測することはできません。
post_stats
公開済みBluesky投稿のエンゲージメント数:リアクション、コメント、リポスト、引用、ブックマーク。リクエスト時点の最新データで、約2時間キャッシュされます。
パラメーター:
platform:blueskyplatformId:Bluesky接続IDpostedIds:参照する公開済み投稿ID
profile_stats
接続済みアカウントのフォロワー数、フォロー数、投稿数。
パラメーター:
platform:blueskyplatformId:Bluesky接続ID
list_posts / get_post / update_post / delete_post
予約投稿と下書きを管理します。update_postを使うと、下書きまたは予約投稿のcontentとplatformsも更新できます。そのため、誤字の修正や投稿先の変更に、削除して再作成する必要はありません。アップロード済みファイルのクリーンアップには、delete_mediaとprune_media_referenceを使用します。
例
ハッシュタグ付きのシンプルな投稿
Post this to Bluesky:
"Just launched our new API documentation! Check it out at https://docs.example.com #devtools #api"
ハッシュタグとURLは自動的にクリック可能になります。
画像付きの投稿
Post this to Bluesky with a dashboard screenshot:
"Our new analytics view is live! #buildinpublic"
複数の画像
Create a Bluesky post with before/after comparison images:
"Office renovation complete! What a transformation."
注:1つの投稿につき、画像は最大4枚まで使用できます。
動画投稿
Post this 60-second demo video to Bluesky:
"Quick tour of our new mobile app features"
予約投稿
Schedule this for tomorrow at 10 AM:
"Good morning! Here's your daily productivity tip..."
重要な制限事項
-
API経由では代替テキストを設定できません。 Blueskyのパブリッシャーはメディアの
altプロパティを読み取りますが、保存する仕組みはありません。署名付きアップロードフローでもmediaUrlsでも保存されず、create-postに送信したaltTextsの値も通知なく 無視されます。BlueskyではplatformSettingsも使用できず、400 PLATFORM_SETTING_UNKNOWNで拒否されます。画像を投稿した後、Blueskyアプリで代替テキストを追加してください。 代替テキストが公開されたとユーザーに伝えないでください。 -
アプリパスワードが必要です:メインアカウントのパスワードではなく、Blueskyのアプリパスワードを使用する必要があります。Settings > App Passwordsで生成してください。
-
すべての画像はJPEGに変換されます:入力形式(PNG、WebP、GIF)にかかわらず、アップロード前にすべての画像がJPEGに変換されます。
-
画像の上限は厳密に2,000,000バイトです:AT Protocolでは、丸めた2 MiBではなく、正確な10進バイト数の上限が適用されます。JPEG品質を80~85%に圧縮し、バイト数を確認してください。
-
プラットフォームIDはDID形式です:数値IDを使う他のプラットフォームとは異なり、Blueskyでは
did:plc:xxx形式を使用します。 -
動画にはメールアドレスの確認が必要です:動画をアップロードする前に、Blueskyでメールアドレスを確認する必要があります。
-
動画は1日25本までです:1日あたり最大25本、または10 GBまでです。
ベストプラクティス
コンテンツ
- 簡潔な投稿:300文字はTwitterより短いため、要点を押さえましょう。
- 自然なハッシュタグ:関連性の高いハッシュタグを1〜2個付けると効果的です。
- 代替テキスト:追加する価値はありますが、投稿後にBlueskyアプリで設定する必要があります。APIでは設定できません。
- URLが使えます:リンクはクリックできます(一部のプラットフォームとは異なります)。
タイミング
- 成長中のプラットフォーム:Xほど混み合っていないため、注目されやすくなります。
- 技術に詳しいユーザー層:開発者やアーリーアダプターが多く利用しています。
- 頻度:1日あたり1〜3件の投稿
エンゲージメント
- Blueskyでは、誠実な会話が好まれます。
- コミュニティを築くため、コメントに返信しましょう。
- 関連するユーザーをフォローして、ネットワークを広げましょう。
トラブルシューティング
| エラー | 原因 | 解決方法 |
|---|---|---|
| "Invalid credentials" | パスワードの種類が間違っています | メインパスワードではなく、アプリパスワードを使用してください |
| "Image too large" | 2,000,000バイトを超えています | JPEG品質を80〜85%にして圧縮してください |
| "Content too long" | 300文字を超えています | 内容を短くしてください(自動スレッド化には対応していません) |
| "Video daily limit" | 25本の動画を投稿済みです | 24時間待ってください |
| "Email not verified" | 動画をアップロードしようとしています | Blueskyの設定でメールアドレスを認証してください |