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 分