The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Instagram MCP listing page.
Control your Instagram from Claude — post, analyze, reply to DMs, manage comments. All by chatting.
🎬 Demo GIF coming soon — Claude posting a reel, reading insights, replying to comments live on screen.
Ask Claude in plain English. It handles the API.
| Category | Tool | What it does |
|---|---|---|
| Account | get_account_info | Followers, bio, post count |
update_profile | Update bio text and/or website URL | |
list_recent_media | Last N posts with engagement stats | |
get_account_insights | Reach, profile views, follower growth | |
| Insights | get_media_insights | Per-post reach, saves, views, interactions |
| Publishing | publish_photo | Post a photo with caption + hashtags |
publish_reel | Post a Reel (video) | |
publish_carousel | Post 2–10 images as carousel | |
| Comments | get_comments | Read all comments on a post |
reply_to_comment | Reply to a comment | |
hide_comment | Hide spam/unwanted comments | |
delete_comment | Permanently delete a comment | |
| Engagement | like_media | Like a post or reel |
unlike_media | Unlike a post or reel | |
like_comment | Like a comment | |
| Content | delete_post | Permanently delete a post |
| Hashtags | search_hashtag | Search public posts by hashtag |
| Events | list_events | List upcoming events |
create_event | Create a new event (health camps, workshops) | |
| Ads | get_ad_accounts | List linked ad accounts |
get_ad_insights | Get ad spend, reach, CTR | |
| DMs | list_conversations | List active DM threads |
get_messages | Read messages in a thread | |
send_dm | Reply to a DM (24h window) | |
send_human_agent_dm | Reply within 7-day Human Agent window |
1. Deploy your server (free, 2 min):
Fill in META_ACCESS_TOKEN and IG_USER_ID when prompted. (How to get these ↓)
2. Connect to Claude web:
https://your-app-name.onrender.com/mcp3. Done. Open a new chat and try: "Show my recent Instagram posts"
Add to claude_desktop_config.json:
Run the same server folder multiple times with different env vars. Claude sees each as a separate named MCP and never confuses them.
Claude will show separate tools per account — "Post this to My Business" picks the right one automatically.
Each account must be a Business or Creator Instagram account, and must be added as a tester in your Meta app → Use cases → Step 2: Generate access tokens → Add account.
This server uses the Instagram Login API (graph.instagram.com) — the modern Meta approach for Instagram Business/Creator accounts.
Step 1 — Create or open your Meta app
Step 2 — Generate your access token
META_ACCESS_TOKENStep 3 — Refresh before expiry (60 days)
Or just run this in your project folder:
Publishing note: Images and videos must be at a public HTTPS URL — Instagram fetches from your URL. Use Cloudinary (free), S3, or a public GitHub raw URL. Local file paths won't work.
Why graph.instagram.com and not graph.facebook.com?
This server uses the newer Instagram Login API which issues IGAA... tokens and routes through graph.instagram.com. The older Facebook Graph API approach required a linked Facebook Page and EAA... tokens. The new flow is simpler — just your Instagram account, no Facebook Page needed.
| Error | Fix |
|---|---|
Cannot parse access token | Token expired or wrong type. Regenerate via the steps above. |
code 100 on insights | Invalid metric name. Metrics differ between account vs media endpoints. |
code 190 | Token expired. Run the refresh command. |
| Container processing failed | Video too long (>90s), wrong codec, or URL returns 404 after first fetch. |
| Empty DM list | No active 24h messaging window. Someone needs to DM you first. |
| Claude doesn't see tools | Restart Claude Desktop fully (tray icon → Quit). Check logs at %APPDATA%\Claude\logs\. |
PRs welcome. If you add a new tool or fix a metric name mismatch, please:
MIT — free to use, fork, and deploy commercially.
Built with FastMCP · Powered by Instagram Graph API