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.

INSSIST

NPM · @INSSIST/MCP

Drive your own logged-in Instagram session via the INSSIST extension: read, publish, DMs, analytics.

Available components

−2 this week 82 Trust /100

Last scanned (12 hours ago)

Scores higher than 72% of npm 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 Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 93 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 43 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7683 tokens (~128/item across 60 items; 60 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
  • Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 61 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
What we tested

Checks we ran (16)

  • Malware scan
  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

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.

  • 5 Nov 26 −3
    • Stability: pass → 0.80 functional
  • 30 Oct 26 +1
    • Stability: 0.97 → pass security
  • 28 Oct 26 −1
    • Stability: pass → 0.93 functional
  • 18 Oct 26 +1
    • Stability: 0.97 → pass security
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 +1
    • Security disclosure: unverified → pass ▲ functional
  • 12 Oct 26 −3
    • Stability: pass → 0.80 functional
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 npm/@inssist/mcp@2.0.0

Provenance No attestation

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

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 60 exposed · ~7,651 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
account_info ~49

List connected browser instances, the account each is logged into, other available accounts, and the default target. `proTrialDaysLeft` > 0 means PRO write tools answer for that many more days.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

account_switch ~134

Switch the browser profile to another logged-in account (see account_info). Later calls act as it; reloads open Instagram tabs. Switching to the active account is a no-op.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
userIdstring–Target account id from account_info. This or username required.
usernamestring–Target account username. This or userId required.

No output schema declared.

No examples provided.

antibot_export ~60

Export the full antibot follower analysis (risk + type per follower) to a CSV file; returns the path. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

antibot_report ~75

Follower quality analysis from the last antibot scan: totals by risk and type, plus the flagged (unreviewed high/medium-risk) followers. Empty until a scan has run. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

antibot_scan ~104

Start a follower scan scoring each follower bot/suspicious/fresh/clean. Runs in the background; poll antibot_report. Detection only — removes no one. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.

No output schema declared.

No examples provided.

comment_add ~112

Post a comment on a post. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
poststringyesPost: media id, shortcode, or URL.
textstringyesComment text.

No output schema declared.

No examples provided.

comment_delete ~130

Delete a comment — your own, or any on your own post. Permanent. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
commentIdstringyesComment to delete (from comments_list).
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
poststringyesThe comment's post: media id, shortcode, or URL.

No output schema declared.

No examples provided.

comment_like ~123

Like a comment, or unlike with `unlike: true`. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
commentIdstringyesComment to like (from comments_list).
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
unlikeboolean–True to remove a like; default false.

No output schema declared.

No examples provided.

comment_reply ~139

Reply to a comment. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
commentIdstringyesComment being replied to (from comments_list).
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
poststringyesThe comment's post: media id, shortcode, or URL.
textstringyesReply text. Lead with @handle to notify the parent author.

No output schema declared.

No examples provided.

comments_list ~142

List comments on a post and their replies. (Requires INSSIST PRO.)

NameTypeReqDescription
cursorstring–Resume token from a previous call's nextCursor. Omit for the first page.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
poststringyesPost: media id, shortcode, or URL.
repliesstring–A comment id: fetch that comment's replies instead of the post's top-level comments.

No output schema declared.

No examples provided.

dm_accept ~96

Accept a pending DM message request, moving it into the inbox. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
thread_idstringyesRequest id from dm_requests.

No output schema declared.

No examples provided.

dm_list ~96

List recent DM conversations, the last message, and whether a reply is awaited. Returns Instagram's single inbox page, which cannot be paged further. Read-only.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.

No output schema declared.

No examples provided.

dm_mark_seen ~102

Mark a DM conversation as read (up to its latest message), clearing its unread flag. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
thread_idstringyesConversation id from dm_list.

No output schema declared.

No examples provided.

dm_read ~148

Read a DM conversation's messages, oldest first. Returns the newest `limit` messages; raise `limit` to reach older ones. `has_more` means older messages were cut off. Read-only. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
limitnumber–How many of the newest messages to return, 1-200 (default 20).
thread_idstringyesConversation id from dm_list.

No output schema declared.

No examples provided.

dm_remove ~103

Decline and remove a pending DM message request (from dm_requests). Does not touch inbox chats. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
thread_idstringyesRequest id from dm_requests.

No output schema declared.

No examples provided.

dm_requests ~103

List pending DM message requests (cold inbound from non-connections, which do not appear in dm_list until accepted). Returns Instagram's single requests page, which cannot be paged further. Read-only.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.

No output schema declared.

No examples provided.

dm_send ~165

Send a text message by thread_id (from dm_list) or username. A username never messaged before gets a new conversation, which lands in their message requests; those cold sends are capped per day. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
textstringyesMessage text.
thread_idstring–Conversation id from dm_list. Provide this or `username`.
usernamestring–Recipient handle. Provide this or `thread_id`.

No output schema declared.

No examples provided.

downloads_cancel ~65

Cancel a download started with downloads_start: stops it and deletes its saved data. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
jobIdstringyesJob id from downloads_start.

No output schema declared.

No examples provided.

downloads_start ~291

Download media to this machine: a whole account's posts/reels/stories/highlights via `username`, or one post via `url` — give exactly one. Returns a job id immediately; runs in the background, poll downloads_status. Files land in a timestamped INSSIST/@username/ folder with json+csv manifests. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
limitnumber–Cap per media type. Omit for everything. Only for a username download.
mediaarray–Any of: posts, stories, highlights, reels (default all). "posts" = photos, videos, carousels and every reel shared to the grid. "reels" = reels missing from the grid: cover image and counts only, no…
urlstring–Permalink of one post to download (/p/, /reel/ or /tv/). Mutually exclusive with username; `media` and `limit` do not apply.
usernamestring–Account to download in full. Private only if followed. Omit when downloading a single post.

No output schema declared.

No examples provided.

downloads_status ~106

Progress of a downloads_start job: items saved per type and whether it finished, paused or failed. Once on disk, reports the folder and json-manifest path (each file with likes, comments, caption). Omit jobId to list all downloads. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
jobIdstring–Job id from downloads_start. Omit to list all.

No output schema declared.

No examples provided.

draft_create ~430

Create a draft post in INSSIST Post Assistant from photos/videos. Not published/scheduled — follow with draft_schedule or draft_publish using the returned draftId. Opens an Instagram tab if needed. (Requires INSSIST PRO.)

NameTypeReqDescription
assetsarrayyesPhotos/videos in carousel order. Absolute local path or http(s) url. jpg/png/webp/mp4/mov/webm. Up to 20.
captionstring–Caption, incl. hashtags and @mentions.
closeFriendsboolean–Story only: share with Close Friends instead of everyone.
collaboratorsarray–Usernames to invite as collaborators (co-authors), without @. Up to 5. Each is asked to accept, and the post then shows on their profile too. Posts and reels only.
disableCommentsboolean–Turn off commenting.
hideLikesboolean–Hide like and view counts.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
linkUrlstring–Story only: http(s) URL for a link sticker.
locationstring–Place name to tag; first Instagram match wins.
mentionsarray–Usernames to tag in the photo, without @. Up to 20. Not the same as writing @name in the caption.
musicTrackIdstring–Track id from music_search. Needs a one-time audio permission in INSSIST.
musicTrackNamestring–Track title from music_search, shown as label. Optional.
shareToFeedboolean–Reel only: also show it in the feed. Default true.
stickerTextstring–Story only: text sticker content.
stretchToFillboolean–Fill the frame instead of letterboxing (default true). Crops a non-9:16 photo to fill a story; a no-op for a regular post unless the image is outside Instagram's allowed ratios.
typestring–Publish as: post (default), reel or story.

No output schema declared.

No examples provided.

draft_delete ~91

Remove a post from INSSIST Post Assistant, with its media. Only touches the INSSIST queue: a published entry is cleared from the list, the Instagram post itself is never affected. (Requires INSSIST PRO.)

NameTypeReqDescription
draftIdstringyesPost id from draft_create or draft_list.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

draft_get ~92

Read one Post Assistant post by id: status, schedule, full caption, assets, music, place, mentions and the last error. Same fields as draft_list, with the caption untruncated. (Requires INSSIST PRO.)

NameTypeReqDescription
draftIdstringyesPost id from draft_create or draft_list.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

draft_list ~104

List Post Assistant posts across all logged-in accounts: drafts, scheduled, recently published/failed. Soonest scheduled first, undated drafts last. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
limitnumber–Max posts, 1-200, default 50.
statusstring–Filter: draft, scheduled, publishing, published, failed, retrying.

No output schema declared.

No examples provided.

draft_publish ~89

Publish a draft to Instagram now — immediate and cannot be undone here. Waits up to ~45s for the result; a slower upload continues in the background (see draft_list). (Requires INSSIST PRO.)

NameTypeReqDescription
draftIdstringyesPost id from draft_create or draft_list.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

draft_reorder ~98

Reorder scheduled posts by permuting the times they already hold: same slots, reassigned in the order listed. All must be already scheduled; to move to a new time use draft_schedule. (Requires INSSIST PRO.)

NameTypeReqDescription
draftIdsarrayyesScheduled post ids in wanted order, earliest slot first. At least two.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

draft_schedule ~125

Schedule an existing draft for a date/time; publishes automatically then (Chrome must be running and online). Use draft_create first, or draft_list for a draftId. (Requires INSSIST PRO.)

NameTypeReqDescription
atstringyesPublish time, ISO 8601. No offset = browser local time, e.g. "2026-08-22T18:30". Must be future.
draftIdstringyesPost id from draft_create or draft_list.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

draft_update ~421

Edit an unpublished post: caption, scheduled time, type, music, place, tags or framing. Pass at least one field; others unchanged. Published or publishing posts cannot be edited. (Requires INSSIST PRO.)

NameTypeReqDescription
atstring–New publish time for an already scheduled post, ISO 8601, must be future. To schedule a draft for the first time use draft_schedule.
captionstring–New caption, replaces the old one. Empty string clears it.
closeFriendsboolean–Story only: share with Close Friends instead of everyone.
collaboratorsarray–Usernames to invite as collaborators (co-authors), without @, replacing the current ones. Up to 5. Empty array removes them all.
disableCommentsboolean–Turn off commenting.
draftIdstringyesPost id from draft_create or draft_list.
hideLikesboolean–Hide like and view counts.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
linkUrlstring–Story only: http(s) URL for a link sticker.
locationstring–Place name to tag; first Instagram match wins. Empty string removes the place.
mentionsarray–Usernames to tag in the photo, without @, replacing the current tags. Empty array removes them all.
musicTrackIdstring–Track id from music_search to attach. Empty string removes the track.
musicTrackNamestring–Track title from music_search, shown as label. Optional, goes with musicTrackId.
shareToFeedboolean–Reel only: also show it in the feed. Default true.
stickerTextstring–Story only: text sticker content.
stretchToFillboolean–true fills the frame (crops letterbox), false letterboxes. Omit to leave framing as is.
typestring–Change how it publishes: post, reel or story.

No output schema declared.

No examples provided.

events_check ~180

New Instagram activity since a cursor, in one request: never waits. Returns the events and the cursor to pass back next time. First call without a cursor returns only the cursor. Check on the schedule the user asked for, minutes apart, not in a loop. Read-only. (Requires INSSIST PRO.)

NameTypeReqDescription
cursorstring–From the previous events_check answer. Omit on the first call.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
kindsarray–Any of: dm, dm_requests, comments, likes, follows, mentions. Default: dm and dm_requests, the cheapest to check.

No output schema declared.

No examples provided.

follow_requests_list ~102

List pending follow requests to your account. (Requires INSSIST PRO.)

NameTypeReqDescription
cursorstring–Resume token from a previous call's nextCursor. Omit for the first page.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.

No output schema declared.

No examples provided.

follower_remove ~130

Remove an account from your followers without blocking it. They are not notified and can follow again. Use this, not ig_block, when asked to remove a follower. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
userstringyesAccount: username, profile URL, or numeric id.

No output schema declared.

No examples provided.

growth_configure ~218

Set lead-engagement config: source accounts, likes per lead, leads scanned per source, skip filters. Partial — only fields you pass change. Editing interrupts a run in progress. (Requires INSSIST PRO.)

NameTypeReqDescription
bannedUsernamesstring–Space-separated @usernames to skip.
bannedWordsstring–Space-separated words; skip leads whose posts contain them.
customboolean–Take leads from the given `sources` (true) or from accounts you follow (false).
excludedSourcesstring–Space-separated @usernames excluded from source scanning.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
leadsToScannumber–Leads to scan per source (>=1).
maxLikesnumber–Max likes per lead (>= minLikes).
minLikesnumber–Min likes per lead (>=1).
sourcesstring–Space-separated @usernames to pull leads from; used when custom=true.

No output schema declared.

No examples provided.

growth_export ~57

Export lead-engagement results (leads and likes made) to a CSV file; returns the path. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

growth_pause ~55

Turn off lead engagement for the logged-in account. No further likes are made until growth_start. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

growth_start ~71

Turn on lead engagement: scan the configured sources and like leads’ posts, paced by the like budget and rate-limit backoff. Runs in the background; poll growth_status. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

growth_status ~66

Lead-engagement state for the logged-in account: on/off, current config, leads and sources found, likes made, and remaining daily like budget. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.

No output schema declared.

No examples provided.

ig_action ~220

Like, unlike, follow or unfollow. One target per call. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
postIdstring–Target post for "unlike", as returned by a preceding like. Ignored by the other types.
shortcodestring–Alternative target for "unlike": the post shortcode from a permalink (/p/<shortcode>/).
typestringyesExactly one of: "like", "unlike", "follow", "unfollow". No other value is accepted.
usernamestring–Target account, without @. Required for like, follow and unfollow; ignored by unlike. For "like" INSSIST picks which recent post of that account to like.

No output schema declared.

No examples provided.

ig_block ~134

Block an account, or unblock with `unblock: true`. Blocking cuts all contact and hides your profile from them. Rate-limited calls return `done: false`. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
unblockboolean–True to unblock; default false.
userstringyesAccount: username, profile URL, or numeric id.

No output schema declared.

No examples provided.

ig_fetch_post ~161

Fetch one post by url or shortcode: caption, owner, media type, like/comment counts, timestamp, media urls. Works for /p/, /reel/, /tv/. Like ig_fetch_posts plus owner and full-size media.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
shortcodestring–Post shortcode on its own, e.g. ABC123. Give this or url.
urlstring–Post permalink, e.g. https://www.instagram.com/p/ABC123/. Give this or shortcode.

No output schema declared.

No examples provided.

ig_fetch_posts ~152

Fetch most recent posts of an account: caption, media type, likes, comments, timestamp, shortcode, permalink. Newest first. Pages internally; returns nextCursor when more remain.

NameTypeReqDescription
cursorstring–Resume token from a previous call's nextCursor. Omit for newest.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
limitnumber–Max posts to return, 1-1500, default 50.
usernamestringyesAccount username.

No output schema declared.

No examples provided.

ig_fetch_profile ~95

Fetch profile of an account: bio, links, follower/following/post counts, flags, viewer relationship.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
usernamestringyesAccount username.

No output schema declared.

No examples provided.

ig_fetch_saved ~95

List your saved posts, newest first.

NameTypeReqDescription
cursorstring–Resume token from a previous call's nextCursor. Omit for the first page.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.

No output schema declared.

No examples provided.

ig_fetch_stories ~96

Fetch an account's currently live stories, as the session sees them. Empty when none or not viewable.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
usernamestringyesAccount username.

No output schema declared.

No examples provided.

ig_post_delete ~122

Permanently delete a published Instagram post. Own posts only. This cannot be undone. To remove an unpublished draft or a scheduled post from the queue, use draft_delete instead. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
poststringyesPost: media id, shortcode, or URL.

No output schema declared.

No examples provided.

ig_post_edit ~117

Edit a published Instagram post's caption. Own posts only. (Requires INSSIST PRO.)

NameTypeReqDescription
captionstringyesThe new caption. Pass an empty string to clear it.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
poststringyesPost: media id, shortcode, or URL.

No output schema declared.

No examples provided.

ig_search ~148

Search Instagram accounts and hashtags by free text (the app's search box). Turn a half-remembered name into a username for the other ig_* tools. For taggable places, use location_search.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
querystringyesWhat to search for. A leading @ or # is ignored.
typestring–"account" or "hashtag". Omit to search both, which costs two requests.

No output schema declared.

No examples provided.

insights_collect ~154

Start (or refresh) an analytics scan of an account. Runs in the background and shows in INSSIST's Insights dashboard; poll insights_report for progress and results. (Requires INSSIST PRO.)

NameTypeReqDescription
followersboolean–Also scan followers for audience stats. Slower.
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
postsLimitnumber–Max posts to scan, 1-1500. Omit for the default.
usernamestringyesAccount to analyze.

No output schema declared.

No examples provided.

insights_report ~107

Read an insights_collect scan: progress while scanning, then metrics — engagement, best times, weekday/hour heatmap, post types, top posts, trends, posting frequency, follower growth. If followers were scanned, also audience quality (bot/suspicious/fresh/clean) and mutual overlap. (Requires INSSIST PRO.)

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
usernamestringyesAccount passed to insights_collect.

No output schema declared.

No examples provided.

location_search ~128

Search Instagram places by name for their ids, to tag a post. Pass a returned name to draft_create's `location`. Only places with coordinates (the taggable ones) are returned.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
querystringyesPlace name or address to look for, e.g. "blue bottle coffee" or "new york".

No output schema declared.

No examples provided.

music_search ~113

Search Instagram's music library by title or artist. Returns track ids for draft_create's musicTrackId.

NameTypeReqDescription
instancestring–Optional. Browser instance id from account_info; defaults to the active one.
instantboolean–Optional. Skip INSSIST's action pacing and run now — use only when the user asked for an unspaced or burst action.
limitnumber–Max tracks, 1-50, default 20.
querystringyesTrack title or artist.

No output schema declared.

No examples provided.

Install

How do I install the INSSIST MCP server?

INSSIST runs locally as an npm package, launched with npx -y @inssist/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @inssist/mcp

# add to Claude Code
claude mcp add inssist-inssist-mcp -- npx -y @inssist/mcp
Common questions

What is the INSSIST MCP server?

INSSIST is an MCP server listed in the public MCP registry as io.github.inssist/inssist-mcp. Drive your own logged-in Instagram session via the INSSIST extension: read, publish, DMs, analytics. This page covers its npm package (@inssist/mcp).

Is the INSSIST MCP server safe to use?

INSSIST scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. 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 INSSIST MCP server expose?

INSSIST exposes 60 tools: account_info, account_switch, antibot_export, antibot_report, antibot_scan, and 55 more. Their descriptions and schemas cost roughly 7,651 tokens of context every time the server is loaded.

Is the INSSIST MCP server still maintained?

INSSIST is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the INSSIST MCP server under?

INSSIST declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the INSSIST MCP server?

VerifyMCP ran 16 checks on INSSIST, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.