Instagram MCP Server for Claude, ChatGPT, Cursor and Codex avatar

Instagram MCP Server for Claude, ChatGPT, Cursor and Codex

Pricing

from $20.00 / 1,000 tool calls

Go to Apify Store
Instagram MCP Server for Claude, ChatGPT, Cursor and Codex

Instagram MCP Server for Claude, ChatGPT, Cursor and Codex

Instagram MCP server for AI agents. Four tools over MCP Streamable HTTP: profile, recent posts, live stories and highlight albums for public accounts. Works with Claude Desktop, Cursor, ChatGPT, Codex and any MCP client. No Instagram login. Pay per tool call.

Pricing

from $20.00 / 1,000 tool calls

Rating

0.0

(0)

Developer

Goutam Soni

Goutam Soni

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 minutes ago

Last modified

Share

Give your AI agent live Instagram data. This is a native Model Context Protocol (MCP) server: connect it once and your assistant can look up any public Instagram account, read its recent posts, see what stories are live right now, and open its highlight albums, all in the middle of a conversation.

No Instagram login. No API key of your own. No cookies to paste. You pay per tool call, and only when a call actually returns data.

What it does

Five tools, over MCP Streamable HTTP:

ToolWhat it returns
instagram_profileFull name, biography, follower and following counts, post count, verified and business flags, external links, profile picture
instagram_postsRecent posts, newest first: caption, likes, comments, media type, media URLs, dimensions, timestamp, permalink
instagram_storiesStories the account has live right now, with media URLs, type, dimensions, posted time and expiry
instagram_highlightsThe highlight albums on a profile: id, title, cover image, item count
instagram_highlight_itemsThe individual stories inside one highlight album

Every tool accepts a plain username, an @handle or a profile URL, so you can paste whatever you have.

Connect it

The server runs in Standby mode, so there is nothing to start. Point your MCP client at the server URL and authenticate with your Apify API token.

{
"mcpServers": {
"instagram": {
"url": "https://goat255--instagram-mcp-server.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_API_TOKEN"
}
}
}
}

Works with Claude Desktop, Claude Code, Cursor, ChatGPT, OpenAI Codex, the Agents SDK, Windsurf, and any other client that speaks MCP.

Example input

Tool calls come from your assistant, so you write them in plain language:

"What is @example_user's follower count, and what have they posted this week?"

Under the hood that is:

{
"name": "instagram_posts",
"arguments": {
"username": "example_user",
"limit": 12
}
}

limit accepts 1 to 50. Asking for more than about a dozen posts reads several pages, so the call takes a little longer. Every reply carries complete: if it is false, the call stopped early to stay responsive and the account has more posts than came back.

Output sample

instagram_profile:

{
"username": "nasa",
"id": "528817151",
"fullName": "NASA",
"followerCount": 104340863,
"followingCount": 91,
"mediaCount": 4931,
"isVerified": true,
"isPrivate": false,
"isBusiness": true,
"externalUrl": "https://www.nasa.gov"
}

instagram_posts:

{
"username": "nasa",
"requested": 12,
"postCount": 12,
"complete": true,
"posts": [
{
"username": "nasa",
"id": "3983374110243288826",
"shortcode": "DdHyaYAifb6",
"mediaType": "carousel",
"timestamp": "1789075224",
"caption": "Cementing their names in history.",
"displayUrl": "https://scontent.cdninstagram.com/v/...",
"dimensions": { "height": 1800, "width": 1440 },
"likeCount": 111791,
"commentCount": 486,
"url": "https://www.instagram.com/p/DdHyaYAifb6/"
}
]
}

instagram_highlights, then instagram_highlight_items with one of those ids:

{
"username": "nasa",
"userId": "528817151",
"highlightCount": 5,
"highlights": [
{
"highlightId": "highlight:18195781759377100",
"title": "Artemis",
"mediaCount": 9,
"coverImageUrl": "https://scontent.cdninstagram.com/v/..."
}
]
}

Notes

  • Public accounts only. A private account returns a private_account error rather than partial data. A handle that does not exist returns not_found.
  • Stories are live. They expire 24 hours after posting, so an empty list means the account has nothing up at the moment, not that the call failed.
  • You are charged per successful tool call. A call that fails, hits a private account or names a handle that does not exist is not charged.
  • Highlights are two steps on purpose. Listing the albums is quick; expanding one album into its stories is a second call. That keeps every call fast enough for an assistant to wait on, and you only pay to open the album you actually want.
  • Pressing Start on this page does not scrape anything. It prints the connection details and finishes, because the tools are served in Standby mode.