
Instagram MCP server
Official, multi-account Instagram Graph API MCP: read, publish, analytics, comments, DMs.
5 stars67 downloads/wk
Reviews
Write oneNobody has reviewed Instagram yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Instagram tools (29, 8 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
account_infoLive profile snapshot for one account: username, name, followers, media count, etc.
add_accountStore an Instagram Business/Creator account for use by every tool.
business_discoveryPublic profile + (optionally) recent media for ANY business/creator account by username.
delete_commentwrite actionPermanently delete a comment you own (or a comment on your media). Irreversible.
get_account_insightsAccount-level analytics (reach, impressions, profile views, follower count).
get_audience_insightsFollower demographics (age, gender, country, city).
get_commentsList comments on a media object (text, username, timestamp, like_count, hidden).
get_hashtag_mediaRecent or top media for a hashtag id. edge=top_media|recent_media. limit 1-100.
get_mediaReturn full fields for one media object by id (caption, type, permalink, like/comment counts).
get_media_insightsPer-post analytics (reach, saves, likes, comments, shares, total interactions).
get_mentionsList recent media where the account is @-mentioned (tags edge).
get_messagesRead messages in a DM conversation. REQUIRES Meta App Review (instagram_manage_messages).
get_profileReturn the account's public profile fields (followers, follows, media count, bio, website).
healthcheckVerify the MCP is configured + ready: accounts present, token backend, Graph reachability.
hide_commentHide (or unhide) a comment from public view. hide=false unhides.
list_accountsList configured Instagram accounts (labels + ig_user_id + default flag). Never returns tokens.
list_conversationsList Instagram DM conversations. REQUIRES Meta App Review (instagram_manage_messages).
list_mediaList recent media (posts/reels) for the account, newest first. limit 1-100 (default 25).
publish_carouselwrite actionPublish a multi-image carousel (2-10 images). Each image_url must be a PUBLIC https URL.
publish_imagewrite actionPublish a single image to the feed.
publish_reelwrite actionPublish a Reel. video_url must be a PUBLIC https URL.
publish_storywrite actionPublish a Story (image OR video). Exactly one of image_url / video_url, PUBLIC https.
publish_videowrite actionPublish a video to the feed. video_url must be a PUBLIC https URL.
publishing_limitRemaining posts in the rolling 24h publishing quota (Instagram caps API posts/day).
remove_accountwrite actionRemove a configured account + delete its stored token from the keychain.
reply_to_commentReply to a comment. message <= 2200 chars. Returns the new comment id.
search_hashtagResolve a hashtag name to its Graph id (needed before get_hashtag_media).
send_messagewrite actionSend a DM. REQUIRES Meta App Review + the 24-hour standard-messaging window.
set_default_accountSet which configured account is used when a tool's `account` arg is omitted.
Public scan report
scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it
- Code scan7 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 17 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Instagram compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,273 servers
- Tools
- 29
- the typical server has 7
- Tools that change things
- 28%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 5
- more than 83% of 28,534 servers
- Downloads a week
- 67
- more than 54% of 11,915 servers with a package
What its tools let an agent do: 17 read · 1 create · 1 change · 2 delete · 8 send or post
Install Instagram in Claude Code, Cursor or VS Code
claude mcp add instagram-mcp -- uvx adelaidasofia-instagram-mcp
What the publisher says
From the Instagram repository's README, as published. We do not edit it. Read it on GitHub
instagram-mcp
<!-- mcp-name: io.github.adelaidasofia/instagram-mcp -->
An MCP server for the official Instagram Graph API. Read, publish, comment, and pull analytics across one or many Instagram Business/Creator accounts from Claude (or any MCP client) — ToS-safe, no private/reverse-engineered API.
29 tools across accounts, media, publishing, insights, comments, discovery, and (review-gated) direct messages.
npx-style stdio MCP · Python · FastMCP · MITWhy this one
Most "Instagram automation" tools either (a) wrap the unofficial private API (username + password) — which violates Instagram's Terms and risks a ban — or (b) only post, with no way to read insights, comments, or mentions back. This server is built entirely on the official Graph API, is multi-account from day one, and covers the full read + write surface. The only thing it cannot do without Meta's approval is DMs (see Direct messages).
Requirements
- An Instagram Professional account (Business or Creator). Personal accounts cannot use the Graph API. Converting is free and reversible (Instagram app → Settings → Account type).
- The Instagram account connected to a Facebook Page.
- A long-lived access token with instagrambasic + instagramcontentpublish + instagrammanagecomments + instagrammanageinsights, and the account's numeric Instagram Business Account id**. See SETUP.md for the exact token + id steps.
- Python 3.10+.
Install
From PyPI:
pip install adelaidasofia-instagram-mcpOr from source:
git clone https://github.com/adelaidasofia/instagram-mcp
cd instagram-mcp
python3 -m venv .venv && .venv/bin/pip install -e .Register it with your MCP client (Claude Desktop / Claude Code) — single-account zero-config path:
{
"mcpServers": {
"instagram": {
"command": "instagram-mcp",
"env": {
"INSTAGRAM_MCP_ACCESS_TOKEN": "EAA...your-long-lived-token...",
"INSTAGRAM_MCP_IG_USER_ID": "17841400000000000"
}
}
}
}instagram-mcp is the console script the package installs. From a source checkout it lives at .venv/bin/instagram-mcp, or run the module directly with python -m instagram_mcp.server.
Or skip the env vars and call add_account at runtime (token goes to your OS keychain). See Multiple accounts.
Tools
Accounts & health — healthcheck, listaccounts, addaccount, setdefaultaccount, removeaccount, accountinfo
Profile & media — getprofile, listmedia, get_media
Insights — getaccountinsights (reach, impressions, profile views, follower count), getmediainsights (per-post reach, saves, shares, interactions), getaudienceinsights (follower demographics: age, gender, country, city)
Publishing — publishimage, publishvideo, publishreel, publishcarousel (2–10 images), publishstory, publishinglimit (remaining 24h quota). Video/reel containers process asynchronously; the server polls to completion before publishing.
Comments — getcomments, replytocomment, hidecomment, delete_comment
Discovery — searchhashtag, gethashtagmedia, getmentions, business_discovery (read any public Professional account by username)
Direct messages — listconversations, getmessages, send_message (see below)
Publishing takes public https media URLs — Instagram fetches the bytes itself, so the image/video must be reachable on the open web (an S3/Cloudflare/any-CDN URL works).
Multiple accounts
Run one server for all your accounts (yours, a brand's, a client's). Each account authorizes its own token:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Instagram: common questions
- Is Instagram MCP server safe?
- Mostly: it is graded B (83/100). Read the Instagram safety report
- How do I install Instagram?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Instagram need an API key?
- Yes. The registry entry asks for
INSTAGRAM_MCP_ACCESS_TOKEN. - Is Instagram maintained?
- The last commit was 54 days ago (2026-09-09). The latest release is v0.1.2.
- How does Instagram compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,273 servers); tools 29 (the typical server has 7); tools that change things 28% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.