Mcp Instagram Dm

io.github.KynuxDev由 GitHub 帳號 KynuxDev 發布v2.1.1更新於 Oct 24, 2026

Read, send, search & manage Instagram DMs through AI assistants. 15 tools, cookie auth.

已驗證STDIO僅桌面效率與工作流溝通與協作

概覽

AI 產生的概覽

讓助手使用你自己的工作階段 Cookie 讀取、搜尋、傳送及管理 Instagram 私訊。

可以做什麼
透過 15 個工具,把支援 MCP 的助手連接到 Instagram 的私有網頁 API。讀取類工具可列出收件匣、自動分頁抓取對話訊息、查看待處理的私訊要求,以及取得使用者或對話詳細資料。寫入類工具可傳送文字或連結、建立新對話、以表情符號回應、收回自己傳送的訊息、標記已讀並核准待處理要求。搜尋類工具可尋找對話、對話內的訊息及使用者。
適用情境
適合想在桌面助理中以自然語言查看、搜尋或回覆 Instagram 私訊,而不想開啟應用程式的人。最適合個人、低頻率使用,且願意自行管理工作階段 Cookie 的使用者。
執行需求
以 stdio 方式在本機執行,通常透過 npx mcp-instagram-dm 啟動,因此需要 Node.js。需要從已登入的 Instagram 瀏覽器工作階段取得三個環境變數:INSTAGRAM_SESSION_ID、INSTAGRAM_CSRF_TOKEN 和 INSTAGRAM_DS_USER_ID。選用的 INSTAGRAM_RATE_LIMIT_MS 可控制分頁請求間隔。僅支援桌面用戶端,且需要連線到 Instagram 的網路。
安裝前請注意
它會要求提供有效的 Instagram 工作階段 Cookie(INSTAGRAM_SESSION_ID、INSTAGRAM_CSRF_TOKEN、INSTAGRAM_DS_USER_ID),這些憑證可完整存取帳號,絕不可分享或提交到版本庫。相關工具會傳送訊息、建立對話、加入回應、收回訊息並核准要求,助手可據此操作你的帳號。它使用 Instagram 非官方網頁 API,可能隨時失效,濫用還可能導致帳號受限;專案聲明僅供個人使用。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mcp Instagram Dm,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

📨 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):

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"      }    }  }}

2. Talk to your AI assistant:

"Read my Instagram DMs"

That's it — you're ready. 🎉

Need help getting your cookies? See Configuration below.

🎬 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

ToolDescription
instagram_get_inboxList recent DM conversations with unread/group/muted indicators
instagram_get_threadGet messages from a conversation (auto-paginates — fetch 500+ messages at once)
instagram_get_pendingList pending DM requests waiting for your approval
instagram_user_infoGet any user's profile: bio, followers, posts, verification
instagram_thread_infoThread metadata: participants, group info, mute/archive status

✏️ Send & Manage

ToolDescription
instagram_send_messageSend a text message in any thread
instagram_send_linkShare a URL with optional caption
instagram_create_threadStart a new DM with one or multiple users
instagram_like_messageReact to any message with any emoji
instagram_unsend_messageUnsend your own messages
instagram_mark_seenMark a conversation as read
instagram_approve_pendingApprove a pending DM request

🔍 Search & Discover

ToolDescription
instagram_search_inboxSearch conversations by username or name (scans all pages)
instagram_search_messagesFind messages containing specific text within a thread
instagram_search_usersSearch Instagram users to start new conversations

📦 Installation

npx (recommended — zero install)

bash
npx mcp-instagram-dm

npm global

bash
npm install -g mcp-instagram-dmmcp-instagram-dm

From source

bash
git clone https://github.com/KynuxDev/mcp-instagram-dm.gitcd mcp-instagram-dmnpm install && npm run buildnode 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 NameEnvironment VariableDescription
sessionidINSTAGRAM_SESSION_IDYour session token
csrftokenINSTAGRAM_CSRF_TOKENCSRF protection token
ds_user_idINSTAGRAM_DS_USER_IDYour numeric user ID

💡 Tip: You can also run node get-cookies.js for a guided walkthrough.

Environment Variables

VariableRequiredDefaultDescription
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—300Delay between paginated API requests (ms)

Client Setup

Claude Desktop

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

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"      }    }  }}
Claude Code

Add to your project's .mcp.json:

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"      }    }  }}
Cursor

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

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"      }    }  }}

💬 Usage Examples

Just talk naturally to your AI assistant:

What you sayWhat 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

View all 15 tools with parameters
ToolDescriptionParameters
instagram_get_inboxList DM conversationslimit?, cursor?
instagram_get_threadGet thread messages (auto-paginates)thread_id, limit?, cursor?
instagram_get_pendingList pending requestslimit?, cursor?
instagram_user_infoGet user profileuser_id
instagram_thread_infoGet thread detailsthread_id
instagram_send_messageSend text messagethread_id, text
instagram_send_linkShare a URLthread_id, url, text?
instagram_create_threadStart new DMrecipient_ids[], text
instagram_like_messageReact with emojithread_id, item_id, emoji?
instagram_unsend_messageUnsend a messagethread_id, item_id
instagram_mark_seenMark as readthread_id, item_id
instagram_approve_pendingApprove requestthread_id
instagram_search_inboxSearch conversationsquery, max_pages?
instagram_search_messagesSearch within threadthread_id, query, max_messages?
instagram_search_usersFind usersquery

🏗️ 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

來源:README.md,提交 6e435f1

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分