Skip to main content
Glama
Instagram MCP Server

Instagram MCP Server

by luminarylane

Instagram MCP Server

MCP TypeScript License

A Model Context Protocol (MCP) server that connects Claude Desktop (and other MCP clients) to the Instagram Graph API — read analytics, manage comments, publish photos, carousels, and reels.

Features

11 Instagram Tools

SENSE (read-only):

Tool

Description

ig_get_account_insights

Account insights: reach, follower growth, profile views over a period

ig_get_post_insights

Engagement metrics for a specific post: reach, likes, shares, saves

ig_get_comments

Comments on a post with username, timestamp, and replies

ig_get_stories_insights

Insights for an active story: reach, replies, interactions

ig_get_audience_demographics

Follower demographics: city, country, age/gender breakdown

ig_get_hashtag_search

Search public posts by hashtag (30 unique hashtags per 7-day window)

ACT (write):

Tool

Description

ig_publish_photo

Publish a photo post from a public URL

ig_publish_carousel

Publish a carousel (2-10 images) from public URLs

ig_publish_reel

Publish a reel (short video) from a public URL

ig_reply_comment

Reply to a comment on a post

ig_delete_comment

Delete a comment on one of your posts

Built-in Reliability

  • Per-tenant rate limiting — token-bucket rate limiter keyed by IG Business Account ID

  • Exponential backoff retry — automatic retry with jitter for transient API errors

  • Container-based publishing — create container → poll status → publish (handles async video processing)

  • Input sanitization — strips zero-width characters, normalizes whitespace, truncates to API limits

  • Prompt injection protection — wraps external API data in randomized markers

Related MCP server: Instagram MCP Server

Quick Start

Prerequisites

  • Node.js 22.14+

  • An Instagram Business or Creator account connected to a Facebook Page

  • A Facebook App with the Instagram Graph API enabled

  • A long-lived Page Access Token

Getting Your Access Token

  1. Create a Facebook App

  2. Add the Instagram Graph API product

  3. In Graph API Explorer, generate a Page Access Token with these permissions:

    • instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insights, pages_show_list, pages_read_engagement

  4. Extend the token to a long-lived token (60 days)

Installation

Published package: @luminarylane/instagram-mcp-server on npm

Run without a global install:

INSTAGRAM_ACCESS_TOKEN=your-token INSTAGRAM_BUSINESS_ACCOUNT_ID=your-account-id npx --yes @luminarylane/instagram-mcp-server

To run from source:

git clone https://github.com/luminarylane/instagram-mcp-server.git
cd instagram-mcp-server
npm install
npm run build

Configuration

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["--yes", "@luminarylane/instagram-mcp-server"],
      "env": {
        "INSTAGRAM_ACCESS_TOKEN": "your_long_lived_page_token",
        "INSTAGRAM_BUSINESS_ACCOUNT_ID": "your_17_digit_ig_business_account_id"
      }
    }
  }
}

Environment variables:

Variable

Required

Description

INSTAGRAM_ACCESS_TOKEN

Yes*

Long-lived Facebook Page Access Token

INSTAGRAM_BUSINESS_ACCOUNT_ID

Yes*

17-digit IG Business Account ID

*Can also be passed per-call via tool arguments.

Finding Your Business Account ID

Use the Graph API Explorer:

GET /me/accounts?fields=instagram_business_account

The instagram_business_account.id field is your Business Account ID.

Usage Examples

Once configured, ask Claude to:

  • "Show me my Instagram account insights for the last 28 days"

  • "What are the engagement metrics for my latest post?"

  • "Get the comments on this post" (paste a media ID)

  • "Show my follower demographics by country"

  • "Publish this photo to Instagram" (provide a public image URL + caption)

  • "Create a carousel post with these images"

  • "Reply to this comment with 'Thanks!'"

  • "Search recent posts with #startup"

Publishing

Photo and carousel publishing is synchronous — the tool returns once the post is live. Reel publishing is asynchronous — the server polls the container status until processing completes, then publishes.

All publish tools accept an optional firstComment parameter to add a comment immediately after publishing (commonly used for hashtags).

Rate Limiting

The server enforces per-account rate limits to stay within Instagram's API quotas. If you hit a rate limit, the tool will return an error with a suggested retry time. The built-in retry logic handles transient 429 responses automatically.

Contributing

  1. Fork the repo

  2. Create a feature branch (git checkout -b feat/my-feature)

  3. Make changes and run tests (npm test)

  4. Submit a pull request

License

MIT License — see LICENSE for details.

Acknowledgments

Available Tools

11 tools
ig_delete_commentB

Delete a comment on one of your Instagram posts.

Inputs: commentId (required), accountId, accessToken.

ig_get_account_insightsB

Get Instagram account insights: impressions, reach, follower growth, and profile views over a period.

Inputs: since, until, period, accountId, +1 more.

ig_get_audience_demographicsB

Get follower demographics: city, country, and age/gender breakdown. Requires 100+ followers.

Inputs: metric, accountId, breakdown, accessToken.

ig_get_commentsB

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

Inputs: mediaId (required), after, limit, accountId, +1 more.

ig_get_post_insightsA

Get engagement metrics for a specific Instagram post: impressions, reach, engagement, saves, shares.

Inputs: mediaId (required), accountId, accessToken.

ig_get_stories_insightsA

Get insights for an active Instagram story: reach, replies, follows, profile_visits, total_interactions. Stories expire after 24 hours — storyId must reference a currently active story (fetch from /{ig-account-id}/stories).

Inputs: storyId (required), accountId, accessToken.

ig_publish_photoA

Publish a photo post to Instagram. The image_url must be publicly accessible. Flow: create media container → publish.

Inputs: imageUrl (required), caption, accountId, accessToken, +1 more.

ig_publish_reelA

Publish a reel (short video) to Instagram. The video_url must be publicly accessible. Video processing is async — this tool polls until ready, then publishes.

Inputs: videoUrl (required), caption, coverUrl, accountId, +3 more.

ig_reply_commentB

Reply to a comment on an Instagram post.

Inputs: message (required), commentId (required), accountId, accessToken.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool targets a distinct action on Instagram (publish different media types, manage comments, retrieve insights, search hashtags). No two tools overlap in purpose, so an agent can clearly distinguish them.

    Naming Consistency5/5

    All tools follow the 'ig_<verb>_<noun>' pattern using snake_case. Verbs like get, publish, delete, reply are consistently applied, and nouns clearly indicate the target (e.g., comment, account_insights). No mixing of conventions.

    Tool Count5/5

    11 tools is appropriate for an Instagram integration covering publishing, comments, insights, audience demographics, and hashtag search. The scope is focused without being too narrow or overly broad.

    Completeness3/5

    The tool set covers publishing and insights well but lacks basic post management operations (read, update, delete posts). Also missing story publishing and like/unlike functions. Some common workflows require external tools to fill gaps.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      Provides Instagram analytics, media downloads, and search capabilities through an MCP interface for use with Claude and other MCP clients.
      43
      44
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Exposes Instagram actions (posts, media, comments, DMs, insights, Messenger profile) to Claude and ChatGPT via MCP.
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A production-ready Remote MCP Server that gives Claude direct, tool-based access to your Instagram Business account through the Meta Graph API — profile data, posts, comments, publishing, insights, analytics, hashtags, messaging, and real-time webhooks.
      7 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Connects Claude to the official Meta Instagram Graph API (read-only) for retrieving Instagram profile, media, insights, and comments as MCP tools over Streamable HTTP.
      1
      MIT