Skip to directory

Instagram MCP (community)

Ivan Baev / IvanBBaev (community-maintained; not affiliated with Meta or Instagram)

stdio29+ documented tools5

About Instagram MCP (community)

A local MCP server that accesses an Instagram Business or Creator account through Meta's official Graph APIs, with documented account/media reads, insights, comment moderation, publishing, and optional discovery. It is a community project, not an Instagram or Meta-operated MCP.

What you can use it for

  • Read profile and media from an authorized Instagram professional account.
  • Review documented account and media insights and moderate comments.
  • Prepare or publish content through the documented Meta Graph API workflow, subject to preview and apply safeguards.
  • Optionally search hashtags or discover public professional profiles on the supported Facebook Login path.
Connection and setup
Hosting
Local npm package; community-maintained server calling Meta Graph APIs
Transport
stdio
Endpoint
Local process; no hosted endpoint documented
Authentication
Meta OAuth through the server's login CLI. Requires an Instagram professional account (Business or Creator) and a Meta developer app. The simplest documented path is Instagram Login (ig-login), which does not require a linked Facebook Page. The alternate Facebook Login path requires a linked Page and additionally needs app ID/secret for its supported functions.

Requirements

  • Node.js >= 22 and npm/npx.
  • An Instagram Business or Creator account; personal accounts are not supported by the Instagram Platform API.
  • A Meta developer app configured for Instagram API with Instagram Login; the app ID and secret must be entered locally for the OAuth login flow.
  • An MCP client that can launch a local stdio command.

Setup steps

  1. If needed, switch the Instagram account to Business or Creator in Instagram's account settings; personal accounts cannot use this API.
  2. At https://developers.facebook.com/apps/, create a Meta app and configure Instagram API with Instagram Login. Add the exact redirect URI shown by `npx -y instagram-mcp-ai login --help` (the repository currently documents http://127.0.0.1:8723/callback); the host and port must match exactly.
  3. Obtain the app ID and app secret in the Meta app's settings. Supply them only through local environment variables or the CLI's secure local input mechanism; do not put them in chat, source control, shell history, or Codex's MCP config.
  4. Run `npx -y instagram-mcp-ai login --path ig` locally and finish the Instagram OAuth browser flow. The CLI stores the resulting long-lived token in its local config env file (on Windows under %APPDATA%\instagram-mcp-ai\.env; on XDG systems under ~/.config/instagram-mcp-ai/.env).
  5. For Codex CLI, add the stdio server with `codex mcp add instagram -- npx -y instagram-mcp-ai`. The server reads its local credential file; no token should be added to this command or Codex config.
  6. Restart/reload Codex, then run `codex mcp list` or `/mcp` and inspect the discovered tool names. Run `npx -y instagram-mcp-ai doctor` locally for the server's read-only configuration, token, and API reachability check.
  7. Path A's documented default scopes are instagram_business_basic, instagram_business_content_publish, instagram_business_manage_comments, and instagram_business_manage_insights. The alternate Facebook Login path uses instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insights, pages_show_list, and pages_read_engagement; it requires the Instagram professional account to be linked to a Facebook Page. Hashtag/discovery may need Meta's Instagram Public Content Access feature.
  8. Long-lived tokens expire (the repository documents about 60 days); refresh locally with `npx -y instagram-mcp-ai refresh` before expiry. Start with read-only tools. Writes preview by default; applying a change requires explicit apply authorization or IG_WRITE_MODE=apply, and deleting comments also requires IG_ALLOW_DESTRUCTIVE=true.
Tools 29+

