instagram について
instagram は、Instagram Login と Instagram API を使って Instagram のプロアカウントを管理するスキルです。投稿、メッセージ、コメント管理、プロフィール、インサイトを扱い、Hyper MCP ツールの操作手順も示します。
主な機能
- 01写真、Reels、カルーセルの投稿
- 02メディアとプロフィール情報の取得
- 03コメントとダイレクトメッセージの管理
- 04アカウントとメディアのインサイト取得
- 05API制限とメッセージ規則への対応
活用シーン
- 01プロアカウントへのコンテンツ投稿
- 02顧客からのダイレクトメッセージへの返信
- 03投稿コメントの確認と管理
- 04アカウントと投稿の実績追跡
MCP 対応
Hyper MCP が提供するツールを使い、接続済みの Instagram アカウントを操作します。MCP クライアントまたは Hyper CLI からツールを検索、説明確認、呼び出しできます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hyperfx-ai/ marketing-skills --skill instagramインストール後、Claude Code で/instagramを入力して読み込まれたか確認します。
詳細
Instagram Login(Business Login)を使用した Instagram API を通じて、Instagram のプロアカウントを管理するための包括的なスキルです。コンテンツの公開、メッセージング、コメントのモデレーション、インサイト、プロフィール管理に対応しています。
対象外 — 他のスキルを案内してください
| リクエスト | 案内先 |
|---|---|
| Instagram / Facebook の有料広告、投稿の宣伝、Advantage+ | meta-ads |
| Meta 広告ライブラリを使った競合広告の調査 | meta-ads-library |
| TikTok への投稿 | tiktok |
| LinkedIn のドキュメント投稿またはカルーセル投稿 | linkedin |
要件
- Hyper MCP がインストールされ、接続されていること。 https://app.hyperfx.ai/mcp
- https://app.hyperfx.ai/apps で Instagram インテグレーションに接続していること — このスキルでは Instagram Login を使用した Instagram API を使います(Facebook Login を使用する旧 Instagram Graph API は使いません)。
- 組織の投稿を会社のページに公開するには、接続済みのアカウントに、その組織のために投稿する権限が必要です。
search("instagram_current_user_get") で instagram_current_user_get が見つからない場合は、処理を中止し、Hyper MCP を有効にして Instagram に接続するようユーザーに伝えてください。
このスキルのツールの実行方法
このスキルの各ツールは、正式なツール名で指定されています。利用する環境に応じて、次の呼び出し方法を使用してください。
| 環境 | ツールを探す | 実行する |
|---|---|---|
| MCP クライアント(Claude、Cursor、Codex、ChatGPT) | search("<what you want to do>") を実行し、続けて describe("<name>") を実行 | call("<name>", {...}) |
| Hyper CLI | hyperai search "<what you want to do>" を実行し、続けて hyperai describe <name> を実行 | hyperai call <name> --json '{...}' |
ツールが見つからない場合、そのインテグレーションは未接続か、ワークスペースで有効になっていません。処理を中止し、接続が必要なインテグレーションをユーザーに伝えてください。
ツール一覧
| ツールグループ | ツール |
|---|---|
| アカウント | instagram_current_user_get、instagram_users_get (ユーザー名または ID を指定して、公開されている任意の IG プロフィールを検索します。コメント投稿者や DM の連絡先の調査に便利です) |
| 公開 | instagram_photo_containers_create、instagram_reel_containers_create、instagram_carousel_containers_create、instagram_container_status_check、instagram_media_publish、instagram_publishing_limits_check |
| メディアライブラリ | instagram_media_list、instagram_media_get、instagram_album_children_get、instagram_stories_list、instagram_tagged_media_get |
| コメント | instagram_comments_list、instagram_comments_send、instagram_comments_reply、instagram_comments_hide、instagram_comments_delete、instagram_comments_toggle |
| ダイレクトメッセージ | instagram_conversations_list、instagram_conversation_messages_get、instagram_messages_get、instagram_messages_send、instagram_media_messages_send、instagram_post_messages_send、instagram_messages_react |
| インサイト | instagram_account_insights_get、instagram_media_insights_get |
重要なルール
重要:このツールキットでは、Instagram Login による Instagram API(Facebook Login 経由の旧 Instagram Graph API ではありません)を使用します。指標名と利用可能なフィールドは旧 API とは異なります。このスキルに記載されている指標名を必ず使用してください。
重要:この API に
engagement指標はありません。代わりに、likes、comments、shares、total_interactionsなどの個別の指標を使用してください。
重要:アカウントレベルのインサイトでは、
impressions指標は無効です。代わりにreachまたはviewsを使用してください。
重要:コンテンツの公開には、2 段階のコンテナワークフローを使用します:(1)メディアコンテナを作成し、(2)公開します。動画コンテンツの場合は、公開前にコンテナのステータスを
FINISHEDになるまで確認してください。
重要:Instagram DM への返信は、ユーザーからの最後のメッセージから 24 時間以内(標準メッセージングウィンドウ)に送信する必要があります。承認されている場合、Human Agent タグを使うと期間は 7 日間に延長されます。
重要:公開レート制限は、24 時間のローリングウィンドウあたり API 経由で公開できる投稿が 100 件です。カルーセルは 1 件の投稿として数えられます。一括公開の前には、必ず
instagram_publishing_limits_checkを呼び出してください。
重要:ユーザーから検証済みの Facebook Page ID が明示的に提供されない限り、写真、リール、カルーセルのコンテナで
location_idパラメーターを使用しないでください。この連携では Instagram Business Login を使用しているため、位置情報 ID の検索や検証はできません。無効な ID や推測した ID を渡すと、400 エラー(Param location_id is not a valid location page ID)が発生します。ユーザーから位置情報のタグ付けを求められた場合は、位置情報データを含む Facebook Page ID が必要であることを説明してください。
重要:Instagram のツールにメディア URL(
image_url、video_url、cover_url、media_url)を渡すときは、ソースツールから返された URL をそのまま使用してください。多くの場合、read_fileまたはdisplay_fileのurlフィールドが該当します。以下の操作はしないでください:
- URL を再構築したり、短縮したりしないでください。
- クエリパラメーター(署名、タイムスタンプなど)を削除、変更、または追加しないでください。
- 別のホストに置き換えないでください。
- URL を記憶からコピーしたり、文字ごとに書き写したりしないでください。代わりに
read_fileを再度呼び出してください。Hyper-hosted CDN の URL は、必要に応じて Meta 向けに自動でサイズ変更および再署名されるため、そのまま渡してください。署名に 1 文字でも誤りがあると、Meta は誤解を招く
9004 / 2207052: Only photo or video can be accepted as media typeエラーを返します。
重要:ほとんどのツールは認証済みアカウントを自動的に操作するため、
user_idを渡す必要はありません。ツールキットがアクセストークンから内部的に解決します。ユーザーに表示するプロフィール情報(ユーザー名、フォロワー数など)が必要な場合に限り、instagram_current_user_getを呼び出してください。別のアカウントを検索する場合に限り、instagram_users_get(user_id=...)を使用してください。
フェーズ 1:アカウントの検索(任意)
接続済みアカウントのプロフィールを取得する
instagram_current_user_get()
返される項目:user_id、username、name、account_type、profile_picture_url、followers_count、follows_count、media_count、biography、website。
他のツール呼び出しに user_id を引き継ぐ必要はありません。ツールが自動的に解決します。
フェーズ 2:コンテンツの公開
公開ワークフロー
- メディアコンテナを作成します(写真、リール、ストーリー、またはカルーセル)。
- コンテナのステータスを確認します(動画/リールでは必須です。
FINISHEDになるまで確認を繰り返します)。 - コンテナを公開します。
- 最近のメディアを一覧表示して確認します。
写真の単独投稿
instagram_photo_containers_create(
image_url="https://example.com/photo.jpg", # Public JPEG URL, max 8MB
caption="Your caption here #hashtag",
alt_text="Accessibility description",
)
# Returns container ID
instagram_media_publish(
creation_id="<container_id>",
)
リール(短尺動画)
instagram_reel_containers_create(
video_url="https://example.com/video.mp4", # Public MP4/MOV, max 300MB, 3s-15min
caption="Reel caption #reels",
cover_url="https://example.com/cover.jpg", # Optional cover image
share_to_feed=True,
)
# MUST poll status for video content
instagram_container_status_check(container_id="<container_id>")
# Wait until status_code == "FINISHED", poll once per minute, max 5 minutes
instagram_media_publish(creation_id="<container_id>")
ストーリー(24 時間で期限切れ)
注記: この MCP 連携では、ストーリーの公開はまだサポートされていません。現在公開中のストーリーを読むには、次を使用してください:
instagram_stories_list()ユーザーからストーリーの投稿を求められた場合は、この機能はまだ利用できないことを伝え、代替案として
share_to_feed=Trueを指定したリールの投稿を提案してください。
カルーセル(2~10 項目)
# Step 1: create child containers (each with is_carousel_item=True for photos)
instagram_photo_containers_create(
image_url="https://example.com/photo1.jpg",
is_carousel_item=True,
)
# Repeat for each image / video
# Step 2: create the carousel container with child IDs
instagram_carousel_containers_create(
children=["<child_id_1>", "<child_id_2>", "<child_id_3>"],
caption="Carousel caption",
)
# Step 3: publish
instagram_media_publish(creation_id="<carousel_container_id>")
コンテンツの上限
| 種類 | 形式 | 最大サイズ | 長さ |
|---|---|---|---|
| 写真 | JPEG | 8MB | — |
| リール | MP4 / MOV | 300MB | 3s – 15min |
| ストーリー画像 | JPEG | 8MB | — |
| ストーリー動画 | MP4 / MOV | 100MB | 3s – 60s |
| キャプション | テキスト | 2200 chars | ハッシュタグ30個、@タグ20個 |
| カルーセル | 混合 | 2 – 10 items | — |
フェーズ3:コメントのモデレーション
コメントを読む
instagram_comments_list(media_id="<media_id>")
コメントを投稿する
instagram_comments_send(media_id="<media_id>", message="Great post!")
コメントに返信する
instagram_comments_reply(comment_id="<comment_id>", message="Thanks!")
コメントをモデレートする
# Hide spam / inappropriate comments
instagram_comments_hide(comment_id="<comment_id>", hide=True)
# Delete a comment (only the media owner can delete)
instagram_comments_delete(comment_id="<comment_id>")
# Toggle comments on / off for a post
instagram_comments_toggle(media_id="<media_id>", comment_enabled=False)
メンションに返信する
注: メンション専用ツール(
instagram_reply_to_mention、instagram_get_mentioned_media、instagram_get_mentioned_comment)は、この MCP 統合ではまだ利用できません。メンションはメディアへのコメントとして表示されるため、instagram_comments_listから取得したコメント ID を使い、instagram_comments_replyで返信してください。
フェーズ4:ダイレクトメッセージ(CRM)
会話の一覧表示
instagram_conversations_list()
メッセージを読む
# Get message IDs from a conversation
instagram_conversation_messages_get(conversation_id="<conversation_id>")
# Get full message details (only 20 most recent are queryable)
instagram_messages_get(message_id="<message_id>")
メッセージを送信する
# Text message
instagram_messages_send(
recipient_id="<recipient_igsid>", # From the message's 'from' field
text="Thanks for reaching out!",
)
# Media attachment (image, video, audio, PDF)
instagram_media_messages_send(
recipient_id="<recipient_igsid>",
media_type="image", # image, video, audio, or file
media_url="https://example.com/photo.jpg",
)
# Share a published post via DM
instagram_post_messages_send(
recipient_id="<recipient_igsid>",
post_id="<media_id>", # Must be your own post
)
# React to a message
instagram_messages_react(
recipient_id="<recipient_igsid>",
message_id="<message_id>",
reaction="love",
)
メッセージ送信の制約
- 受信者が先に会話を開始している必要があります。
- ユーザーの最後のメッセージから24時間の応答期限があります(Human Agent タグがある場合は7日間)。
- テキストメッセージ:UTF-8、最大1000バイト。
- メディアの上限:画像(PNG / JPEG、8MB)、動画(MP4 / OGG、25MB)、音声(AAC / WAV、25MB)、ファイル(PDF、25MB)。
フェーズ5:分析とインサイト
アカウントレベルのインサイト
instagram_account_insights_get(
metric=["reach", "profile_views", "follower_count", "accounts_engaged", "total_interactions"],
period="week",
)
注: 一部の指標(
profile_views、total_interactions、人口統計指標)にはinstagram_business_manage_insights権限とビジネスアカウントが必要です。クリエイターアカウントでは、これらの指標は通知なしで省略されます。レスポンスに指標が含まれていない場合は、instagram_current_user_getが返すアカウントの種類を確認してください。
有効なアカウント指標:
| 指標 | 説明 |
|---|---|
reach | コンテンツを閲覧したユニークアカウント数。 |
follower_count | フォロワーの合計数(期間は lifetime のみ)。 |
website_clicks | プロフィール内のウェブサイトリンクのクリック数。 |
profile_views | プロフィールページの閲覧数。 |
online_followers | 指定した時点でオンラインのフォロワー数。 |
accounts_engaged | インタラクションしたユニークアカウント数。 |
total_interactions | いいね、コメント、シェア、保存、返信の合計数。 |
likes | すべてのコンテンツのいいねの合計数。 |
comments | すべてのコンテンツのコメントの合計数。 |
shares | すべてのコンテンツのシェアの合計数。 |
saves | すべてのコンテンツの保存の合計数。 |
replies | 返信の合計数(ストーリー/メッセージ)。 |
follows_and_unfollows | フォロワー数の純増減。 |
profile_links_taps | プロフィールリンクのタップ数。 |
views | コンテンツの閲覧数の合計。 |
engaged_audience_demographics | エンゲージメントしたオーディエンスの人口統計情報。 |
reached_audience_demographics | リーチしたオーディエンスの人口統計情報。 |
follower_demographics | フォロワーの人口統計情報。 |
無効なアカウント指標: impressions、email_contacts、phone_call_clicks、text_message_clicks、get_directions_clicks。
メディアレベルのインサイト
instagram_media_insights_get(
media_id="<media_id>",
metric=["reach", "likes", "comments", "saved", "shares", "total_interactions"],
)
- 共通指標(ストーリー以外のすべてのメディア):
reach、saved、likes、comments、shares、total_interactions、views。 - リール専用の追加指標(リール以外では自動的に除外):
ig_reels_avg_watch_time、ig_reels_video_view_total_time、clips_replays_count、ig_reels_aggregated_all_plays_count。 - ストーリー専用指標:
reach、replies、follows、navigation、profile_visits、profile_activity、views。
ヒント: メディアがリールかどうかわからない場合は、共通指標を使用してください。リール専用指標をリール以外のメディアに指定すると、サーバーによって自動的に除外されます。
無効なメディア指標: engagement、impressions、plays、saves — メディアでは saves ではなく saved を使用してください(saves はアカウントレベル専用です)。
期間の値
| 期間 | 説明 |
|---|---|
day | 日ごとの内訳。 |
week | 週ごとの内訳。 |
days_28 | 28日間の内訳。 |
month | 月ごとの内訳。 |
lifetime | 全期間(follower_count に必須)。 |
フェーズ6:メディアとストーリーの管理
メディアライブラリを閲覧する
# List recent posts (up to 10K)
instagram_media_list(limit=25)
# Get details of a specific post
instagram_media_get(media_id="<media_id>")
# Get carousel children
instagram_album_children_get(media_id="<carousel_media_id>")
# List active stories (24h window)
instagram_stories_list()
# Get tagged media
instagram_tagged_media_get()