instagram-post について
instagram-post は、Publora MCP サーバーを通じて Instagram の投稿を作成・予約するスキルです。Instagram Business アカウント向けに、画像投稿、カルーセル、Reels、Stories に対応します。
主な機能
- 01Instagram 投稿の作成と予約
- 02画像カルーセルの公開
- 03動画を Reels または Stories として投稿
- 04URL またはアップロードによるメディア添付
- 05下書きと予約投稿の管理
- 06キャプションとプラットフォーム設定
活用シーン
- 01画像付きの商品告知を予約
- 02複数のスクリーンショットをカルーセルで共有
- 03動画を Reel として公開
- 04短時間で消える動画 Story を投稿
MCP 対応
`https://mcp.publora.com/mcp` の Publora MCP サーバーを使って Instagram 投稿ツールにアクセスします。REST API の代替手段も記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ publora/ skills --skill instagram-postインストール後、Claude Code で/instagram-postを入力して読み込まれたか確認します。
詳細
Instagram 投稿
Publora MCP サーバーを使用して、Instagram 投稿の作成とスケジュール設定を行えます。画像投稿、カルーセル(画像 2~10 枚)、リール、ストーリーズに対応しています。Instagram ビジネスアカウントが必要です。
前提条件
プラン: 無料の Starter プランで利用できます。現在の上限と料金は、publora.com/pricingをご覧ください。
はじめに
- publora.com/registerでアカウントを作成します(無料)。
- Instagram の設定でビジネスアカウントに切り替えます(個人アカウントとクリエイターアカウントは API でサポートされていません)。
- Publora ダッシュボードで OAuth を使用してInstagram を接続します。
- 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": ["instagram-11223344"],
"content": "Your caption here #hashtag",
"scheduledTime": "2026-03-25T10:00:00Z"
}'
プラットフォーム ID の形式: /platform-connectionsのレスポンスに含まれる{id}を使用したinstagram-{id}
ID の例:instagram-11223344、instagram-55667788
📖 API ドキュメント全文: docs.publora.com
プラットフォームの制限(API とネイティブアプリ)
これらの制限は Instagram Graph API 固有のもので、ネイティブアプリの制限とは異なります。
画像
| 機能 | API の制限 |
|---|---|
| 形式 | JPEG、PNG、WebP(WebP は自動変換されます)。アニメーション GIF、BMP、TIFF は拒否されます。 |
| 最大ファイルサイズ | 8 MB |
| カルーセル画像 | 2~10 枚(ネイティブアプリでは 20 枚まで対応) |
| アスペクト比 | 4:5(縦長)~1.91:1(横長) |
動画
| 機能 | リール | ストーリーズ | カルーセル動画 |
|---|---|---|---|
| 最大再生時間 | 15 分(リールタブの対象となるのは 5~90 秒のみ) | 60 秒 | 60 秒 |
| 最小再生時間 | 3 秒 | 3 秒 | 3 秒 |
| 最大ファイルサイズ | 300 MB | 100 MB | 300 MB |
| 形式 | MP4、MOV | MP4、MOV | MP4、MOV |
キャプション
| 機能 | 制限 |
|---|---|
| キャプションの長さ | 2,200 文字 |
| 「続きを読む」の前に表示される文字数 | 最初の 125 文字 |
| ハッシュタグ | 1 投稿あたり 30 個(キャプションに含まれます) |
レート制限
- 24 時間あたり 50 投稿(一部のアカウントでは 25 件との報告があります)
利用可能なツール
create_post
新しい Instagram 投稿を作成します。
パラメーター:
platforms:Instagram 接続 ID を含む配列(例:["instagram-11223344"])content:キャプションのテキスト(最大 2,200 文字)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、動画の場合はvideo/mp4を指定する必要がありますtype:"image"または"video"
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 で、アップロードしたファイルを整理できます。
動画タイプの設定(REST API 経由)
platformSettings で動画の公開方法を指定します。
{
"platformSettings": {
"instagram": {
"videoType": "REELS"
}
}
}
| 設定 | 値 | デフォルト | 説明 |
|---|---|---|---|
videoType | "REELS"、"STORIES" | "REELS" | 動画の公開方法を指定します |
注:platformSettings は、MCP の create_post および update_post ツールでも、REST 経由でも指定できます。スキーマは厳密です。プラットフォーム名やキーを誤って入力すると、無視されず、検証エラーになります。
例
画像 1 枚の投稿
Post this to Instagram:
"Morning coffee and code. Best way to start the day. #devlife #coding"
[Attach JPEG image]
形式: JPEG、PNG、WebP がすべて利用できます。WebP は公開前に変換されます。
カルーセル投稿
Create an Instagram carousel with these 5 product screenshots.
Caption: "Our app evolution over 6 months. Swipe to see the journey! #buildinpublic"
注:JPEG 画像が 2~10 枚必要です。カルーセルでは画像と動画を混在させることはできません。
リール
Post this video as a Reel:
"60-second tutorial on our new feature. #tutorial #app"
動画はデフォルトでリールになります。REST API 経由で videoType: "STORIES" を設定すると、ストーリーズになります。
ストーリーズ
Post this 30-second clip as a Story (will disappear after 24 hours).
REST API 経由で platformSettings.instagram.videoType: "STORIES" を設定する必要があります。
予約投稿
Schedule this for tomorrow at 10 AM:
"New feature announcement coming soon! Stay tuned."
[Attach JPEG image]
重要な制限事項
-
アニメーション GIF、BMP、TIFF は拒否されます。 JPEG、PNG、WebP は受け付けられ、WebP は自動変換されます。
-
ビジネスアカウントが必要です:個人アカウントとクリエイターアカウントは API 経由で投稿できません。利用できるのはビジネスアカウントのみです。
-
すべての投稿にメディアが必要です:Instagram はテキストのみの投稿に対応していません。すべての投稿に少なくとも 1 枚の画像または 1 本の動画が必要です。
-
カルーセルでメディアを混在させることはできません:カルーセルは画像のみ、または動画のみ(別々の投稿として)のどちらかにする必要があります。
-
ストーリーズは消えます:ストーリーズは一時的なもので、24 時間後に消えます。
-
デフォルトはリールです:動画はデフォルトでリールとして公開されます。ストーリーズを投稿するには、REST API で
videoType: "STORIES"を指定してください。
ベストプラクティス
コンテンツ
- 最初の 125 文字が重要です:「続きを読む」をタップする前にユーザーに表示される部分です
- ハッシュタグの使い方:関連性の高いハッシュタグを 5~15 個使用してください(最大 30 個)
- 画像の品質:最良の結果を得るには、高品質な JPEG 画像を使用してください
- カルーセルのエンゲージメント:カルーセルは画像 1 枚の投稿より高いエンゲージメントを得られます
投稿のタイミング
- 最適な時間帯:ターゲットのタイムゾーンで午前11時~午後1時、午後7時~午後9時
- 頻度:成長を促すには1日1~2件の投稿
- リールの優位性:静止画像よりもリールがアルゴリズムで優先されます
エンゲージメント
- 最初の1時間以内にコメントへ返信します
- 関連する場合は位置情報タグを使用します
- ストーリーズからフィードへの相互プロモーションを行います
トラブルシューティング
| エラー | 原因 | 解決策 |
|---|---|---|
| "Business account required" | 個人アカウントまたはクリエイターアカウントを使用している | Instagramの設定でビジネスアカウントに切り替えます |
| "Invalid image format" | PNGなど、JPEG以外の形式を使用している | アップロード前に画像をJPEGに変換します |
| "Media upload failed" | ファイルサイズが大きすぎる、または形式が正しくない | 画像は8 MB未満のJPEG、動画は300 MB未満のMP4であることを確認します |
| "Carousel requires 2-10 items" | 画像の数が正しくない | カルーセルには2~10枚の画像を使用します |
| "Account not connected" | OAuthの有効期限が切れている | Publoraダッシュボードから再接続します |
| Rate limit (429) | 1日の投稿数が50件を超えている | 24時間待ちます |