The repository's docs/tools.md enumerates 29 tool names. The README has an inconsistent count (28 in one section and 29 elsewhere), recorded as a source conflict. Actual tools/list was not run; profile selection and auth path can change which tools register, and discovery tools are gated.

  • instagram_get_account

    Read the authorized professional account profile.

    01
  • instagram_list_linked_accounts

    List linked Pages and Instagram accounts; Facebook Login path only.

    02
  • instagram_token_status

    Report token metadata, expiry, and rate-limit budget snapshot.

    03
  • instagram_list_media

    List the authorized account's media with pagination.

    04
  • instagram_list_stories

    List currently live stories for the authorized account.

    05
  • instagram_get_media

    Read one media object and carousel children.

    06
  • instagram_create_media_container

    Create a publishing container from public media URLs.

    07
  • instagram_get_container_status

    Read the status of a media publishing container.

    08
  • instagram_publish_media

    Publish a prepared media container.

    09
  • instagram_get_publishing_limit

    Read the account's current content publishing limit.

    10
  • instagram_post_image

    Composite preview/apply flow for publishing an image or carousel.

    11
  • instagram_post_reel

    Composite preview/apply flow for publishing a Reel.

    12
  • instagram_post_story

    Composite preview/apply flow for publishing a Story.

    13
  • instagram_list_comments

    List comments and reply threads on media.

    14
  • instagram_get_comment

    Read a comment with its media context.

    15
  • instagram_reply_to_comment

    Reply to a comment.

    16
  • instagram_create_comment

    Create a top-level comment on owned media.

    17
  • instagram_hide_comment

    Hide a comment on owned media.

    18
  • instagram_unhide_comment

    Unhide a comment.

    19
  • instagram_delete_comment

    Delete a comment; irreversible and separately gated.

    20
  • instagram_set_comments_enabled

    Enable or disable comments on a media object.

    21
  • instagram_list_tagged_media

    List media tagging the authorized account.

    22
  • instagram_get_account_insights

    Read supported account-level insights.

    23
  • instagram_get_media_insights

    Read supported insights for a media object.

    24
  • instagram_get_audience_demographics

    Read available audience demographic insights.

    25
  • instagram_get_online_followers

    Read online follower distribution when available.

    26
  • instagram_search_hashtag

    Search hashtags; gated by auth path and Meta feature access.

    27
  • instagram_get_hashtag_media

    Read public media for a hashtag; gated by auth path and Meta feature access.

    28
  • instagram_discover_business

    Read public business/creator profile information; Facebook Login path only.

    29

This server’s available tools can vary by account, permissions, or configuration. The list shown is not its full runtime catalog.

Limitations and notes
  • Community integration, not an official Meta/Instagram MCP.
  • Only Business and Creator accounts are supported; legacy Basic Display API is not a supported workaround.
  • The package docs list no Instagram messaging/DM tools; do not infer that DMs are available.
  • Publishing media requires a public HTTPS URL that Meta can fetch; this server does not upload local file bytes.
  • The project's README conflicts on whether it exposes 28 or 29 tools; docs/tools.md lists 29. Authentication and selected tool profile can further reduce runtime availability.
  • Only documentation/package metadata and logo were checked. MCP initialization, tools/list, Meta account reachability, and a representative tool call were not tested because no account authorization was provided.
Source discrepancies
  • The repository README's rendered/source sections report 28 and 29 tools respectively; docs/tools.md enumerates 29. Preserve the documented names but do not claim an observed runtime count.
Original sources
  • community repository documentation

    Identifies the local TypeScript MCP, official Graph API hosts, stdio transport, npm package, write-safety defaults, and no-scraping design. Some sections have conflicting tool counts.

  • community setup documentation

    Documents Meta app setup, Instagram Login, local OAuth flow, callback URI, package launch, credential storage, and doctor check.

  • community auth documentation

    Documents Business/Creator-only support, both login paths, their API hosts/scopes, and token lifecycle; these are the project's account of Meta API requirements.

  • community tool documentation

    Enumerates 29 documented tool names across account, media, publishing, comments, insights, and discovery; messaging is explicitly deferred. This is documentation, not a live tools/list response.

  • package registry metadata

    npm registry metadata query returned version 0.8.0 and Node engine >=22 on 2026-10-17.

  • official vendor documentation

    Meta's official Instagram API documentation is the underlying provider reference; account type and permission needs are recorded from the repo's dated source review and Meta's official API collection.

  • official vendor api collection

    Meta's own API collection states that the Instagram API serves Business and Creator professional accounts and documents the Facebook Login path's linked-Page requirement and permissions.

  • official product branding page

    The official Instagram homepage declares the selected 180x180 apple-touch icon asset; the downloaded WebP decoded successfully and was visually inspected on light and dark card backgrounds. Asset selection tier: official product logo/icon.

  • official client documentation

    Codex CLI documentation specifies `codex mcp add <name> -- <stdio command>`, stdio command/args configuration, `codex mcp list`, and `/mcp` for runtime inspection.

  • maintainer or vendor tool reference

    Maintainer tools.md enumerates 29 tool names; this is documentation inventory, not a live tools/list result.

Documentation checked 2026-10-28T00:00:00Z. Connection has not been runtime tested.