Skip to main content
Glama
AleemHaider

instagram-personal-mcp

by AleemHaider

instagram-personal-mcp

Demo

A Model Context Protocol server that wraps instagrapi so Claude (or any MCP client) can read, engage, and DM from a personal Instagram account — no Business/Creator switch, no Meta app review.

⚠️ Unofficial private API. This server uses Instagram's reverse-engineered mobile API (via instagrapi). It is not affiliated with or endorsed by Meta. Accounts driving private-API traffic can be rate-limited, challenged, or permanently disabled. Use a burner account until you trust your setup, keep activity natural, and don't connect over VPNs / datacenter IPs.

24 tools across auth, profile/read, engagement, and DMs.

Quick start

git clone https://github.com/AleemHaider/instagram-personal-mcp
cd instagram-personal-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

Drop your creds in a .env:

cp .env.example .env
# edit: IG_USERNAME, IG_PASSWORD

Then run it:

instagram-personal-mcp

The first call (e.g. instagram_session_status or instagram_login) will authenticate and save a session file to ~/.config/instagram-personal-mcp/session.json. Subsequent runs reuse it.

Related MCP server: Instagram MCP Server

Connect to Claude Desktop

Edit ~/.config/Claude/claude_desktop_config.json (Linux) / ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "instagram-personal": {
      "command": "instagram-personal-mcp",
      "env": {
        "IG_USERNAME": "your_username",
        "IG_PASSWORD": "your_password"
      }
    }
  }
}

Restart Claude Desktop.

Tools

Auth

Tool

What it does

instagram_login

Log in. Pass verification_code if 2FA is on.

instagram_logout

Log out and delete the saved session.

instagram_session_status

Report whether a usable session is loaded.

Profile & read

Tool

What it does

instagram_get_my_profile

Profile of the logged-in account.

instagram_get_user_profile

Public profile of another user.

instagram_search_users

Search users by keyword.

instagram_get_user_posts

Recent posts by a user.

instagram_get_post

Details of a single post (URL or media pk).

instagram_get_post_comments

Comments on a post.

instagram_get_post_likers

Users who liked a post.

instagram_get_followers

List a user's followers.

instagram_get_following

List who a user follows.

instagram_get_timeline

Home feed.

instagram_get_user_stories

Active stories from a user.

Engagement

Tool

What it does

instagram_like_post

Like a post.

instagram_unlike_post

Unlike a post.

instagram_comment_on_post

Comment on a post.

instagram_follow_user

Follow a user.

instagram_unfollow_user

Unfollow a user.

instagram_save_post

Save a post to your collection.

instagram_unsave_post

Remove a post from your saved collection.

Direct messages

Tool

What it does

instagram_list_dm_threads

List DM threads.

instagram_get_dm_thread

Messages in a thread.

instagram_send_dm

Send a DM (comma-separated usernames for group).

2FA flow

  1. Call instagram_login (no code) — if 2FA is required you'll get {"error": true, "code": "2FA_REQUIRED", ...}.

  2. Get the code from your authenticator / SMS.

  3. Call instagram_login again with verification_code="123456".

Errors

Tools return structured errors instead of raising. Look for error: true and a machine-readable code:

  • NOT_LOGGED_IN — call instagram_login first.

  • LOGIN_REQUIRED — saved session was rejected; log in again.

  • 2FA_REQUIRED — call instagram_login again with verification_code.

  • CHALLENGE_REQUIRED — Instagram wants a security challenge solved; log in from the IG app / web once to clear it.

  • RATE_LIMITEDPleaseWaitFewMinutes from upstream; back off.

  • USER_NOT_FOUND / MEDIA_NOT_FOUND — bad input or removed content.

Development

pip install -e ".[dev]"
pytest

Why a separate project from instagram-mcp?

The sibling instagram-mcp wraps the official Instagram Graph API — Business/Creator accounts only, requires a Meta app and tokens, fully ToS-compliant. This project wraps the unofficial private API for personal accounts and carries the risks above. They're kept separate so the official one stays clean and reviewable.

License

MIT — see LICENSE.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    F
    maintenance
    An MCP server that integrates with Instagram's Graph API to enable AI-driven management of Instagram Business accounts. It provides tools for fetching profile data, publishing media, analyzing engagement metrics, and managing direct messages.
    165
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    An MCP server for the official Instagram Graph API, enabling read, publish, comment, and analytics across Instagram Business/Creator accounts.
    29
    MIT

View all related MCP servers

Related MCP Connectors

  • Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AleemHaider/instagram-personal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server