mcpware avatar

Instagram Mcp

mcpware/instagram-mcp

This server wraps Instagram's Graph API with 23 tools covering the full spectrum of business account operations. You get profile data, media publishing, post insights, and conversation management through stdio transport. The interesting part is DM functionality, which requires Meta's Advanced Access approval but gives you read and reply capabilities once cleared. Standard access covers publishing images and videos, pulling engagement metrics, and analyzing hashtag performance. It's built for Python 3.10+ and expects long-lived access tokens with the usual Facebook app setup. Reach for this when you need an AI assistant to manage Instagram content calendars, respond to customer DMs, or generate analytics reports without building Graph API integration from scratch.

GitHub stars
12
tools
16
auth
Secret needed
transport
STDIO
env vars
3
last updated
Mar 19, 2026

Tools

16 tools

Public tool metadata for what this MCP can expose to an agent.

INSTAGRAM_CREATE_CAROUSEL_CONTAINERCreate a draft carousel post with multiple images/videos before publishing.8 params

Create a draft carousel post with multiple images/videos before publishing.

Parameters* required
captionstring
child_image_filesarray
List of local image files to include as children
child_image_urlsarray
List of image URLs to include as children
child_video_filesarray
List of local video files to include as children
child_video_urlsarray
List of video URLs to include as children
childrenarray
List of child creation_ids (image/video items)
graph_api_versionstring
default: v21.0
ig_user_idstring
Instagram Business Account ID
INSTAGRAM_CREATE_MEDIA_CONTAINERCreate a draft media container for photos/videos/reels before publishing.11 params

Create a draft media container for photos/videos/reels before publishing.

Parameters* required
captionstring
Post caption
content_typestring
What you want to post: 'photo', 'video', 'reel', or 'carousel_item' (for carousel drafts)one of photo · video · reel · carousel_item
cover_urlstring
Optional cover image URL for reels/videos
graph_api_versionstring
default: v21.0
ig_user_idstring
Instagram Business Account ID
image_filestring
Local image file to upload. File will be uploaded to a public URL automatically. Use this instead of image_url for local files.
image_urlstring
Public URL of the image. Must be a directly downloadable URL (no redirects) accessible to Meta crawlers. Supported formats: JPG, PNG (WebP not supported). Must pass correct Content-Type header, Con...
is_carousel_itemboolean
media_typestring
Explicit media type override, e.g., REELS or CAROUSEL.
video_filestring
Local video file to upload. File will be uploaded to a public URL automatically. Use this instead of video_url for local files.
video_urlstring
Public URL of the video. Must be a directly downloadable URL (no redirects) accessible to Meta crawlers. Supported formats: MP4, MOV. Must pass correct Content-Type header, Content-Length header, m...
INSTAGRAM_CREATE_POSTPublish a draft media container to Instagram (final publishing step).3 params

Publish a draft media container to Instagram (final publishing step).

Parameters* required
creation_idstring
Draft ID returned from create actions
graph_api_versionstring
default: v21.0
ig_user_idstring
Instagram Business Account ID
INSTAGRAM_GET_CONVERSATIONGet details about a specific Instagram DM conversation (participants, etc).2 params

Get details about a specific Instagram DM conversation (participants, etc).

Parameters* required
conversation_idstring
Conversation ID
graph_api_versionstring
default: v21.0
INSTAGRAM_GET_POST_COMMENTSGet comments on an Instagram post.4 params

Get comments on an Instagram post.

Parameters* required
afterstring
Cursor for pagination - get comments after this cursor
graph_api_versionstring
default: v21.0
ig_post_idstring
Instagram Post ID
limitinteger
Number of comments to return (max 100)default: 25
INSTAGRAM_GET_POST_INSIGHTSGet Instagram post insights/analytics (impressions, reach, engagement, etc.).4 params

Get Instagram post insights/analytics (impressions, reach, engagement, etc.).

Parameters* required
graph_api_versionstring
default: v21.0
ig_post_idstring
Instagram Post ID
metricarray
Metrics to retrieve for the media. If not provided and metric_preset is not set, uses auto_safe preset. Allowed metrics vary by media_product_type: IMAGE/CAROUSEL: impressions, reach, likes, commen...
metric_presetstring
Predefined metric sets for different media types to avoid API errors.one of auto_safe · image_basic · video_basic · reel_basic · carousel_basicdefault: auto_safe
INSTAGRAM_GET_POST_STATUSCheck the processing status of a draft post container.2 params

Check the processing status of a draft post container.

Parameters* required
creation_idstring
Post container creation id
graph_api_versionstring
default: v21.0
INSTAGRAM_GET_USER_INFOGet Instagram user info including profile details and statistics.2 params

Get Instagram user info including profile details and statistics.

Parameters* required
graph_api_versionstring
default: v21.0
ig_user_idstring
Instagram Business Account ID (optional, defaults to current user)
INSTAGRAM_GET_USER_INSIGHTSGet Instagram account-level insights and analytics (profile views, reach, follower count, etc.). metric_type (time_series or total_value): When set to total_value, the API returns a total_value object instead of values. breakdown: Only applicable when metric_type=total_value a...9 params

Get Instagram account-level insights and analytics (profile views, reach, follower count, etc.). metric_type (time_series or total_value): When set to total_value, the API returns a total_value object instead of values. breakdown: Only applicable when metric_type=total_value a...

