Labsco
MCP SERVER

Instagram

by jlbadano

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

Social Media Accounts & Posting
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, then clone the repository and `pip install -r requirements.txt`. Four environment variables: `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. Licensed MIT.

Setup effort

One command plus a key — uvx instagram-mcp-server, then supply credentials