Skip to main content
Glama
0XX7C00

mcp-instagram-dm

๐Ÿ“จ MCP Instagram DM

Control your Instagram DMs with AI

Read, send, search, and manage Instagram Direct Messages through natural language with any MCP-compatible AI assistant.

npm version npm downloads GitHub stars

CI License: MIT Node.js TypeScript MCP

A Model Context Protocol server that bridges Instagram Direct Messages with AI assistants like Claude, Cursor, and any MCP-compatible client.

Cookie-based authentication โ€” no API keys, no OAuth, just works.

Getting Started ยท Features ยท Configuration ยท Tools Reference ยท Contributing

๐Ÿ’ก If you find this useful, please consider giving it a โญ โ€” it helps others discover the project!


โšก Getting Started

Get up and running in under 60 seconds:

1. Add to your MCP config (Claude Desktop, Claude Code, or Cursor):

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["-y", "mcp-instagram-dm"],
      "env": {
        "INSTAGRAM_SESSION_ID": "your_session_id",
        "INSTAGRAM_CSRF_TOKEN": "your_csrf_token",
        "INSTAGRAM_DS_USER_ID": "your_user_id"
      }
    }
  }
}

2. Talk to your AI assistant:

"Read my Instagram DMs"

That's it โ€” you're ready. ๐ŸŽ‰

Need help getting your cookies? See Configuration below.

Related MCP server: Instagram MCP Server

๐ŸŽฌ What It Looks Like

You:    "Show me my unread Instagram DMs"
Claude: Fetching your inbox...

        ๐Ÿ“ฌ Inbox (3 conversations)

        [UNREAD] john_doe (thread_id: 340282366841710300...)
          Last: [2026-03-29 14:23:01] john_doe: Hey, are you free tonight?

        [UNREAD] [GROUP] project_team (thread_id: 340282366841710301...)
          Last: [2026-03-29 13:45:22] alice: Meeting moved to 3pm

        jane_smith (thread_id: 340282366841710302...)
          Last: [2026-03-29 10:12:45] You: Thanks! See you then

You:    "Reply to john_doe: Yeah, let's meet at 7!"
Claude: โœ… Message sent: "Yeah, let's meet at 7!"

โœจ Features

15 tools across three categories โ€” everything you need to manage your Instagram DMs:

๐Ÿ“ฅ Read & Monitor

Tool

Description

instagram_get_inbox

List recent DM conversations with unread/group/muted indicators

instagram_get_thread

Get messages from a conversation (auto-paginates โ€” fetch 500+ messages at once)

instagram_get_pending

List pending DM requests waiting for your approval

instagram_user_info

Get any user's profile: bio, followers, posts, verification

instagram_thread_info

Thread metadata: participants, group info, mute/archive status

โœ๏ธ Send & Manage

Tool

Description

instagram_send_message

Send a text message in any thread

instagram_send_link

Share a URL with optional caption

instagram_create_thread

Start a new DM with one or multiple users

instagram_like_message

React to any message with any emoji

instagram_unsend_message

Unsend your own messages

instagram_mark_seen

Mark a conversation as read

instagram_approve_pending

Approve a pending DM request

๐Ÿ” Search & Discover

Tool

Description

instagram_search_inbox

Search conversations by username or name (scans all pages)

instagram_search_messages

Find messages containing specific text within a thread

instagram_search_users

Search Instagram users to start new conversations

๐Ÿ“ฆ Installation

npx mcp-instagram-dm

npm global

npm install -g mcp-instagram-dm
mcp-instagram-dm

From source

git clone https://github.com/KynuxDev/mcp-instagram-dm.git
cd mcp-instagram-dm
npm install && npm run build
node dist/index.js

๐Ÿ”ง Configuration

Getting Your Cookies

  1. Open instagram.com in Chrome and log in

  2. Press F12 โ†’ Application tab โ†’ Cookies โ†’ https://www.instagram.com

  3. Copy these three values:

Cookie Name

Environment Variable

Description

sessionid

INSTAGRAM_SESSION_ID

Your session token

csrftoken

INSTAGRAM_CSRF_TOKEN

CSRF protection token

ds_user_id

INSTAGRAM_DS_USER_ID

Your numeric user ID

๐Ÿ’ก Tip: You can also run node get-cookies.js for a guided walkthrough.

Environment Variables

Variable

Required

Default

Description

INSTAGRAM_SESSION_ID

โœ…

โ€”

Your Instagram session cookie

INSTAGRAM_CSRF_TOKEN

โœ…

โ€”

CSRF token from cookies

INSTAGRAM_DS_USER_ID

โœ…

โ€”

Your numeric user ID

INSTAGRAM_RATE_LIMIT_MS

โ€”

300

Delay between paginated API requests (ms)

Client Setup

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["-y", "mcp-instagram-dm"],
      "env": {
        "INSTAGRAM_SESSION_ID": "your_session_id",
        "INSTAGRAM_CSRF_TOKEN": "your_csrf_token",
        "INSTAGRAM_DS_USER_ID": "your_user_id"
      }
    }
  }
}

