mcpField
I
Instagram MCP Server

Instagram MCP Server

認証済みおすすめリモート
hasdata.comデータ・分析15今日更新

Instagram MCP Server について

Instagram MCP Serverは、公開Instagramプロフィール、投稿、コメントを構造化JSONで取得するホスト型の読み取り専用MCPサーバーです。Claude、CursorなどのMCPクライアントで利用できます。

主な機能

  1. 01公開プロフィールとプロフィールリンクの取得
  2. 02公開投稿とエンゲージメント情報のページ取得
  3. 03投稿やReelsのコメント取得
  4. 04ハッシュタグ、メンション、タグ付けユーザーの解析
  5. 05プロフィール検索プロンプトの提供

活用シーン

  1. 01複数アカウントのフォロワー数と認証状態の比較
  2. 02最近の投稿に含まれるハッシュタグやメンションの集計
  3. 03公開投稿のコメントとエンゲージメントの確認

MCP 対応

読み取り専用ツール3つとプロフィール検索プロンプトをMCPクライアントに提供します。ストリーム可能なHTTP接続、またはstdioランチャーで接続できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.hasdata.com/mcp?apis=instagram
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.hasdata.com/mcp?apis=instagram認証が必要
パッケージ
npm@hasdata/instagram-mcp1.0.8
pypihasdata-instagram-mcp1.0.8

ツール

3
パラメーター型必須説明
urlstringはいInstagram投稿またはリールのURL。例:`https://www.instagram.com/p/Ddjis3vETcP/` または `https://www.instagram.com/instagram/reel/DcymgItMFao/`。
nextPageTokenstringいいえ次ページトークンを指定します。前回のレスポンスで返された `nextPageToken` の値を使用してください。省略すると最初のページを取得します。
includeMusicbooleanいいえライセンス音源とオリジナル音源の両方について、リールの音源(音声ID、アーティスト、曲名)も `post.music` で返します。最初のページでInstagramへの追加リクエストが発生し、`nextPageToken` が設定されている場合は無視されます。デフォルトは false です。

詳細

Instagram MCP サーバー

Claude、Cursor、Windsurf、その他すべての MCP クライアントから、読み取り専用の Instagram ツールを 2 つ利用できる、ホスト型の Model Context Protocol(MCP)サーバーです。ユーザー名から公開プロフィールを検索し、公開投稿フィードを構造化 JSON で順に取得できます。

アカウントに関する公開データを読み取ります。アカウントとして動作することはありません。接続するものはなく、処理のどの段階でもお客様のアカウントは関与しません。

毎月 1,000 クレジットが無料で、カード登録も不要です。Instagram の呼び出し 100 回分に相当します。

https://mcp.hasdata.com/mcp?apis=instagram

Glama スコア ツールコントラクト MCP ツール

目次

必要なもの

カスタムヘッダーを指定したストリーミング可能な HTTP に対応する MCP クライアントが必要です。ダッシュボードで取得できる HasData API キーは、カード登録なしで無料で作成できます。無料枠では月に 100 回呼び出せます。ほかに必要なものはありません。これはリモートサーバーなので、コンテナーを実行する必要はなく、URL とヘッダーを設定するだけで簡単に利用できます。stdio のみ対応するクライアントでは、代わりに @hasdata/instagram-mcp(npm)または hasdata-instagram-mcp(PyPI)のランチャーを使用できます。

クイックスタート

URLhttps://mcp.hasdata.com/mcp?apis=instagram
トランスポートHTTP、ストリーミング対応
認証ヘッダーx-api-key: HASDATA_API_KEY

サーバー URL はすべてのクライアントで共通です。Claude Code と Claude Desktop では実際に動作確認しています。その他のブロックは、各クライアントがリモートサーバー向けにドキュメントで定めている形式に従っています。

OAuth に対応しているクライアントでは、同じ URL をコネクターとして追加し、設定ファイルにキーを記載せずにサインインできます。

Claude Code
claude mcp add --transport http instagram "https://mcp.hasdata.com/mcp?apis=instagram" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

