Instagram MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IG_USER_ID | Yes | Your numeric Instagram user ID | |
| META_ACCESS_TOKEN | Yes | Your Instagram access token from Meta (IGAA... token) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_account_infoA | Fetch basic info about the connected Instagram Business account. Use this first to verify the token and IG user ID are valid. Returns username, follower count, media count, and account type. |
| list_recent_mediaA | List recent posts/reels from the account. Returns id, caption, media_type, permalink, timestamp, like_count, comments_count. Use the returned IDs with get_media_insights or get_comments. |
| get_media_insightsA | Get performance metrics for a single post/reel. Returns reach, impressions, saved, video_views (if video), and engagement. Different media types return different metrics — reels have plays, photos don't. |
| get_account_insightsA | Get account-level insights (reach, impressions, profile views, follower growth). Use 'day' for last 24h, 'week' for 7 days, 'days_28' for monthly trends. Useful for content strategy decisions. |
| update_profileA | Update your Instagram Business profile bio and/or website URL. THIS IS A WRITE OPERATION. At least one of biography or website must be provided. Changes are live immediately on your public profile. Required permission: instagram_business_manage_profile (Add this in your Meta app → Use cases → Permissions and features if missing.) |
| publish_photoA | Publish a single photo to the Instagram feed. THIS IS A WRITE OPERATION. The image URL must be publicly accessible — Instagram fetches it from your URL. Local file paths won't work; upload to S3/Cloudinary/imgur first. Returns the published post ID and permalink. |
| publish_reelA | Publish a Reel to Instagram. THIS IS A WRITE OPERATION. Video URL must be publicly accessible. Reel processing takes 30-60s on Instagram's side — this tool waits. Returns post ID and permalink. |
| publish_carouselA | Publish a carousel (multi-image) post. Accepts 2-10 images. THIS IS A WRITE OPERATION. Each image must be publicly accessible. Creates a child container per image, then a carousel container, then publishes. Slow — expect 30-60s. |
| get_commentsA | List comments on a post. Returns id, text, username, timestamp, like_count, and replies (if any). Use the comment IDs with reply_to_comment, hide_comment, or delete_comment. |
| reply_to_commentA | Reply to a comment on a post. THIS IS A WRITE OPERATION. The reply will be threaded under the original comment and publicly visible. Returns the reply's comment ID. |
| hide_commentA | Hide or unhide a comment. Hidden comments are invisible to others but not deleted. THIS IS A WRITE OPERATION. Useful for spam/troll comments you'd rather not fully delete. |
| delete_commentA | Permanently delete a comment. THIS IS A WRITE/DESTRUCTIVE OPERATION. Cannot be undone. Prefer hide_comment unless the comment is clearly spam, abuse, or violating your community standards. |
| list_conversationsA | List recent DM conversations on the Instagram account. Returns conversation IDs and participants. Use conversation IDs with get_messages. Only conversations from the last ~24h messaging window will be actionable for sending. |
| get_messagesA | Read messages from a DM conversation. Returns message id, text content, sender, and timestamp. Use the sender's IGSID with send_dm to reply. |
| send_dmA | Send a DM reply to a user. THIS IS A WRITE OPERATION. IMPORTANT: Instagram enforces a 24-hour messaging window — you can only DM users who have messaged you within the last 24 hours, unless using a message tag (not supported in this tool). Cold DMs will fail and may trigger rate limits. |
| like_mediaA | Like a post or reel on your account. THIS IS A WRITE OPERATION. Requires instagram_manage_engagement permission. |
| unlike_mediaA | Unlike a post or reel. THIS IS A WRITE OPERATION. Requires instagram_manage_engagement permission. |
| like_commentA | Like a comment on a post. THIS IS A WRITE OPERATION. Requires instagram_manage_engagement permission. |
| delete_postA | Permanently delete a post, reel, or carousel from your account. THIS IS A WRITE/DESTRUCTIVE OPERATION. Cannot be undone. Double-check the media_id with list_recent_media before deleting. Requires instagram_manage_contents permission. |
| search_hashtagA | Search public Instagram posts by hashtag. Returns post IDs, captions, media type, and permalink. Useful for content research, competitor analysis, and finding trending topics in your niche. Requires Instagram Public Content Access permission. Note: Instagram limits hashtag searches to 30 unique hashtags per 7 days per account. |
| list_eventsA | List upcoming events on your Instagram account. Requires instagram_manage_upcoming_events permission. Useful for hospital open days, health camps, webinars, AI workshops. |
| create_eventA | Create an upcoming event on your Instagram profile. THIS IS A WRITE OPERATION. Requires instagram_manage_upcoming_events permission. Great for hospital health camps, free checkup days, AI workshops, webinars. |
| get_ad_accountsA | List all ad accounts linked to your Meta account. Returns account IDs and names. Use the account ID with create_ad. Requires ads_management permission. |
| get_ad_insightsB | Get performance insights for your Instagram/Facebook ads. Returns spend, impressions, reach, clicks, CPM, CTR. Requires ads_read permission. |
| send_human_agent_dmA | Send a DM reply within the 7-day Human Agent window (not just 24h). THIS IS A WRITE OPERATION. Unlike send_dm (24h window), Human Agent tag allows responding up to 7 days after the user's last message. Use for thoughtful replies to patient queries, appointment questions, or follow-ups. Requires Human Agent feature enabled in your Meta app. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/drashrafsaiyed-cyber/instagram-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server