# io.github.mcpware/instagram-mcp (npm · @mcpware/instagram-mcp)

Instagram MCP — 23 tools for Instagram Graph API: posts, DMs, stories, reels, analytics.

- Trust score: 69/100 (medium)
- Change this week: +44
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- npm · `@mcpware/instagram-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/mcpware-instagram-mcp/mcpware-instagram-mcp.md), [page](https://verifymcp.io/servers/mcpware-instagram-mcp/mcpware-instagram-mcp)

## Channel facts

- Registry: `npm`
- Package: `@mcpware/instagram-mcp`
- Version: `1.0.4`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 138 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 75/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1184 tokens (~51/item across 23 items; 23 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add mcpware-instagram-mcp -- npx -y @mcpware/instagram-mcp
```

### Codex

```bash
codex mcp add mcpware-instagram-mcp -- npx -y @mcpware/instagram-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mcpware-instagram-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@mcpware/instagram-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add mcpware-instagram-mcp --command npx --arg -y --arg @mcpware/instagram-mcp
```

### Hermes

```yaml
mcp_servers:
  mcpware-instagram-mcp:
    command: "npx"
    args: ["-y", "@mcpware/instagram-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "mcpware-instagram-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mcpware/instagram-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 69, +4)

- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 65, +60)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 5, −16)

- [functional regression] Tool coverage: 100 → unverified

### 2026-07-31 (score 21, −7)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 28, +3)

- [security regression] Malware scan: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-28 (score 25, −21)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (23)

### `get_profile_info` (~44 tokens)

Get Instagram business profile information including followers, bio, and account details

Input parameters:

- `account_id` (string): Instagram business account ID (optional, uses configured account if not provided)

### `get_media_posts` (~59 tokens)

Get recent media posts from Instagram account with engagement metrics

Input parameters:

- `account_id` (string): Instagram business account ID (optional)
- `after` (string): Pagination cursor
- `limit` (integer): Number of posts to retrieve (max 100)

### `get_media_insights` (~61 tokens)

Get detailed insights and analytics for a specific Instagram post

Input parameters:

- `media_id` (string, required): Instagram media ID
- `metrics` (array): Specific metrics to retrieve (optional, gets all if not specified). Note: video_views only works for video posts

### `publish_media` (~92 tokens)

Upload and publish an image or video to Instagram with caption and optional location

Input parameters:

- `caption` (string): Caption for the post (optional)
- `image_url` (string): URL of the image to publish (must be publicly accessible)
- `location_id` (string): Facebook location ID for geotagging (optional)
- `video_url` (string): URL of the video to publish (must be publicly accessible)

### `publish_carousel` (~64 tokens)

Publish a carousel (album) post with 2-10 images or videos. All media must be publicly accessible URLs.

Input parameters:

- `caption` (string): Caption for the carousel post (optional)
- `image_urls` (array, required): List of 2-10 image/video URLs

### `publish_reel` (~78 tokens)

Publish a Reel (short-form video) to Instagram. Video must be publicly accessible URL, MP4 format.

Input parameters:

- `caption` (string): Caption for the Reel (optional)
- `share_to_feed` (boolean): Also share to main feed (default: true)
- `video_url` (string, required): URL of the video to publish as Reel

### `get_content_publishing_limit` (~31 tokens)

Check how many posts you can still publish today. Instagram limits content publishing per 24-hour period.

### `get_account_pages` (~22 tokens)

Get Facebook pages connected to the account and their Instagram business accounts

### `get_account_insights` (~57 tokens)

Get account-level insights and analytics for Instagram business account

Input parameters:

- `account_id` (string): Instagram business account ID (optional)
- `metrics` (array): Specific metrics to retrieve
- `period` (string): Time period for insights

### `validate_access_token` (~19 tokens)

Validate the Instagram API access token and check permissions

### `get_conversations` (~51 tokens)

Get Instagram DM conversations. Requires instagram_manage_messages permission.

Input parameters:

- `limit` (integer): Number of conversations (max 100)
- `page_id` (string): Facebook page ID (optional, auto-detected)

### `get_conversation_messages` (~50 tokens)

Get messages from a specific Instagram DM conversation. Requires instagram_manage_messages permission.

Input parameters:

- `conversation_id` (string, required): Instagram conversation ID
- `limit` (integer): Number of messages (max 100)

### `send_dm` (~62 tokens)

Send Instagram direct message. Requires instagram_manage_messages with Advanced Access. Can only reply within 24 hours.

Input parameters:

- `message` (string, required): Message text (max 1000 characters)
- `recipient_id` (string, required): Instagram Scoped User ID (IGSID) of recipient

### `get_comments` (~52 tokens)

Get comments on an Instagram post. Returns comment text, username, timestamp, and like count.

Input parameters:

- `limit` (integer): Number of comments (max 100)
- `media_id` (string, required): Instagram media ID

### `post_comment` (~50 tokens)

Post a top-level comment on an Instagram post. Requires instagram_manage_comments permission.

Input parameters:

- `media_id` (string, required): Instagram media ID
- `message` (string, required): Comment text (max 2200 characters)

### `reply_to_comment` (~53 tokens)

Reply to a specific comment on an Instagram post. Requires instagram_manage_comments permission.

Input parameters:

- `comment_id` (string, required): Comment ID to reply to
- `message` (string, required): Reply text (max 2200 characters)

### `delete_comment` (~37 tokens)

Delete a comment on your Instagram post. Can only delete comments on your own media.

Input parameters:

- `comment_id` (string, required): Comment ID to delete

### `hide_comment` (~58 tokens)

Hide or unhide a comment on your Instagram post. Hidden comments are not visible to the public.

Input parameters:

- `comment_id` (string, required): Comment ID to hide or unhide
- `hide` (boolean): True to hide, False to unhide

### `search_hashtag` (~47 tokens)

Search for an Instagram hashtag and get its ID. Use the returned ID with get_hashtag_media.

Input parameters:

- `hashtag_name` (string, required): Hashtag to search for (with or without #)

### `get_hashtag_media` (~72 tokens)

Get top or recent media for a hashtag. Use search_hashtag first to get the hashtag ID.

Input parameters:

- `hashtag_id` (string, required): Hashtag ID from search_hashtag
- `limit` (integer): Number of posts (max 50)
- `media_type` (string): Get top or recent media

### `get_stories` (~38 tokens)

Get current active stories on your Instagram account. Stories expire after 24 hours.

Input parameters:

- `account_id` (string): Instagram account ID (optional)

### `get_mentions` (~40 tokens)

Get posts where your account has been tagged or @mentioned. Useful for tracking UGC.

Input parameters:

- `limit` (integer): Number of mentions (max 100)

### `business_discovery` (~47 tokens)

Look up another public Business or Creator account's profile. Returns bio, follower count, media count, etc.

Input parameters:

- `target_username` (string, required): Instagram username to look up (without @)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/mcpware-instagram-mcp/mcpware-instagram-mcp#diagnostics

## Score history

- 2026-08-04: 69
- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 5
- 2026-07-31: 21
- 2026-07-30: 28
- 2026-07-28: 25
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@mcpware/instagram-mcp
- Socket report: https://socket.dev/npm/package/@mcpware/instagram-mcp
- Repository: https://github.com/mcpware/instagram-mcp
- Changelog RSS feed: https://verifymcp.io/servers/mcpware-instagram-mcp/mcpware-instagram-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/mcpware-instagram-mcp/mcpware-instagram-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/mcpware-instagram-mcp/mcpware-instagram-mcp
