LabscoMCP early access ↗
jlbadanoMCP SERVER

Instagram

Instagram Business accounts through the Graph API — read profile and post metrics, publish images and video, and, with Meta's Advanced Access, handle DMs.

by jlbadano ↗Social Media Accounts & PostingCommunity

LABSCO SUMMARY

The DM half needs Meta's permission, and the README says so before you build on it.

Reading posts, pulling insights and publishing all work on Standard Access, which you get immediately. Direct messaging needs instagram_manage_messages, and that means going through Meta App Review — so decide which half you need before setting anything up. The credential path is the usual Facebook maze, but the README walks it step by step, including how to get the Business Account ID out of the page response.

What it is

An MCP server over Instagram's Graph API for Business accounts, built with FastMCP. It ships all three MCP surfaces: tools the model calls, resources the application reads, and prompts you invoke for analysis work.

What you get

  • Business profile details, including follower counts and bio — get_profile_info
  • Recent posts and the engagement metrics for a specific one
  • Image and video upload and publishing to the account
  • The Facebook pages connected to the account
  • Instagram DM handling — list conversations, read messages in one, and reply — all three gated behind Meta's Advanced Access
  • Resources for profile data, the media feed with engagement metrics, and insights
  • Three prompts: engagement analysis of post performance, content strategy recommendations, and hashtag performance evaluation

Requirements

  • An Instagram Business account connected to a Facebook Page you own, a Facebook developer account with an app, and a long-lived access token.
  • Python 3.10 or higher: clone the repository, run pip install -r requirements.txt, then copy env.example to .env and fill in four values — INSTAGRAM_ACCESS_TOKEN, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET and INSTAGRAM_BUSINESS_ACCOUNT_ID.
  • Standard Access covers instagram_basic, instagram_content_publish, instagram_manage_insights, pages_show_list and the rest and is available immediately; instagram_manage_messages, which every DM feature needs, requires Meta App Review.
  • Long-lived tokens expire after 60 days, so plan the refresh. Instagram's own limits apply: 200 calls per hour for profile, media and insights requests, and 25 posts per day for publishing.
  • With Claude, an open bug stops it working: the publish_media tool's definition uses a schema form Claude's API refuses, so Claude returns an error instead of answering. The bug report on the project gives a one-line fix to src/instagram_mcp_server.py; apply it to your clone until the author ships it.
  • Licensed MIT.

Setup effort

Build from source — git clone https://github.com/jlbadano/ig-mcp