threads-post について
threads-post は、Publora MCP サーバーを通じて Threads の投稿を作成・予約するスキルです。単独投稿、複数の返信でつなぐ投稿、画像カルーセル、返信制御に対応します。
主な機能
- 01Threads 投稿の作成と予約
- 02返信でつなぐ複数パートの投稿
- 03画像カルーセルの作成
- 04返信できる相手の設定
- 05下書きと予約投稿の管理
- 06URL またはアップロードによるメディア添付
活用シーン
- 01Threads の告知を予約投稿
- 02長文を連続する返信として公開
- 03複数画像をカルーセルで共有
- 04フォロー中またはメンションしたアカウントに返信を制限
MCP 対応
`https://mcp.publora.com/mcp` の Publora MCP サーバーを使って Threads 投稿ツールにアクセスします。REST API の代替手段も記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ publora/ skills --skill threads-postインストール後、Claude Code で/threads-postを入力して読み込まれたか確認します。
詳細
Threads 投稿
Publora MCP サーバーを使用して、Meta の Threads で投稿を作成し、予約します。単独の投稿、複数パートのスレッド(返信を連結)、画像カルーセル(2~20 枚)、返信の制御に対応しています。
前提条件
プラン: 無料の Starter プランで利用できます。現在の上限と料金については、publora.com/pricing をご覧ください。
はじめに
- publora.com/register でアカウントを作成します(無料)。
- Publora Dashboard で Instagram OAuth を使ってThreads を接続します。
- エージェントが OAuth でサインインできない場合、または以下の REST API フォールバックを利用する場合に限り、app.publora.com/dashboard/api でAPI キーを取得します。
https://mcp.publora.com/mcpにある MCP サーバーにエージェントを接続します。/mcpを使わずに手動で接続している場合の移行: Claude はhttps://mcp.publora.comを、バンドル済みのサーバーとは別のサーバーとして扱います。既存の接続先を現在のスコープでhttps://mcp.publora.com/mcpに変更し、認証情報と選択済みアカウントはそのまま維持してください。求められた場合は再度サインインします。別の方法として、バンドル済みの接続で意図したアカウントが使われていることを確認してから、古い手動接続だけを削除します。接続を二重に追加したり、認証情報を自動で削除したりしないでください。- 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 ヘッダー
# Get 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": ["threads-12345"],
"content": "Your post content",
"scheduledTime": "2026-03-25T10:00:00Z"
}'
プラットフォーム ID の形式: threads-{id}(/platform-connections から取得)
📖 ドキュメント: docs.publora.com
プラットフォームの上限
| 機能 | 上限 |
|---|---|
| 投稿あたりの文字数 | 500(スレッドの各パートごと) |
| ハッシュタグ | 投稿あたり最大 1 個 |
| リンク | 投稿あたり最大 5 個 |
| カルーセルあたりの画像数 | 2~20 枚 |
| 画像サイズ | 8 MB |
| 画像形式 | JPEG、PNG(WebP は自動変換) |
| 動画の長さ | 5 分 |
| 動画サイズ | 1 GB |
| 動画形式 | MP4、MOV |
| 1 日あたりの投稿数 | 250 |
| 1 日あたりの返信数 | 1,000 |
利用可能なツール
create_post
新しい Threads 投稿またはスレッドを作成します。
パラメーター:
platforms:Threads 接続 ID の配列(例:["threads-12345"])content:投稿テキスト(500 文字を超える場合は自動的にスレッド化されます)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 を取得します。
complete_media
署名付き PUT が成功した後、get_upload_url でアップロードしたファイルを確定します。予約処理でも保留中のメディアが確定されるため省略できますが、早めに呼び出すと、公開前に形式やプローブのエラーを確認できます。mediaUrls で添付したメディアには不要です。
パラメーター:
mediaId:get_upload_urlが返す ID
list_connections
接続済みアカウントとそのプラットフォーム ID を一覧表示します。最初にこれを呼び出して、ID をそのままコピーしてください。ID を推測することはできません。
list_posts / get_post / update_post / delete_post
予約投稿と下書きを管理します。update_post は下書きまたは予約投稿の content と platforms も更新するため、誤字の修正や投稿先の変更のために、削除して再作成する必要はありません。delete_media と prune_media_reference はアップロード済みファイルを整理します。
複数パートのスレッド
テキスト全体を 1 つの content フィールドに入力します。Publora は、前の投稿への返信として連なるスレッド形式で公開します。
- 自動分割: 500 文字を超えるコンテンツは拒否されず、スレッド形式に分割されます。分割位置は、段落区切り、改行、文末、単語の境界の順に優先されます。自動分割されたパートには
(1/3)のような接尾辞が付き、各パートの 500 文字のうち 10 文字がそのために確保されるため、テキストは各パートにおよそ 490 文字ずつ入ります。絵文字は 2 文字として数えられます。 - 手動での区切り:
---のみを含む行(前後に改行があるもの)で区切りを指定できます。[1/3]、[2/3]、[3/3]の一式のマーカーも使用できます。手動で区切ったパートは、番号が追加されず、記述どおりに公開されます。---で区切ったパートが上限を超えると自動的に再分割されます。[n/m]で区切ったパートが上限を超えるとTHREAD_PART_TOO_LONGで拒否されます。 - メディア: メディアは最初のパートにのみ添付され、後続のパートはテキストのみです。
- 権限: スレッドには接続の
threads_manage_replies権限が必要です。この権限がない場合、投稿はTHREADS_PERMISSION_REQUIREDで拒否され、パートは一切公開されません。アカウントを Publora Channels で再接続し、すべての権限を承認してください。単独投稿とカルーセルにはこの権限は必要ありません。 - 結果の確認:
get_postはisThread: trueと、各パートに対応するthreadParts[]エントリー(index、content、status、publishedId)を返します。スレッドの一部のパートだけが失敗した場合(THREAD_PARTIALLY_PUBLISHED)、または結果が不明な場合でも、公開済みのパートはそのまま表示されています。不足しているパートのみを公開し、スレッド全体を作り直さないでください。
MCP と REST に parts 配列や、番号付けまたはスレッド化を切り替える設定はありません。入力として使うのは content のみです。
返信の制御
REST API の platformSettings を使って、投稿に返信できるユーザーを制御します。
| 値 | 説明 |
|---|---|
""(空) | プラットフォームのデフォルトの動作(誰でも返信可能) |
"everyone" | 誰でも返信できるよう明示的に許可します |
"accounts_you_follow" | あなたがフォローしているアカウントのみ返信できます |
"mentioned_only" | メンションされたアカウントのみ返信できます |
注:platformSettings は、REST に加えて MCP の create_post および update_post ツールでも使用できます。スキーマは厳密です。プラットフォーム名またはキーに誤りがあると、黙って破棄されるのではなく、検証エラーとして拒否されます。
重要な制限事項
-
ハッシュタグは 1 つまで: Threads では投稿ごとにハッシュタグを最大 1 つまで使用できます。追加のハッシュタグはプラットフォームによって無視されます。
-
投稿の編集は不可: 投稿後は、Threads の投稿を API 経由で編集できません。必要に応じて削除して再投稿してください。
-
動画カルーセルは未対応: Publora のカルーセル機能は画像のみをサポートします。動画のみの投稿は通常どおり利用できます。
-
スレッドには
threads_manage_repliesが必要: この権限が付与される前に作成された接続は、複数パートのスレッドを公開する前に再接続する必要があります。単独投稿とカルーセルには影響ありません。
例
シンプルなテキスト投稿
Post this to Threads:
"Just discovered an amazing productivity hack that saved me 2 hours today. The key is batching similar tasks together."
画像カルーセル
Create a Threads carousel with these 5 product evolution screenshots.
Caption: "From concept to launch - our 6-month journey. #buildinpublic"
注:画像が 2~20 枚必要です。カルーセルでの動画はサポートされていません。
複数パートのスレッド
--- で区切られた各ブロックは、スレッド内の個別の返信として、番号を追加せずに記述どおり公開されます。
Post this to Threads as a thread:
"Thread: 7 mistakes I made as a first-time founder
---
1. Hiring too fast. We went from 2 to 15 in 3 months. The culture suffered.
---
2. Ignoring unit economics. Revenue felt great until we calculated CAC..."
予約投稿
Schedule this for tomorrow at 10 AM:
"Monday motivation: The best time to start was yesterday. The second best time is now."
ベストプラクティス
- 冒頭を重視:最初の2行で読者の関心が決まります。効果的に使いましょう
- 最適な長さ:単独の投稿は100~250文字が効果的です
- ネイティブコンテンツ:オリジナルで会話調の投稿が評価されます
- ハッシュタグは1つ:関連性の高いハッシュタグを1つ使いましょう(プラットフォームの上限)
- 編集不可:投稿前に内容をよく確認しましょう
投稿のタイミング
- 最適な時間帯:ターゲットのタイムゾーンで午前7~9時、午後12~1時、午後7~9時
- 頻度:成長を目指すなら1日1~3件の投稿
- 継続性:定期的な投稿はアカウントがアクティブであることを示します
エンゲージメント
- 最初の1時間以内にコメントへ返信します
- Instagram と相互に参照します(アカウントは連携されています)
- 発見されやすくするため、関連するトピックやキーワードを使います
トラブルシューティング
| エラー | 原因 | 解決策 |
|---|---|---|
| "Account not connected" | Threads/Instagram の OAuth の有効期限が切れています | Publora ダッシュボードから再接続します |
THREADS_PERMISSION_REQUIRED | Chain に threads_manage_replies が必要です | Publora Channels で Threads を再接続し、すべての権限を承認します |
THREAD_PART_TOO_LONG | [n/m] のパートが500文字を超えています | そのパートを短くするか、--- で区切ります。自動的に再分割されます |
THREAD_PARTIALLY_PUBLISHED | 先行するパートの公開後に、あるパートの公開に失敗しました | get_post の threadParts を確認し、未公開のパートのみを公開します |
| "Media upload failed" | 形式またはサイズが正しくありません | 画像が8 MB未満で、JPEG/PNG 形式のみであることを確認します |
| "Carousel requires 2-20 items" | 画像の数が正しくありません | カルーセル用に2~20枚の画像を用意します |
| 1日の投稿数が250件を超えています | レート制限に達しました | 24時間待ちます |