mcpField
I
instagram

instagram

github.com/hyperfx-aiマーケティング・グロース107252 回インストール2 日前に更新
リポジトリ

instagram について

instagram は、Instagram Login と Instagram API を使って Instagram のプロアカウントを管理するスキルです。投稿、メッセージ、コメント管理、プロフィール、インサイトを扱い、Hyper MCP ツールの操作手順も示します。

主な機能

  1. 01写真、Reels、カルーセルの投稿
  2. 02メディアとプロフィール情報の取得
  3. 03コメントとダイレクトメッセージの管理
  4. 04アカウントとメディアのインサイト取得
  5. 05API制限とメッセージ規則への対応

活用シーン

  1. 01プロアカウントへのコンテンツ投稿
  2. 02顧客からのダイレクトメッセージへの返信
  3. 03投稿コメントの確認と管理
  4. 04アカウントと投稿の実績追跡

MCP 対応

Hyper MCP が提供するツールを使い、接続済みの Instagram アカウントを操作します。MCP クライアントまたは Hyper CLI からツールを検索、説明確認、呼び出しできます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hyperfx-ai/marketing-skills --skill instagram

インストール後、Claude Code で/instagramを入力して読み込まれたか確認します。

詳細

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 CLIhyperai 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:コンテンツの公開

公開ワークフロー
  1. メディアコンテナを作成します(写真、リール、ストーリー、またはカルーセル)。
  2. コンテナのステータスを確認します(動画/リールでは必須です。FINISHED になるまで確認を繰り返します)。
  3. コンテナを公開します。
  4. 最近のメディアを一覧表示して確認します。
写真の単独投稿
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>")
コンテンツの上限
種類形式最大サイズ長さ
写真JPEG8MB—
リールMP4 / MOV300MB3s – 15min
ストーリー画像JPEG8MB—
ストーリー動画MP4 / MOV100MB3s – 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_2828日間の内訳。
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()

コメント