Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.pratikgh0se/instagram-mcp

MCPB · INSTAGRAM-MCP-1.0.0.MCPB

Instagram MCP for creators: publish, schedule, comments, DMs and insights via Meta's official API.

45 Trust /100

Last scanned (11 hours ago)

Scores higher than 76% of MCPB servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security23
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs were checked across the 92 of 92 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability70
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 4282 tokens (~101/item across 42 items; 42 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage91
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 73% of tool parameters carry a description.Partial
Tool Safety80
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 1 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "instagram_preflight_publish" implies "publish" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 42 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Nov 26 45

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed mcpb/https://github.com/pratikgh0se/instagram-mcp/releases/download/v1.0.0/instagram-mcp-1.0.0.mcpb@1.0.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Dependencies 92 packages
Packages resolved 92
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 42 exposed · ~4,282 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
instagram_approve ~66

Execute a pending approval created by an instagram_preflight_* tool. This is the only tool that changes Instagram. Requires confirm: true. Single-use; repeating it returns the stored outcome without re-executing.

NameTypeReqDescription
approval_idstringyes–
confirmbooleanyes–

No output schema declared.

No examples provided.

instagram_backup_account ~93

Incrementally download all of the account's media into the local downloads directory (skipping items already downloaded) and write insights-latest.json. max_items caps how many recent items are considered (default 500). Per-item failures do not abort the run.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
max_itemsinteger–Maximum media items to consider (default 500).

No output schema declared.

No examples provided.

instagram_best_time_to_post ~86

Best posting slots (UTC) from online_followers when Meta provides it and from your own post history (likes + comments by weekday and hour). States which data was used; missing online_followers is not an error.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
daysinteger–History window in days (default 90).

No output schema declared.

No examples provided.

instagram_cancel_scheduled ~57

Cancel a scheduled publish job that has not started (status "scheduled"). Deletes its staged media copies. Local only; no approval needed. Requires confirm: true.

NameTypeReqDescription
confirmbooleanyes–
job_idstringyes–

No output schema declared.

No examples provided.

instagram_compare_accounts ~84

Compare your account with up to 10 other public business/creator accounts: followers, posting cadence, average likes/comments and format mix over a recent sample. Facebook login path only.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
media_limitinteger–Posts sampled per account (default 25).
usernamesarrayyes–

No output schema declared.

No examples provided.

instagram_download_media ~112

Save one of your media items (and carousel children, video thumbnails) to the local downloads directory with a JSON sidecar. Only Instagram CDN hosts are fetched, no credentials are sent, and existing files are skipped. Writes local files only.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
include_childrenboolean–Download carousel children (default true).
include_thumbnailboolean–Download video thumbnails (default true).
media_idstringyesInstagram media id.

No output schema declared.

No examples provided.

instagram_get_account_insights ~219

Account-level insights (reach, views, accounts_engaged, total_interactions, likes, comments, shares, saves, follows_and_unfollows, profile_links_taps, demographics, ...). Validates metrics against the current Meta list and rejects deprecated names (impressions, plays, profile_views ...) naming the replacement ("views"). All metrics in one call must share one period.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
breakdownstring–Breakdown dimension; required for the demographics metrics.
metric_typestring–Default total_value (time_series for follower_count).
metricsarray–Metric names (default reach, views, accounts_engaged, total_interactions).
periodstring–Derived from the metrics; an explicit value must agree.
sincestring–ISO 8601 or YYYY-MM-DD.
timeframestring–Demographics metrics only (default this_month).
untilstring–ISO 8601 or YYYY-MM-DD.

No output schema declared.

No examples provided.

instagram_get_audience ~117

Follower and engaged-audience demographics (age, gender, city, country) plus online followers by hour when Meta provides them. Engaged and online sections are best-effort: failures are listed in "unavailable", never fatal.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
breakdownsarray–Default all four.
include_engagedboolean–Default true.
include_online_followersboolean–Default true.
timeframestring–Default this_month.

No output schema declared.

No examples provided.

instagram_get_comment ~47

One comment with its parent id, media id and replies.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
comment_idstringyescomment_id

No output schema declared.

No examples provided.

instagram_get_conversation ~90

Messages of one conversation (newest first, max 20) with participants and the 24 h window state. `senders` is api, webhooks or unavailable (Meta withheld sender fields).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
conversation_idstringyesconversation_id
limitinteger–Default 20, max 20.

No output schema declared.

No examples provided.

instagram_get_growth ~106

Growth time series from locally stored snapshots (followers, media count, reach, views, engagement) with deltas between consecutive snapshots. Makes no Instagram request.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
daysinteger–Window in days (default 30).
sincestring–ISO 8601 or YYYY-MM-DD; overrides days.
untilstring–ISO 8601 or YYYY-MM-DD; overrides days.

No output schema declared.

No examples provided.

instagram_get_hashtag_media ~104

Top or recent public media for a hashtag id from instagram_search_hashtag. Does not use the hashtag search budget. Facebook login path only.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
hashtag_idstringyes–
limitinteger–Page size (max 100).
typestring–top (default) or recent.

No output schema declared.

No examples provided.

instagram_get_inbox ~159

Unified triage feed: recent top-level comments on your latest media, tags, and stored webhook events, with unanswered (no reply from you) and handled flags. Window = since or last `days` days. Offset-paginated over the merged list.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
daysinteger–Window in days (default 7).
include_handledboolean––
limitinteger–Page size (default 25, max 100).
sincestring–ISO 8601 start of the window; overrides days.
unanswered_onlyboolean––

No output schema declared.

No examples provided.

instagram_get_media ~74

Details of one media item: caption, type, permalink, counts, URLs, shortcode, alt text, username and carousel children. Works for Stories too (comment-related fields are null there).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
media_idstringyesInstagram media id.

No output schema declared.

No examples provided.

instagram_get_media_insights ~115

Insights for one media item. Picks the valid metric set for its product type (FEED incl. carousels, REELS, STORY) when metrics is omitted; an explicit list is validated against that product type. Optional breakdown only for navigation or profile_activity.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
breakdownstring–story_navigation_action_type (navigation) or action_type (profile_activity).
media_idstringyes–
metricsarray––

No output schema declared.

No examples provided.

instagram_get_operation ~86

Look up one operation or approval by id (op_... or appr_...): status, preview, result or error. For unknown publish outcomes it reconciles against Instagram (one attempt per call) unless reconcile is false.

NameTypeReqDescription
idstringyesAn op_... or appr_... id.
reconcileboolean–Try to resolve an unknown outcome (default true).

No output schema declared.

No examples provided.

instagram_get_profile ~74

Profile of the connected account: username, name, bio, website, counts, profile picture URL and account type. On the facebook and unified login paths account_type is always null and warnings says so (the Graph API does not provide it there).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.

No output schema declared.

No examples provided.

instagram_get_publish_status ~63

Status of a media container (creation_id): FINISHED, IN_PROGRESS, ERROR, EXPIRED or PUBLISHED, with Meta's status text.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
creation_idstringyes–

No output schema declared.

No examples provided.

instagram_get_rate_limits ~63

Publishing quota (content_publishing_limit), the most recent business-use-case and app usage reported by Meta response headers, and the remaining hashtag-search budget (facebook and unified login paths only).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.

No output schema declared.

No examples provided.

instagram_list_accounts ~42

List configured Instagram accounts with login path, default flag, token presence/expiry and the resolved capability matrix (yes/no/probe per feature). Makes no Instagram request.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

instagram_list_collab_invites ~86

Pending collaboration (collab post) invites for the account. May be unavailable on the instagram login path (CAPABILITY_UNAVAILABLE once Meta rejects it).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
limitinteger–Page size (max 100).

No output schema declared.

No examples provided.

instagram_list_comments ~117

Top-level comments on one of your media (id, text, username, timestamp, like_count, hidden), optionally with their replies. Paginated (limit max 50).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
include_repliesboolean–Also fetch replies (default false).
limitinteger–Page size (default 25, max 50).
media_idstringyesmedia_id

No output schema declared.

No examples provided.

instagram_list_conversations ~114

Recent DM conversations with participants, last message, last user message time and whether the 24 h messaging window is open. `senders` is api, webhooks (Meta withheld senders; time from stored webhook events) or unavailable.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
limitinteger––
user_idstring–Filter by Instagram-scoped user id (IGSID).

No output schema declared.

No examples provided.

instagram_list_media ~151

List the account's own media (newest first) with caption, type, permalink, counts and URLs. Optional media_product_type filter (FEED|REELS|STORY|AD) is applied after each page is fetched, so a page may hold fewer than limit items while next_cursor is set. since/until are ISO 8601 or YYYY-MM-DD.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
limitinteger–Page size (max 100).
media_product_typestring––
sincestring––
untilstring––

No output schema declared.

No examples provided.

instagram_list_mentions ~153

Media you are tagged in (mode tags, paginated), or look up a specific mentioning media (mentioned_media + media_id) or comment (mentioned_comment + comment_id).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
comment_idstring–comment_id
cursorstring–Opaque cursor from a previous next_cursor.
limitinteger–tags only
media_idstring–media_id
media_typestring–tags only
modestring–Default tags.
posted_afterstring–tags only, ISO 8601
posted_beforestring–tags only, ISO 8601

No output schema declared.

No examples provided.

instagram_list_operations ~138

Recent operations (approved executions, including dry runs and scheduler-originated), newest first. Filter by action, status, account and created_at range.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
actionstring––
cursorstring–Opaque cursor from a previous next_cursor.
limitinteger–Page size (max 100).
sincestring–ISO 8601 or YYYY-MM-DD; inclusive, on created_at.
statusstring––
untilstring–ISO 8601 or YYYY-MM-DD; inclusive, on created_at.

No output schema declared.

No examples provided.

instagram_list_scheduled ~83

List scheduled publish jobs ordered by publish_at (earliest first). Filter by status and account. Local only.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
limitinteger–Page size (max 100).
statusstring––

No output schema declared.

No examples provided.

instagram_list_stories ~67

List the account's currently live stories (last 24 hours).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cursorstring–Opaque cursor from a previous next_cursor.
limitinteger–Page size (max 100).

No output schema declared.

No examples provided.

instagram_lookup_account ~89

Business discovery: public profile stats and recent media of another Instagram business/creator account by username. Facebook login path only (instagram login path returns CAPABILITY_UNAVAILABLE).

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
media_limitinteger–Recent media to include (default 10).
usernamestringyesUsername to look up (leading @ allowed).

No output schema declared.

No examples provided.

instagram_mark_handled ~73

Local bookkeeping: mark (or unmark) inbox item ids as handled so instagram_get_inbox hides them. No Instagram request.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
handledboolean–Default true; false unmarks.
item_idsarrayyes–

No output schema declared.

No examples provided.

instagram_media_kit ~68

Partnership media kit: profile, follower demographics, average reach/views/engagement per format over 30 and 90 days, top posts. Returns JSON plus markdown. Demographic or insight failures only add warnings.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.

No output schema declared.

No examples provided.

instagram_performance_report ~131

Performance report for 7d, 30d, 90d or a custom range: totals vs the previous period, engagement rate (total_interactions / reach), top and bottom posts, format breakdown, posting cadence. Returns JSON plus a markdown summary. Single failed post-insight requests only add warnings.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
periodstring–Default 30d.
rank_bystring–Default total_interactions.
sincestring–Required for custom.
untilstring–Required for custom.

No output schema declared.

No examples provided.

instagram_preflight_comment_actions ~121

Plan a batch (1..50) of comment operations: reply, comment, hide, unhide, delete, private_reply. Reads each target, returns a preview, the exact planned calls and an approval_id; nothing is written until instagram_approve. Per-item outcomes are reported on approve; one failing item never stops the batch. private_reply needs the messaging capability and a comment younger than 7 days.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
opsarrayyesOperations, executed in order.

No output schema declared.

No examples provided.

instagram_preflight_delete_media ~77

Preview deleting one of your own posts, reels or stories (a carousel is deleted as a whole). Returns an approval_id; the post is deleted only after instagram_approve. Not available on every login path.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
media_idstringyes–

No output schema declared.

No examples provided.

instagram_preflight_publish ~244

Validate and preview publishing an image, reel, story or carousel (public URLs or local files), optionally scheduled with publish_at. Checks media rules and the 24 h publishing quota, then returns an approval_id and the exact planned Graph calls. Nothing is posted until instagram_approve.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
audio_namestring––
branded_content_sponsor_idsarray––
captionstring––
collaboratorsarray––
coverobject–Reel cover (JPEG, 8 MB max).
is_ai_generatedboolean––
is_paid_partnershipboolean––
kindstringyes–
location_idstring––
mediaarrayyes–
publish_atstring–ISO 8601 instant later than now; schedules the post instead of publishing immediately.
share_to_feedboolean––
thumb_offset_msinteger––
trial_reelobject––
user_tagsarray–For image/reel/story; equals media[0].user_tags.

No output schema declared.

No examples provided.

instagram_preflight_reply_mention ~94

Plan a reply to a media mention (media_id) or a comment mention (media_id + comment_id) via POST /{ig}/mentions. Returns an approval_id for instagram_approve.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
comment_idstring–comment_id
media_idstringyesmedia_id
messagestringyes–

No output schema declared.

No examples provided.

instagram_preflight_respond_collab_invite ~77

Preview accepting or declining a pending collaboration invite (reads the invite list only). Returns an approval_id; nothing changes until instagram_approve is called with it.

NameTypeReqDescription
acceptbooleanyes–
accountstring–Account alias; defaults to the configured default account.
media_idstringyes–

No output schema declared.

No examples provided.

instagram_preflight_send_message ~226

Plan a DM (text, media URL, or reaction; optional quick replies) to an IGSID or conversation. Checks the 24 h messaging window from the last 20 messages, or from stored webhook events when Meta withholds senders (WINDOW_UNVERIFIED warning when neither is available) (HUMAN_AGENT tag only if policy allows and within 7 days) and returns an approval_id for instagram_approve.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
conversation_idstring–conversation_id
human_agentboolean–Allow the HUMAN_AGENT tag (7 day window) when policy.allow_human_agent_tag is true.
mediaobject––
quick_repliesarray––
reactionobject––
recipient_idstring–Instagram-scoped user id (IGSID). Exactly one of recipient_id / conversation_id.
reply_to_midstring––
textstring–Message text, at most 1000 bytes UTF-8.

No output schema declared.

No examples provided.

instagram_preflight_set_comments_enabled ~67

Preview turning comments on or off for one of your posts. Returns an approval_id; applied only after instagram_approve.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
enabledbooleanyes–
media_idstringyes–

No output schema declared.

No examples provided.

instagram_preflight_set_messaging_profile ~97

Plan changes to the DM profile: ice breakers (max 4), persistent menu, and/or clearing either. Shows the current profile and returns an approval_id for instagram_approve.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
cleararray–Remove ice_breakers and/or persistent_menu.
ice_breakersarray––
persistent_menuarray––

No output schema declared.

No examples provided.

instagram_search_hashtag ~90

Resolve a hashtag to its id. Meta allows 30 distinct hashtags per account per rolling 7 days; repeats within the window are free, a 31st new hashtag returns HASHTAG_BUDGET_EXHAUSTED. Facebook login path only.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.
querystringyesHashtag without the leading #.

No output schema declared.

No examples provided.

instagram_snapshot_insights ~62

Fetch current counts and last-24h account insights and store them as a local snapshot (the daemon also does this daily). Feeds instagram_get_growth. Allowed under read_only.

NameTypeReqDescription
accountstring–Account alias; defaults to the configured default account.

No output schema declared.

No examples provided.

Install

How do I install the io.github.pratikgh0se/instagram-mcp server?

io.github.pratikgh0se/instagram-mcp ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 1fc821bf77abdc73c6215d82a5eb969a4f4acd602dc596c389c3b02c3d1fbe7d; the commands to do that are on this page. If it does not match, do not open it.

mcpb · instagram-mcp-1.0.0.mcpb

Download bundle

Check the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.

SHA-256

1fc821bf77abdc73c6215d82a5eb969a4f4acd602dc596c389c3b02c3d1fbe7d

macOS / Linux

echo "1fc821bf77abdc73c6215d82a5eb969a4f4acd602dc596c389c3b02c3d1fbe7d  instagram-mcp-1.0.0.mcpb" | shasum -a 256 -c

Windows (PowerShell)

(Get-FileHash -Algorithm SHA256 .\instagram-mcp-1.0.0.mcpb).Hash -eq "1fc821bf77abdc73c6215d82a5eb969a4f4acd602dc596c389c3b02c3d1fbe7d"

Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.

Common questions

What is the io.github.pratikgh0se/instagram-mcp server?

io.github.pratikgh0se/instagram-mcp is listed in the public MCP registry as io.github.pratikgh0se/instagram-mcp. Instagram MCP for creators: publish, schedule, comments, DMs and insights via Meta's official API. This page covers its MCPB bundle (https://github.com/pratikgh0se/instagram-mcp/releases/download/v1.0.0/instagram-mcp-1.0.0.mcpb).

Is the io.github.pratikgh0se/instagram-mcp server safe to use?

io.github.pratikgh0se/instagram-mcp scores 45 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.pratikgh0se/instagram-mcp server expose?

io.github.pratikgh0se/instagram-mcp exposes 42 tools: instagram_list_accounts, instagram_get_profile, instagram_get_rate_limits, instagram_get_operation, instagram_list_operations, and 37 more. Their descriptions and schemas cost roughly 4,282 tokens of context every time the server is loaded.

What licence is the io.github.pratikgh0se/instagram-mcp server under?

io.github.pratikgh0se/instagram-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.