Add to your project's .mcp.json:

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["-y", "mcp-instagram-dm"],
      "env": {
        "INSTAGRAM_SESSION_ID": "your_session_id",
        "INSTAGRAM_CSRF_TOKEN": "your_csrf_token",
        "INSTAGRAM_DS_USER_ID": "your_user_id"
      }
    }
  }
}

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["-y", "mcp-instagram-dm"],
      "env": {
        "INSTAGRAM_SESSION_ID": "your_session_id",
        "INSTAGRAM_CSRF_TOKEN": "your_csrf_token",
        "INSTAGRAM_DS_USER_ID": "your_user_id"
      }
    }
  }
}

๐Ÿ’ฌ Usage Examples

Just talk naturally to your AI assistant:

What you say

What happens

"Read my unread Instagram DMs"

Fetches inbox with unread indicators

"Send 'Hey!' to @username"

Finds the thread and sends the message

"Search my DMs for messages about 'meeting'"

Scans thread messages for the keyword

"Start a new conversation with @johndoe"

Creates a new thread and sends your message

"Show me pending DM requests and approve them"

Lists and approves pending requests

"What's @user's profile info?"

Fetches full profile details

"Get the last 200 messages with @friend"

Auto-paginates to fetch all messages

"React with ๐Ÿ”ฅ to the last message"

Sends emoji reaction to any message

๐Ÿ“– Tools Reference

Tool

Description

Parameters

instagram_get_inbox

List DM conversations

limit?, cursor?

instagram_get_thread

Get thread messages (auto-paginates)

thread_id, limit?, cursor?

instagram_get_pending

List pending requests

limit?, cursor?

instagram_user_info

Get user profile

user_id

instagram_thread_info

Get thread details

thread_id

instagram_send_message

Send text message

thread_id, text

instagram_send_link

Share a URL

thread_id, url, text?

instagram_create_thread

Start new DM

recipient_ids[], text

instagram_like_message

React with emoji

thread_id, item_id, emoji?

instagram_unsend_message

Unsend a message

thread_id, item_id

instagram_mark_seen

Mark as read

thread_id, item_id

instagram_approve_pending

Approve request

thread_id

instagram_search_inbox

Search conversations

query, max_pages?

instagram_search_messages

Search within thread

thread_id, query, max_messages?

instagram_search_users

Find users

query

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     MCP (stdio)     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   AI Assistant       โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚   MCP Server          โ”‚
โ”‚   (Claude, Cursor)   โ”‚                     โ”‚   src/index.ts        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                     โ”‚   15 tools            โ”‚
                                             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                        โ”‚
                                             โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                             โ”‚   Instagram Client    โ”‚
                                             โ”‚   src/instagram.ts    โ”‚
                                             โ”‚   Cookie auth + HTTP  โ”‚
                                             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                        โ”‚
                                             โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                             โ”‚   Instagram Web API   โ”‚
                                             โ”‚   (Private endpoints) โ”‚
                                             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Design principles:

  • Single dependency โ€” only @modelcontextprotocol/sdk. No axios, no puppeteer, no bloat.

  • TypeScript strict โ€” zero any types, fully typed interfaces in src/types.ts

  • Auto-pagination โ€” request 500 messages and the server handles the rest with rate limiting

  • 14+ message types โ€” text, media, voice, reels, links, clips, GIFs, posts, stories, and more

๐Ÿ”’ Security

  • Session cookies are never logged or stored beyond runtime

  • All credentials are read from environment variables only

  • No data is sent to any third-party service

  • See SECURITY.md for reporting vulnerabilities

โš ๏ธ Disclaimer

This project uses Instagram's unofficial web API, which may change without notice.

  • Personal use only โ€” do not use for spam, mass messaging, or automation that violates Instagram's Terms of Service

  • Your session cookies are sensitive credentials โ€” never share or commit them

  • This project is not affiliated with, endorsed by, or connected to Meta or Instagram

  • Use at your own risk โ€” the authors are not responsible for any account restrictions

๐Ÿค Contributing

Contributions are welcome! Please see CONTRIBUTING.md for development setup and guidelines.

If you'd like to support the project financially, consider sponsoring on GitHub.

๐Ÿ“„ License

MIT โ€” Made with โค๏ธ by Kynux


If this project helped you, consider giving it a โญ

Report Bug ยท Request Feature ยท Contribute

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

Maintenance

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

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    Enables AI assistants to read, send, and manage Instagram direct messages, including viewing conversations, sending DMs to users, reacting to messages, and searching for users by username.
    Last updated
    9
  • 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.
    Last updated
    163
    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.

  • MCP server for LeadDelta โ€” manage LinkedIn connections and CRM data via AI assistants.

  • 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/0XX7C00/mcp-instagram-dm'

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