Parameters* required
breakdownstring
Breakdown to use when metric_type=total_value. Allowed values: contact_button_type, follow_type, media_product_type.
graph_api_versionstring
default: v21.0
ig_user_idstring
Instagram Business Account ID (optional, defaults to current user)
metricarray
Metrics to retrieve for the user account. Allowed values: reach, follower_count, profile_views, website_clicks, accounts_engaged, total_interactions, get_directions_clicks, text_message_clicks, eng...
metric_typestring
Aggregation type for results. Allowed values: time_series, total_value.
periodstring
Aggregation period for insights. Allowed values: day, week, days_28, lifetime. Allowed values depend on metric.default: day
sinceinteger
Start of time range (inclusive) as a Unix timestamp (seconds). Accepts date strings (YYYY-MM-DD) which will be converted to timestamps.
timeframestring
Timeframe for demographics-related metrics; overrides since/until for those metrics. Common values: last_14_days, last_30_days, last_90_days, prev_month, this_month, this_week.
untilinteger
End of time range (inclusive) as a Unix timestamp (seconds). Accepts date strings (YYYY-MM-DD) which will be converted to timestamps.
INSTAGRAM_GET_USER_MEDIAGet Instagram user's media (posts, photos, videos).4 params

Get Instagram user's media (posts, photos, videos).

Parameters* required
afterstring
Cursor for pagination - get media after this cursor
graph_api_versionstring
default: v21.0
ig_user_idstring
Instagram Business Account ID (optional, defaults to current user)
limitinteger
Number of media items to return (max 100)default: 25
INSTAGRAM_LIST_ALL_CONVERSATIONSList all Instagram DM conversations for the authenticated user.4 params

List all Instagram DM conversations for the authenticated user.

Parameters* required
afterstring
Cursor for pagination
graph_api_versionstring
default: v21.0
ig_user_idstring
Instagram Business Account ID (optional for /me/conversations)
limitinteger
default: 25
INSTAGRAM_LIST_ALL_MESSAGESList all messages from a specific Instagram DM conversation.4 params

List all messages from a specific Instagram DM conversation.

Parameters* required
afterstring
Cursor for pagination
conversation_idstring
Conversation ID
graph_api_versionstring
default: v21.0
limitinteger
default: 25
INSTAGRAM_MARK_SEENMark Instagram DM messages as read/seen for a specific user.2 params

Mark Instagram DM messages as read/seen for a specific user.

Parameters* required
graph_api_versionstring
default: v21.0
recipient_idstring
Recipient PSID
INSTAGRAM_REPLY_TO_COMMENTReply to a comment on Instagram media.3 params

Reply to a comment on Instagram media.

Parameters* required
graph_api_versionstring
default: v21.0
ig_comment_idstring
Instagram Comment ID to reply to
messagestring
Reply message text
INSTAGRAM_SEND_IMAGESend an image via Instagram DM to a specific user.4 params

Send an image via Instagram DM to a specific user.

Parameters* required
captionstring
graph_api_versionstring
default: v21.0
image_urlstring
Publicly accessible image URL
recipient_idstring
Recipient PSID
INSTAGRAM_SEND_TEXT_MESSAGESend a text message to an Instagram user via DM.5 params

Send a text message to an Instagram user via DM.

Parameters* required
graph_api_versionstring
Instagram Graph API versiondefault: v21.0
ig_user_idstring
Instagram Business Account ID (optional when using /me/messages)
recipient_idstring
Recipient PSID (Instagram-scoped ID)
reply_to_message_idstring
Optional message ID to reply to
textstring
Message text to send

Sponsors

Configuration

INSTAGRAM_ACCESS_TOKEN*secret

Meta long-lived access token for Instagram Graph API

INSTAGRAM_ACCOUNT_ID*

Instagram business account ID

INSTAGRAM_API_VERSION

Instagram Graph API version (default: v19.0)

Readme

Verified on MseeP

MSeeP.ai Security Assessment Badge

@mcpware/instagram-mcp

npm version npm downloads license GitHub stars GitHub forks

A Model Context Protocol (MCP) server that provides seamless integration with Instagram's Graph API, enabling AI applications to interact with Instagram Business accounts programmatically.

Features


View the full README on GitHub

Details

Repository
github.com/mcpware/instagram-mcp
Categories
Monitoring & Observability, Media & Entertainment
Package
@mcpware/instagram-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active

More from mcpware

Related Monitoring & Observability MCP servers

View all
1carloshpdoc avatarMemorydetectivecarloshpdoc/memorydetectiveiOS leak/perf debugging via MCP: memgraph cycles, .trace analysis, SourceKit-LSP bridging.11stars
2j4th avatarMTG MCP Serverj4th/mtg-mcp-serverMagic: The Gathering card search, combo lookup, draft analytics, and Commander tools.11stars
3finstacklabs avatarFinStack MCPfinstacklabs/finstack-mcpIndia-first MCP server for NSE/BSE, fundamentals, analytics, and market research workflows.9stars
4sarahpark avatarGoogle Search Consolesarahpark/google-search-console-mcpGoogle Search Console MCP server — search analytics, URL inspection, and sitemaps9stars
5dmarcoff avatarDMARKOFF — DMARC, SPF & DKIM Analyticsdmarcoff/mcpDMARC analytics for AI assistants: SPF/DKIM, compliance, anomalies, p=reject readiness, onboarding.0stars
6mikusnuz avatarGscmikusnuz/gsc-mcpMCP server for Google Search Console & Indexing API — search analytics, sitemaps, URL inspection8stars