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.
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.
- 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
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.
One command plus a key — uvx instagram-mcp-server, then supply credentials