Claude Desktop は設定ファイルからローカル(stdio)サーバーのみを読み込むため、stdio ランチャーを介してリモートサーバーに接続します。@hasdata/instagram-mcp パッケージがそのランチャーで、キーは環境変数から読み込みます。

claude_desktop_config.json:

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["-y", "@hasdata/instagram-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Node ではなく Python を使う場合は、ランチャーを PyPI パッケージに置き換えてください。uvx を使えば、手動でインストールせずに実行できます。

{
  "mcpServers": {
    "instagram": {
      "command": "uvx",
      "args": ["hasdata-instagram-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

OAuth に対応しているクライアントなら、代わりに URL をカスタムコネクターとして追加し、ランチャーを省略できます。

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "instagram": {
      "url": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "instagram": {
      "serverUrl": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Cline
{
  "mcpServers": {
    "instagram": {
      "url": "https://mcp.hasdata.com/mcp?apis=instagram",
      "type": "streamableHttp",
      "headers": { "x-api-key": "HASDATA_API_KEY" },
      "disabled": false
    }
  }
}
VS Code

.vscode/mcp.json:

{
  "servers": {
    "instagram": {
      "type": "http",
      "url": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Gemini CLI

~/.gemini/settings.json:

{
  "mcpServers": {
    "instagram": {
      "httpUrl": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

プロンプトの例

特に回数の記載がない限り、以下はそれぞれ 1 回のツール呼び出しで実行できます。

@nasa のプロフィールを取得して、フォロワー数、認証済みかどうか、自己紹介欄にあるすべてのリンクを教えてください。

1 回の呼び出しで 10 クレジットです。公開アカウントの場合、プロフィールのレスポンスには直近 12 件の投稿も含まれるため、最近の活動について追加で質問しても 2 回目の呼び出しは不要です。

@nasa、@natgeo、@bbcearth について、フォロワー数、フォロー中のアカウント数、認証済みかどうかを比較してください。

3 回の呼び出しで 30 クレジットです。ハンドルごとに 1 回です。

@nasa の直近 50 件の投稿を確認し、すべてのハッシュタグと、それぞれの出現回数を一覧にしてください。

5 回の呼び出しで 50 クレジットです。1 回の呼び出しで 12 件の投稿が返されるため、50 件には 5 ページ分が必要です。

@natgeo の直近 12 件の投稿について、各キャプションで言及されているアカウントと、各投稿の種類を一覧にしてください。

1 回の呼び出しで 10 クレジットです。メンションとハッシュタグは、投稿オブジェクト内でキャプションから解析されて返されます。

これらを実現できる理由は 2 つあります。ハッシュタグとメンションはキャプションから解析された配列として返されるため、エージェントは文章に対して正規表現を実行せずに数を数えられます。また、プロフィールを取得すると、同じレスポンスに最近のフィードも含まれます。そのため、多くの調査に関する質問を 1 回の呼び出しで処理できます。

ツール

ツール返される内容
hasdata_instagram_comments_getInstagramCommentsURLで指定した公開投稿またはリールのコメントを取得し、キャプション、メディア、likesCount、commentsCount、timestampを含む投稿本体と、各コメントのテキスト、いいね数、タイムスタンプ、投稿者を返します。1回につき10クレジット
hasdata_instagram_posts_getInstagramPostsユーザー名(ハンドル)で指定した公開Instagramアカウントの最新投稿を取得し、各投稿のID、ショートコード、キャプション、タイプ、productType、パーマリンク、メディアURLとピクセルサイズ、いいね数とコメント数、投稿時刻に加え、ハッシュタグ、メンション、タグ付けされたユーザー、カルーセルの各アイテムを返します。1回につき10クレジット
hasdata_instagram_profile_getInstagramProfileユーザー名(ハンドル)で指定した公開Instagramプロフィールを取得し、ID、氏名、プロフィール文、プロフィールのリンク、プロフィール画像URL、フォロワー数とフォロー数、認証済みフラグ、直近12件の投稿を返します。1回につき10クレジット

3つのツールはすべて読み取り専用です。2つは公開アカウントのハンドル、もう1つは個別投稿のURLを指定します。以下のサンプルは実際の呼び出し結果を抜粋したもので、アカウントの投稿に応じて数値は変わります。構造を示すものとしてご覧ください。各ツール名は、対応するエンドポイントのリファレンスにリンクしています。

サンプルはペイロードであり、レスポンス全体ではありません。tools/callの結果には1つのテキストブロックが含まれ、そのテキスト自体がurl、status、text、jsonを保持するJSONです。スクレイピングしたデータはjsonの下にあります。生のJSON-RPCレスポンスでは、パスはresult.content[0].textで、これをパースしてから.jsonを参照します。チャットクライアントはこの処理を代行しますが、エンドポイントと直接やり取りするコードでは自分で処理する必要があります。

Instagramプロフィールを取得する

hasdata_instagram_profile_getInstagramProfile

ハンドルで指定した公開プロフィールを1件取得します。

パラメーター型必須備考
handlestringはいプロフィールURLに表示される、@を除いたユーザー名

id、username、fullName、biography、verified、カウンターのfollowersCountとfollowsCount、profilePicUrl、内部のfbid、bioLinks配列、latestPostsを返します。

20アカウントで確認した、常に返される項目とそうでない項目は次のとおりです。id、username、followersCount、followsCount、profilePicUrl、fbidは毎回返されました。fullName、biography、verified、bioLinks、latestPostsはすべての公開アカウントで返されたため、デフォルト値を設定して読み取る項目はこちらです。

非公開アカウントはprivate: trueを返し、それ以外の情報はほとんど返しません。プロフィール文やカウンター(フォロワー数を除く)、投稿はありません。ペイロードの残りを参照する前に、このフラグで分岐してください。

bioLinksは文字列ではなく、オブジェクトの配列です。各エントリーにはurl、Instagram独自のredirectUrlラッパー、linkTypeが含まれます。リンク先を取得するには.urlを参照してください。

{
  "id": "528817151",
  "username": "nasa",
  "fullName": "NASA",
  "biography": "Making the seemingly impossible, possible. ✨",
  "verified": true,
  "followersCount": 104345698,
  "followsCount": 91,
  "profilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/…",
  "fbid": "17841401474538262",
  "bioLinks": [
    {
      "url": "https://www.nasa.gov",
      "title": "NASA.gov Homepage",
      "redirectUrl": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2F&e=…",
      "linkType": "external"
    }
  ],
  "latestPosts": [ "…the most recent posts, same shape as the posts tool…" ]
}
Instagram の投稿を取得する

hasdata_instagram_posts_getInstagramPosts

1 つのハンドルの公開投稿フィードを、ページごとに取得します。

パラメーター型必須備考
handle文字列はい@ を除いたユーザー名
limit数値1 回のレスポンスに含まれる投稿数のおおよその上限です。実際の最大数は 12 で、それより大きい値を指定しても取得数は増えません
nextPageToken文字列前回のレスポンスの pagination.nextPageToken

limit は正確な件数ではなく、おおよその上限です。12 件が Instagram の 1 ページ分であり、1 回の呼び出しで取得できる上限です。limit: 50 を指定しても 12 件が返されます。上限より小さい場合、件数は指定した数に近くなりますが、必ず一致するわけではなく、どの程度近くなるかはアカウントによって異なります。@nasa で測定したところ、limit が 2 の場合は 4 件、6 の場合は 6 件、11 の場合は 10 件、13 の場合は 12 件が返されました。「おおよそ指定数を超えない」と捉え、指定した数と一致すると想定せず、配列の長さを確認してください。

レスポンスには posts と pagination のみが含まれます。以前のバージョンでは、フィードとともにアカウントのプロフィール情報も返していました。その形式を前提とするコードでは、名前とアバターを取得するためにプロフィール呼び出しが必要です。

各投稿には、id、shortcode、caption、type、productType、url、ownerUsername、ownerId、displayUrl、images、ピクセルサイズを表す dimensionsWidth と dimensionsHeight、およびその投稿のコメントエンドポイントへのリンクをあらかじめ用意した hasdataLink が含まれます。キャプションにハッシュタグやメンションがある場合のみ、hashtags と mentions が含まれます。カルーセルの投稿には childPosts に各アイテムが含まれ、taggedUsers にはメディアでタグ付けされたアカウントが列挙されます。

エンゲージメント数はフィードとともに返されます。各投稿には likesCount と commentsCount、および投稿時刻を示す 2 つの値、完全な ISO 時刻の timestamp とカレンダー上の日付の publishDate が含まれます。フィードを人気順に並べ替えたり、日付で絞り込んだりするために、追加の呼び出しは必要ありません。この変更は 2026-10-07 に行われました。それ以前のバージョンのペイロードには、これら 4 つの値は含まれていませんでした。

{
  "posts": [
    {
      "id": "3983374110243288826",
      "shortcode": "DdHyaYAifb6",
      "caption": "Cementing their names in history.\n\nThe Artemis III crew is leaving their mark […] @NASAKennedy",
      "type": "Carousel",
      "productType": "carousel_container",
      "mentions": ["@NASAKennedy", "@EuropeanSpaceAgency", "@Astro_Luca"],
      "url": "https://www.instagram.com/p/DdHyaYAifb6/",
      "hasdataLink": "https://api.hasdata.com/scrape/instagram/comments?url=…",
      "commentsCount": 1053,
      "likesCount": 121490,
      "dimensionsWidth": 1440,
      "dimensionsHeight": 1800,
      "displayUrl": "https://scontent.cdninstagram.com/v/t51.…",
      "images": ["https://scontent.cdninstagram.com/v/t51.…"],
      "timestamp": "2026-09-10T21:20:24.000Z",
      "publishDate": "2026-09-10",
      "ownerUsername": "nasa",
      "ownerId": "528817151",
      "taggedUsers": [{ "id": "549403870", "username": "nasakennedy", "fullName": "NASA's Kennedy Space Center" }],
      "childPosts": [{ "id": "3983374043612570267", "type": "Image", "productType": "carousel_item" }]
    }
  ],
  "pagination": {
    "morePostsAvailable": true,
    "nextPageToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…",
    "hasdataLink": "https://api.hasdata.com/scrape/instagram/posts?handle=nasa&nextPageToken=…"
  }
}

ハッシュタグとメンションには # と @ の接頭辞が保持されます。これは、自分で作成したリストと照合する場合に重要です。ページングを続けるかどうかの判断には morePostsAvailable フラグを使用します。hasdataLink は同じ次ページを REST URL で表したもので、エージェントの呼び出しを手動で再現するときに便利です。

投稿へのコメントを取得する

hasdata_instagram_comments_getInstagramComments

1 つの投稿またはリールのコメントスレッドと、投稿自体を取得します。

パラメーター型必須備考
url文字列はいユーザー名部分の有無を問わず、/p/、/reel/、/tv/ のリンク
nextPageToken文字列前回のレスポンスのトークン
includeMusic真偽値ライセンスされた楽曲とオリジナル音声の両方について、リールの音声も post.music に返します

コメントスレッド自体を取得したい場合に使用します。post オブジェクトにはフィードにすでに含まれているエンゲージメント数が重複して含まれるため、フィードを人気順に並べ替えたり日付で絞り込んだりする目的でこの呼び出しは不要です。フィードで取得済みの数値を集めるために投稿ごとにリクエストを 1 回ずつ送るのは無駄です。

post、comments、pagination が返されます。コメントには id、text、timestamp、likesCount と、id、username、profilePicUrl を含む owner が含まれます。pagination は nextPageToken とともに moreCommentsAvailable を返すため、最後まで到達したか確認するためだけにリクエストを費やすことなく、ページの取得を終了できます。

{
  "post": {
    "shortcode": "DdHyaYAifb6",
    "type": "Carousel",
    "productType": "carousel_container",
    "ownerUsername": "nasa",
    "timestamp": "2026-09-10T21:20:24.000Z",
    "likesCount": 120648,
    "commentsCount": 1020
  },
  "comments": [
    {
      "id": "18188486875408374",
      "text": "I like to become a astronomer",
      "timestamp": "2026-10-05T07:38:17.000Z",
      "likesCount": 0,
      "owner": { "id": "40744210101", "username": "nisha_karippolil" }
    }
  ],
  "pagination": { "moreCommentsAvailable": true, "nextPageToken": "…" }
}

プロンプトとリソース

このサーバーには、クライアントがツール呼び出しをユーザーに組み立てさせる代わりに提示できる、あらかじめ用意されたワークフローとして 1 つのプロンプトが含まれています。

プロンプト機能
instagram_profile公開 Instagram プロフィールを検索します。

このリストは API キーなしで提供されるため、クライアントはユーザーが登録する前に取得できます。

エラーと失敗時の動作

ツールの呼び出しで、クライアントが HTTP エラーコードを目にすることはほとんどありません。MCP レイヤーは 200 を返し、失敗を結果の中に含めます。このとき、isError は true に設定され、理由はテキストで示されます。ステータス行があると思われる箇所に、エージェントはメッセージを読み取ります。

キーが間違っていても、接続エラーではなくツールの出力に現れます。 ツールの一覧取得では空でないキーなら何でも受け付けるため、クライアントはハンドシェイクを完了し、接続状態は緑になります。その後、最初のツール呼び出しで isError: true と HasData API error: 401 Unauthorized というテキストが返されます。それ以前の処理では問題が報告されないため、この文字列に注意してください。

キーがない場合だけは、本当の HTTP エラーになります。 認証はどのツールよりも先に実行され、接続自体が 401 で失敗します。

スキーマに違反する引数は、リクエストになる前に拒否されます。 サーバーは isError: true と MCP error -32602: Input validation error というテキストを返し、該当するフィールドを示します。データは取得されず、課金もされません。

解決できないハンドルは、空のデータではなく明確なエラーになります。 isError: true と HasData API error: 400 Bad Request が返され、requestMetadata.status は error に設定されます。これは失敗が明確に判別できるため、望ましい動作です。配列の長さではなく、フラグを確認してください。

データが公開されていないアカウントでは、投稿フィードは返されません。 これらのツールは公開アカウントを対象としており、公開されていないアカウントには読み取れるデータがありません。latestPosts がない場合は、空のフィードではなく対象外として扱ってください。

データを含む結果には、サポートへの問い合わせ時に伝えると役立つ requestMetadata.id と、その呼び出しに対応する保存済みアーティファクトへの html および json リンクも含まれます。

料金、無料枠、制限

Instagram の各ツールは、呼び出しが成功するたびに 10 クレジットかかります。応答のサイズによって料金は変わりません。投稿が 12 件含まれるプロフィールも、投稿が 1 件もないプロフィールも同じ料金です。

無料枠は毎月 1,000 クレジット、カード登録不要で、Instagram を 100 回呼び出せます。請求サイクルごとに更新されるため、呼び出し頻度の低いエージェントなら、いつまでも無料枠で利用できます。

有料プランは、200,000 クレジット(20,000 回の呼び出し)が含まれる月額 $59からです。利用量が増えるほど単価は下がり、エントリープランの1,000 回あたり $2.95から、Basic では $1.19、Growth ティアでは $0.83になります。最新の料金は料金ページをご覧ください。

同時実行数もプランによって異なります。無料枠では一度に 1 件、Startup では 5 件、Basic では 15 件、Growth ティアでは 50~500 件まで実行できます。自動実行する処理では、上限に達した場合に備えて適切に対処してください。ハンドルを並行して処理するエージェントは、ユーザーより先に上限へ達する可能性があります。

ページ送りのたびに 1 回分の呼び出しが必要です。2 つのアカウントから 100 件の投稿をたどるプロンプトでは、18 回の呼び出しとなり、180 クレジットかかります。無料枠では、フィードを深くたどるよりも、プロフィールを比較するほうが多くの処理を行えます。

ツールの選択

?apis=instagram を指定すると、次の 2 つのツールだけが公開されます。このパラメーターにはリストを指定でき、?apis=instagram,tiktok,youtube とすると、エージェントで 3 つのソーシャルプラットフォームを一度に利用できます。パラメーターを省略すると、HasData が公開しているすべてのツール(現在は 57 個)が利用できます。

通常は、対象を絞ったリストをデフォルトにするほうが適切です。57 個の中から選ぶよりも、2 つのツールから選ぶほうがモデルの選択は正確になりやすく、ツールの説明文も毎ターンのコンテキストを消費するためです。

対象プラットフォームを広げる主な理由は、クロスプラットフォームでの比較です。Instagram のハンドルと TikTok のハンドルに同じ質問をする場合、両方のプラットフォームを公開しておけば、プロンプトは 1 つで済みます。

比較

ほとんどの Instagram MCP サーバーは、このサーバーとは異なる機能を提供しているため、どれを選ぶべきかは特に明確です。

人気のあるサーバーは、アカウントを操作します。Instagram Graph API をラップして、投稿の公開、コメントの閲覧、管理しているアカウントの管理を行うものがあります。ダイレクトメッセージを扱うものもあります。エンゲージメント分析サーバーは、それぞれのセットアップ手順に従って、環境ブロックで INSTAGRAM_USERNAME と INSTAGRAM_PASSWORD を要求します。あなたとしてログインして閲覧するためです。これらはすべて、自分が管理するアカウントを運用する場合に適したツールです。

このサーバーは誰かとしてログインすることはありません。これは別の用途です。このサーバーが答える質問はすべて、自分が所有していないハンドルに関するもので、どのハンドルに対しても呼び出し方法は同じです。

アカウント運用サーバーこのサーバー
何として動作するかトークンまたはセッションを介したあなたのアカウント何もありません。公開データを読み取ります
設定するものアカウントごとの認証情報または Graph API アプリAPI キーを一度だけ
対象となるハンドルあなたが管理するアカウントあらゆる公開ハンドル
投稿とメッセージ送信はい。それが目的です提供していません
出力運用するアカウントに限定あらゆる公開ハンドルの JSON。ハッシュタグとメンションは解析済み
実行するものローカルの Python または Node プロセスURL とヘッダー
費用無料1 回の呼び出しにつき 10 クレジット

決め手となるのは 2 つの行です。投稿、コメント、返信が必要なら、このサーバーではまったく対応できません。関わりのない 100 個のハンドルから同じフィールドを取得する必要があるなら、自分の認証情報を前提にしたサーバーでは対応できません。

判断基準となるのは、完成度ではなく対象範囲です。自分のログイン情報を前提にしたサーバーは、出力の質にかかわらず、あなたが管理するアカウントにしかアクセスできません。このサーバーはあらゆる公開ハンドルについて同じ質問に答え、値を集計しても費用がかからない解析済み配列としてフィールドを返します。

このサーバーが対応しないこと。 コメント、ストーリーズ、フィードに表示されるものを超えるリール、ダイレクトメッセージ、ハッシュタグや場所の検索、書き込みを伴う操作には対応していません。読み取りに特化した機能を 2 つ提供します。

FAQ

Instagram MCP サーバーとは何ですか?

AI クライアントが呼び出せるツールとして、Instagram のデータを公開するサーバーです。クライアントは Model Context Protocol 経由でツール呼び出しを送信し、サーバーがデータを取得して構造化 JSON を返します。モデルは結果を処理し、HTML ページを見ることはありません。このサーバーは読み取り専用ツールを 2 つ公開し、リモートで実行されます。クライアントは URL に接続し、ローカルプロセスは起動しません。

公式の Instagram MCP サーバーはありますか?

Meta は汎用のものを公開していません。Meta 広告向けの公式 MCP はありますが、対象は広告アカウントとキャンペーンであり、プロフィールや投稿のデータではありません。この分野のその他のものは、すべて他の開発者によって構築されています。

対象となるデータは何ですか?

公開アカウントの、ハンドルで指定した公開プロフィールフィールドと公開投稿フィードです。非公開アカウントの場合も、ヘッダー、フォロワー数、フォロー中の数、private: true フラグは返されますが、公開フィードを読み取れないため、自己紹介と投稿は返されません。Instagram の利用規約および適用される法律の遵守を含め、結果の使用方法については利用者の責任となります。

何かをホストしたり実行したりする必要がありますか?

いいえ。これはストリーミング可能な HTTP 上で動作するリモート MCP サーバーです。インストールするものも、Python 環境も、再起動するプロセスもありません。

データは最新ですか、それともキャッシュされていますか?

最新です。各呼び出しではリクエスト時にデータを取得し、それぞれに固有の requestMetadata.id が付与されます。同じ内容の呼び出しを 2 回行うと、保存済みデータの再生ではなく、別々にデータが取得されます。フォロワー数や「いいね!」数などのカウンターはアカウントの状況を反映し、アカウントとともに変化します。

投稿はいくつ取得できますか?

1 回の呼び出しで 12 件、Instagram の 1 ページ分を取得できます。次のページは pagination.nextPageToken から取得できます。公開アカウントの場合、プロフィールの取得には同じ 12 件が追加料金なしで含まれるため、短いフィードに関する質問では投稿取得の呼び出しが不要なこともよくあります。

Instagramのマークアップが変更されたらどうなりますか?

お客様側で対応する必要はありません。変更を追跡し、レスポンスのスキーマを安定させているため、フィールド名と型はそのまま維持されます。値のないフィールドは、存在して値が null になるのではなく、項目から省略されます。そのため、オプションのフィールドはデフォルト値を指定して読み取ってください。

複数のプラットフォームで1つのサーバーを使用できますか?

はい。apis パラメーターにはリストを指定できます。?apis=instagram,tiktok,youtube と指定すると、エージェントは一度に3つのプラットフォームを利用できます。

どのクライアントに対応していますか?

カスタムヘッダー付きのストリーミング可能なHTTPに対応しているMCPクライアントなら、どれでも使用できます。上記の設定はテスト済みです。OAuthに対応しているクライアントなら、代わりにURLをコネクターとして追加できます。

HasDataのリンク

製品ページとリクエストビルダーInstagram Profile API と Instagram Posts API
サーバーのドキュメントMCPサーバーのドキュメント
1つのサーバーで使える57個のツールHasData/hasdata-mcp
クライアント別のガイドMCPクライアントとインテグレーション
その他の解析対象プラットフォームその他53個のスクレイパーAPI
プランとクレジット費用プランとクレジット費用
キーと使用状況HasDataダッシュボード
npmのNodeランチャー@hasdata/instagram-mcp
PyPIのPythonランチャーhasdata-instagram-mcp

開発

このリポジトリは、リモートサーバーの設定とドキュメントを収めたものです。ビルド手順はなく、コンテナ化するものもありません。

このリポジトリにはコントラクトテストがあります。READMEでは、特定のパラメーターを持つ2つのツールを提供すると約束していますが、上流のツール一覧はこのリポジトリへのコミットなしで変更される場合があり、その場合、このファイルに気づかないまま誤った情報が残ることになります。このテストはその約束を検証し、CIで毎週、およびプッシュごとに実行されます。

HASDATA_API_KEY=your_key_here npm test

PowerShellの場合:

$env:HASDATA_API_KEY = "your_key_here"; npm test

最後のチェックでは実際にAPIを呼び出し、10クレジットを消費します。これは、適切な理由で失敗する可能性のあるカナリアテストの費用です。ツール一覧の取得は空でないキーがあれば成功しますが、ツール一覧の取得だけを行うテストでは、失効したキーを使っても成功してしまいます。

コントリビューション

ツールの表とレスポンスのサンプルは、変化しやすい部分なので、これらの修正が最も役立ちます。実行した呼び出しと、得られたレスポンスを記載してください。フォークからのプルリクエストでは、キーなしでテスト一式が実行され、ライブチェックは失敗扱いにならずスキップされます。

ライセンス

MITです。LICENSEを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。