instadata について
instadataは、公開Instagramプロフィール、最新投稿、投稿やリールのコメントをJSONで取得するローカルブリッジです。読み取り専用データを必要とするクライアント向けで、HasDataへ転送し、ローカルには保存もスクレイピングもしません。
主な機能
- 01ハンドルによる公開プロフィール取得
- 02メディア情報付き最新投稿の一覧
- 03投稿とリールのコメント取得
- 04投稿とコメントのページ送り
- 05HasDataへの読み取り専用転送
活用シーン
- 01公開アカウントのプロフィールとフォロワー数の確認
- 02最新投稿とエンゲージメント指標の確認
- 03投稿やリールのコメント取得
MCP 対応
MCPクライアントに3つの読み取り専用Instagram検索ツールを公開します。呼び出しをホスト型HasData Instagram MCPサーバーへ転送し、成功結果をそのまま返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | Instagram投稿またはリールのURL。例:`https://www.instagram.com/p/Ddjis3vETcP/` または `https://www.instagram.com/instagram/reel/DcymgItMFao/`。 |
| includeMusic | boolean | いいえ | ライセンス音源とオリジナル音源の両方について、リールの音源(音声ID、アーティスト、曲名)も `post.music` で返します。最初のページでInstagramへの追加リクエストが発生し、`nextPageToken` が設定されている場合は無視されます。デフォルトは false です。 |
| nextPageToken | string | いいえ | 次ページトークンを指定します。前回のレスポンスで返された `nextPageToken` の値を使用してください。省略すると最初のページを取得します。 |
詳細
instadata
instadata は、ホスト型の HasData Instagram MCP サーバーへの軽量なローカルブリッジです。公開 Instagram コンテンツを JSON として返します。ハンドルを指定すると、そのアカウントのプロフィール(氏名、自己紹介、 外部リンク、プロフィール画像、フォロワー数とフォロー数、 認証済みフラグと非公開フラグ)や、最新の投稿を取得できます。投稿には、キャプション、ハッシュタグ、 メンション、「いいね」とコメントの数、動画やリールの再生数、メディア URL、タイムスタンプが含まれます。代わりに投稿またはリールの URL を渡すと、その投稿に対するコメントが返されます。各コメントには、テキスト、タイムスタンプ、「いいね」と返信の数、投稿者が含まれます。
このブリッジは何も保存せず、それ自体でスクレイピングも行いません。 ライブエンドポイントから取得した内容そのままのツール一覧をローカルで返し、各ツール呼び出しを上流に転送して、応答を変更せずに返します。機能は公開コンテンツに対する読み取り専用の検索が3種類だけです。投稿、メッセージ送信、フォロー、保存は行わず、メールアドレスや電話番号のデータも一切含まれません。
ツール
hasdata_instagram_profile_getInstagramProfile— ハンドルで指定した公開プロフィールを1件取得します。必須:handle(@を付けないユーザー名)。氏名、自己紹介、外部リンク、プロフィール画像の URL、 フォロワー数、フォロー数、認証済みフラグ/非公開フラグを返します。hasdata_instagram_posts_getInstagramPosts— 公開アカウントの最新の投稿を取得します。必須:handle。任意:limit(リクエストあたりの投稿数。上流のデフォルトは12)と、 古い投稿を取得するためのnextPageToken。非公開アカウントや 存在しないハンドルの場合は、投稿ではなくエラーフィールドが返されます。hasdata_instagram_comments_getInstagramComments— 公開投稿またはリールのコメントを取得します。必須:url(ユーザー名部分の有無を問わず、/p/、/reel/、/tv/のリンク)。 任意:後続ページ用のnextPageTokenと、1ページ目にリールの音源(音声 ID、アーティスト名、 曲名)も返すためのincludeMusic。1ページ目にはカルーセル項目を含む投稿自体も含まれます。後続ページではコメントのみが返されます。
設定
HASDATA_INSTAGRAM_MCP_URL(任意)— 上流エンドポイントを上書きします。デフォルトはhttps://mcp.hasdata.com/mcp?apis=instagramです。(この上書き用フックは、この再構築独自のものと明記されています。)HASDATA_API_KEY(任意)— 設定すると、すべての上流リクエストに、呼び出し元自身の HasData API キーを指定するx-api-key: <value>ヘッダーが付加されます。設定しない場合、キーのヘッダーは送信されません。(ヘッダー名と環境変数名は、元のレジストリレコードで確定しています。この環境変数からキーを転送する動作は、再構築独自のものと明記されています。元の機能はキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、上流とのストリーミング可能な HTTP セッションが開始されます。まず JSON-RPC のinitializeリクエスト(protocolVersion 2025-03-26、clientInfo name
instadata)を送り、次にnotifications/initialized
通知を送り、その後、呼び出し元の引数を変更せずに含めたtools/callリクエストを送信します。上流がinitializeに対してMcp-Session-Id
ヘッダーを返した場合、その値はセッションの以降のすべてのリクエストで使われ、プロセスの存続中は同じセッションが再利用されます。応答は通常の JSON またはサーバー送信イベントの形式で届く場合があります。どちらも読み取ります。
上流で成功した結果は、上流が設定したisErrorフラグも含め、そのまま通過します。
JSON-RPC エラー、2xx 以外のステータス、読み取り不能な応答、完了できないリクエストなどの失敗は、テキストがinstadata error:で始まるisError結果として返されます(この表示形式は、この再構築独自のものと明記されています)。
CLI
各ツールは、JSON 引数文字列を1つ取るサブコマンドとしても実行できます。
npx @reneturcios/instadata hasdata_instagram_profile_getInstagramProfile '{"handle":"instagram"}'
npx @reneturcios/instadata hasdata_instagram_posts_getInstagramPosts '{"handle":"instagram","limit":5}'
npx @reneturcios/instadata hasdata_instagram_comments_getInstagramComments '{"url":"https://www.instagram.com/p/Ddjis3vETcP/"}'
npx @reneturcios/instadata --version
終了コード:成功時は0、isError結果の場合は1、使用方法が誤っている場合は2です。
MCP サーバー
npx -y @reneturcios/instadata mcp
MCP クライアントの設定:
{
"mcpServers": {
"instadata": {
"command": "npx",
"args": ["-y", "@reneturcios/instadata", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/instadata
docker run --rm ghcr.io/cloudcorprecords/instadata --version
コンテナのデフォルトコマンドはmcpなので、最初の形式は stdio MCP サーバーとして動作します。それ以外の引数は、通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートは、スタブ化された JSON-RPC アップストリームに対してのみ実行されます。実際のネットワークへの呼び出しはありません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。