MCP.Market

Instagram MCP server

by adelaidasofia·io.github.adelaidasofia/instagram-mcp·v0.1.2·5 stars

Official, multi-account Instagram Graph API MCP: read, publish, analytics, comments, DMs.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

5 stars67 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • account_info

    Live profile snapshot for one account: username, name, followers, media count, etc.

  • add_account

    Store an Instagram Business/Creator account for use by every tool.

  • business_discovery

    Public profile + (optionally) recent media for ANY business/creator account by username.

  • delete_commentwrite action

    Permanently delete a comment you own (or a comment on your media). Irreversible.

  • get_account_insights

    Account-level analytics (reach, impressions, profile views, follower count).

  • get_audience_insights

    Follower demographics (age, gender, country, city).

  • get_comments

    List comments on a media object (text, username, timestamp, like_count, hidden).

  • get_hashtag_media

    Recent or top media for a hashtag id. edge=top_media|recent_media. limit 1-100.

  • get_media

    Return full fields for one media object by id (caption, type, permalink, like/comment counts).

  • get_media_insights

    Per-post analytics (reach, saves, likes, comments, shares, total interactions).

  • get_mentions

    List recent media where the account is @-mentioned (tags edge).

  • get_messages

    Read messages in a DM conversation. REQUIRES Meta App Review (instagram_manage_messages).

  • get_profile

    Return the account's public profile fields (followers, follows, media count, bio, website).

  • healthcheck

    Verify the MCP is configured + ready: accounts present, token backend, Graph reachability.

  • hide_comment

    Hide (or unhide) a comment from public view. hide=false unhides.

  • list_accounts

    List configured Instagram accounts (labels + ig_user_id + default flag). Never returns tokens.

  • list_conversations

    List Instagram DM conversations. REQUIRES Meta App Review (instagram_manage_messages).

  • list_media

    List recent media (posts/reels) for the account, newest first. limit 1-100 (default 25).

  • publish_carouselwrite action

    Publish a multi-image carousel (2-10 images). Each image_url must be a PUBLIC https URL.

  • publish_imagewrite action

    Publish a single image to the feed.

  • publish_reelwrite action

    Publish a Reel. video_url must be a PUBLIC https URL.

  • publish_storywrite action

    Publish a Story (image OR video). Exactly one of image_url / video_url, PUBLIC https.

  • publish_videowrite action

    Publish a video to the feed. video_url must be a PUBLIC https URL.

  • publishing_limit

    Remaining posts in the rolling 24h publishing quota (Instagram caps API posts/day).

  • remove_accountwrite action

    Remove a configured account + delete its stored token from the keychain.

  • reply_to_comment

    Reply to a comment. message <= 2200 chars. Returns the new comment id.

  • search_hashtag

    Resolve a hashtag name to its Graph id (needed before get_hashtag_media).

  • send_messagewrite action

    Send a DM. REQUIRES Meta App Review + the 24-hour standard-messaging window.

  • set_default_account

    Set 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

no findings
  • 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
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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 · MIT

Why 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-mcp

Or 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.

More from adelaidasofia →