home / mcp / insta mcp server

Insta MCP Server

Provides Instagram data access and actions via MCP including account management, messaging, content posting, and insights.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "arjun1194-insta-mcp": {
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/insta-mcp/dist/index.js"
      ],
      "env": {
        "INSTA_DATA_DIR": "./data",
        "INSTAGRAM_PASSWORD": "your_password",
        "INSTAGRAM_USERNAME": "your_username"
      }
    }
  }
}

You can run an Instagram MCP Server locally to programmatically manage accounts, analyze insights, post content, and interact with DMs, all through an MCP client. This server exposes a rich set of capabilities that you can drive from your interface or companion AI to streamline social media tasks.

How to use

Connect an MCP client to the local Instagram MCP Server to access account management, content creation, messaging, and discovery features. You will run the server locally and point your client to the provided runtime, then configure your client to supply your Instagram credentials through environment variables or a credentials file. The client will invoke tools such as viewing your profile, posting photos or videos, reading message threads, and analyzing post performance.

To integrate with a client like Claude Desktop, configure the MCP endpoint as a local stdio server. You will start the server with Node and point the client to the runtime entry file, passing your credentials via environment variables. This lets your client securely issue commands like get_account_overview, upload_photo, get_inbox, and get_post_insights.

Example client configuration (Claude Desktop) to connect to a local Instagram MCP Server. Use an absolute path to the built runtime and supply credentials through environment variables.

{
  "mcpServers": {
    "instagram": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/insta-mcp/dist/index.js"],
      "env": {
        "INSTAGRAM_USERNAME": "your_username",
        "INSTAGRAM_PASSWORD": "your_password",
        "INSTA_DATA_DIR": "./data"
      }
    }
  }
}

How to install

Prerequisites ensure Node.js is installed on your system and you have an Instagram account to test with.

Step-by-step commands to set up the server locally.

# Clone the MCP Instagram server repository
git clone https://github.com/your-repo/insta-mcp.git
cd insta-mcp

# Install dependencies
npm install

# Build the project for runtime
npm run build

Configuration and environment

You configure credentials and data storage either via environment variables or a local credentials file.

Environment variables you may set directly in your shell or in a local .env file.

Environment variables shown in typical local usage include the following:

# As a shell export or in a .env file
INSTAGRAM_USERNAME=your_user
INSTAGRAM_PASSWORD=your_pass
INSTA_DATA_DIR=./data

Security & ethics

Operate with care and comply with platform terms. Use throttling to avoid excessive requests and protect user data.

Available tools

get_account_overview

Fetch profile statistics such as followers, following, bio, and other basic details.

get_activity

Retrieve notifications including likes and follows to understand engagement.

edit_profile

Update profile fields like name, bio, website, and email.

block_user

Block a specific user from your account.

set_privacy

Switch between Private and Public account visibility.

get_followers

List a user’s followers.

get_following

List the accounts followed by a user.

compare_follow_lists

Identify unfollowers or superfans by comparing lists.

follow_user

Follow a user; unfollow_user to stop following.

unfollow_user

Unfollow a user you are currently following.

get_recent_posts

View the latest posts from a specific user.

get_post_insights

Get detailed metrics for a post (likes, comments, viewers).

upload_photo

Post a photo to your feed.

upload_video

Post a video to your feed.

upload_reel

Post a Reel to your feed.

upload_album

Post a carousel with multiple media items.

search_locations

Find locations to tag in posts.

like_post

Like a post to show engagement.

add_comment

Add a comment to a post.

reply_to_comment

Reply to an existing comment on a post.

get_inbox

View recent direct message threads.

get_direct_messages

Fetch message history for a specific thread.

send_direct_message

Send a direct message to users or groups.

react_to_message

Add reactions to messages.

get_pending_requests

Manage pending DM requests.

mute_thread

Mute a direct message thread.

leave_thread

Leave a direct message thread.

search_instagram

Search for users, tags, or places.

get_timeline

Retrieve your main home feed.

get_discover

Access the explore page feed.

get_saved_posts

Fetch your bookmarked collections.

get_liked_posts

Review posts you have liked.

get_tag_feed

Get recent posts for a hashtag.

get_stories

View active stories from tray or a specific user.

get_highlights

Access a user’s story highlights.