# Instagram Data

> Read-only public Instagram data: profiles, posts, reels, stories, comments, top-accounts ranking.

- name: io.github.FastSocialCo/instagram-data-mcp
- version: 0.1.8
- connection class: R2 (oauth_consent_once)
- trust: 96/100
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.FastSocialCo%2Finstagram-data-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.FastSocialCo%2Finstagram-data-mcp/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "instagram-data-mcp": {
      "type": "http",
      "url": "https://data.fastsocial.co/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`.

## Trust

- hygiene: 100
- liveness: 98
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-95% +updated-8d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 83 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- warn `auth.cimd`: only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 27 of 27 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: instagram_profile (destructiveHint, idempotentHint); instagram_user_id (destructiveHint, idempotentHint); instagram_username (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 3,214 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: 100 (weight 15)

- pass `deps.known_vulns`: no known advisory in 32 resolved packages
- pass `deps.mcp_sdk_version`: mcp 2.3.0, no known advisory
- pass `deps.resolvable`: instagram-data-mcp@0.1.7 resolved: 32 packages

- tools: 27, about 3,214 tokens to load them all
- tool set hash: 78d5bf307cb8d6b5f2619820bd9adce4
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.FastSocialCo/instagram-data-mcp.svg)](https://protogrid.dev/servers/io.github.FastSocialCo/instagram-data-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Dependencies

- pypi instagram-data-mcp@0.1.7: resolved, 31 dependencies, MCP SDK mcp 2.3.0

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://data.fastsocial.co/mcp (streamable-http, auth oauth2, reachable true, uptime30d 0.954023)

## Packages

- pypi instagram-data-mcp@0.1.7 secrets: IG_DATA_API_KEY

## Tools (27)

- `instagram_audio`: Get an Instagram audio track and the reels using it. Title, artist, duration and a preview URL for an original sound or song, plus reels that use it. Audio ids come from reels.

Cost: 1 credit.
- `instagram_audio_search`: Search Instagram music and sounds. Find songs and sounds by title or artist, with ids you can pass to /v1/audio.

Cost: 3 credits.
- `instagram_check`: Check if an Instagram handle exists and is public. Does this handle exist, and is it public? States: ok, not_found, private, deactivated, memorialized, age_restricted, restricted_minor. Exact match only, so a typo never resolves to someone else.

Cost: 1 credit.
- `instagram_comment_replies`: Get replies to an Instagram comment. Replies under one comment. Page with cursor.

Cost: 3 credits.
- `instagram_comments`: Get comments on an Instagram post. The top comments on a post with author, text, time, likes and reply count, plus the total comment count.

Cost: 3 credits.
- `instagram_followers`: Get an account's followers. Public follower list of a public account, with the total follower count. Page with cursor where available.

Cost: 3 credits.
- `instagram_following`: Get accounts an account follows. Who a public account follows, with the total. Page with cursor.

Cost: 3 credits.
- `instagram_hashtag`: Get posts for an Instagram hashtag. Recent posts under a hashtag and its total post count. Page with cursor.

Cost: 1 credit.
- `instagram_highlight`: Get the items in one highlight. Every photo and video inside one highlight, with signed CDN URLs.

Cost: 3 credits.
- `instagram_highlights`: Get Instagram story highlights. Title, cover image and item count for each highlight. Pass an id to /v1/highlight for its items.

Cost: 3 credits.
- `instagram_insights`: Instagram engagement rate calculator. Engagement rate (mean and median), posting cadence, format mix, best posting hours (UTC) and a percentile against the Instagram Benchmarks report, from the latest 12 posts. Pinned posts are excluded.

Cost: 2 credits.
- `instagram_likers`: Get accounts that liked an Instagram post. A sample of accounts that liked a post, plus the total like count.

Cost: 3 credits.
- `instagram_media`: Download URLs for a post, reel or carousel. Direct image and video file URLs for every slide of a post, in the best quality available. URLs are signed Instagram CDN links that expire after a few hours.

Cost: 1 credit.
- `instagram_place`: Get an Instagram location. Name, category, address, city, phone, website and post count of a location page. Find ids with /v1/search.

Cost: 3 credits.
- `instagram_place_posts`: Get posts tagged at an Instagram location. Recent posts geotagged at a location. Page with cursor.

Cost: 1 credit.
- `instagram_post`: Get one Instagram post or reel. Likes, comments, views, caption, owner and media URLs for a single post, reel or IGTV video.

Cost: 1 credit.
- `instagram_posts`: Get recent Instagram posts. 12 posts per page, newest first, with likes, comments, views, caption and media URLs. Page with cursor.

Cost: 1 credit.
- `instagram_profile`: Get an Instagram profile. Follower, following and post counts, bio, links, category, verification and the HD profile picture of any public account.

Cost: 1 credit.
- `instagram_reels`: Get an account's Instagram reels. The reels tab of a public account: play counts, likes, comments, captions and video URLs. Page with cursor.

Cost: 1 credit.
- `instagram_reels_search`: Search Instagram reels by keyword. Reels matching a keyword. Page with cursor.

Cost: 3 credits.
- `instagram_search`: Search Instagram accounts, hashtags and places. One search box, three result types: matching accounts, hashtags (with post counts) and places (with location ids).

Cost: 1 credit.
- `instagram_similar`: Find similar Instagram accounts. Accounts Instagram considers related to this one. Handy for competitor research and influencer discovery.

Cost: 1 credit.
- `instagram_stories`: View Instagram stories anonymously. Stories posted in the last 24 hours by a public account, with image and video URLs. Signed CDN links that expire after a few hours.

Cost: 3 credits.
- `instagram_tagged`: Get posts an account is tagged in. Public posts by other accounts that tag this account. Useful for UGC, brand mentions and influencer tracking.

Cost: 1 credit.
- `instagram_usage`: Your usage this month. Free (0 credits).
- `instagram_user_id`: Instagram username to user id. The numeric user id for a handle. Every endpoint also accepts either one directly, so you rarely need this.

Cost: 1 credit.
- `instagram_username`: Instagram user id to username. The current handle for a numeric user id, which still works after the account renames itself.

Cost: 3 credits.
