Labsco
AleemHaider logo

instagram-mcp

โ˜… 5

from AleemHaider

Instagram Graph API server for Business/Creator accounts โ€” 24 tools for posting, comments, DMs, and insights.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredNeeds API keys

instagram-mcp

A Model Context Protocol server that wraps the Instagram Graph API so Claude (or any MCP client) can read, publish, comment, DM, and pull insights from an Instagram Business or Creator account.

24 tools across five capability areas โ€” profile/media, publishing, comments, DMs, and insights โ€” built on FastMCP + httpx.

Connect to Claude Desktop

Edit ~/.config/Claude/claude_desktop_config.json (Linux) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

Copy & paste โ€” that's it
{
 "mcpServers": {
 "instagram": {
 "command": "instagram-mcp",
 "env": {
 "IG_USER_ID": "17841446575432302",
 "IG_ACCESS_TOKEN": "EAAxxxxxxxxxxxxxxxxxxx"
 }
 }
 }
}

Restart Claude Desktop. You should see 24 tools under the instagram server.

Available tools

Profile & media

Tool What it does get_my_profile Profile info: bio, followers, media count, etc. list_my_media One page of recent posts list_all_media Auto-paginate through all media get_media Fetch a single media item list_tagged_media Posts the account is tagged in list_stories Currently-live stories (24h window)

Hashtags

Tool What it does search_hashtag Resolve a #tag to its ID hashtag_top_media Top-ranked posts for a hashtag hashtag_recent_media Recent posts for a hashtag (24h window)

Publishing

Tool What it does publish_image Single image post from a public URL publish_reel Reel (waits for container processing) publish_story Image or video story publish_carousel 2-10 item carousel get_publish_limit Show 24h publish quota usage

Comments

Tool What it does list_comments Top-level comments + nested replies get_comment_replies Replies under a specific comment reply_to_comment Post a reply hide_comment Hide / unhide delete_comment Delete a comment you own

Direct messages

Tool What it does list_conversations DM conversations get_conversation Messages in a conversation send_dm Send a DM (optionally with a message_tag)

Insights

Tool What it does get_account_insights Account-level metrics with optional metric_type get_media_insights Per-media insights

Notes & gotchas

  • Publishing requires public HTTPS URLs. Meta fetches media server-side. Host your images/videos on a publicly accessible URL first.

  • Publish quota is 100 posts per 24h rolling window on most Business accounts.

  • send_dm is response-only by default โ€” it only works inside the 24h user-initiated window. Pass a message_tag (e.g. HUMAN_AGENT) to send outside that window. Tags require Meta approval.

  • Some insight metrics need metric_type='total_value' (Meta tightened this in 2024): views, accounts_engaged, total_interactions, profile_views, likes, comments, shares, saves. reach and follower_count don't.

  • Errors return a structured dict, not exceptions. Look for error: true along with status, message, code, subcode, and fbtrace_id in the response โ€” that's the Graph API error, not a Python traceback.

Development

Copy & paste โ€” that's it
git clone https://github.com/AleemHaider/instagram-mcp
cd instagram-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

License

MIT โ€” see LICENSE.