📨 MCP Instagram DM
使用AI控制您的Instagram DM
使用任何兼容MCP的AI助手,通过自然语言阅读、发送、搜索和管理Instagram私信。
](https://www.npmjs.com/package/mcp-instagram-dm) ](https://www.npmjs.com/package/mcp-instagram-dm) ](https://github.com/KynuxDev/mcp-instagram-dm/stargazers)
  ](https://nodejs.org/)  
A. 模型上下文协议 将Instagram私信与AI助手连接起来的服务器,如 克劳德, 光标,以及任何兼容MCP的客户端。
基于Cookie的身份验证-没有API密钥,没有OAuth,只起作用。
💡 如果你觉得这很有用,请考虑给它一个⭐ — 它可以帮助其他人发现这个项目!
______________________________________________________________________
⚡ 入门指南
起床跑步 60秒以下:
1.添加到MCP配置中 (克劳德桌面、克劳德代码或光标):
{
"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.与您的AI助手交谈:
*“阅读我的Instagram DM”*
好了,你准备好了。 🎉
需要帮忙拿饼干吗?看 配置 在......下面
🎬 它看起来像什么
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!"✨ 特性
15工具 分为三类——管理Instagram DM所需的一切:
📥 读取和监视
| 工具 | 说明 |
|---|---|
instagram_get_inbox | 列出最近有未读/组/静音指示的DM对话 |
instagram_get_thread | 从对话中获取消息(自动分页——一次获取500多条消息) |
instagram_get_pending | 列出等待您批准的待处理DM请求 |
instagram_user_info | 获取任何用户的个人资料:个人简介、关注者、帖子、验证 |
instagram_thread_info | 线程元数据:参与者、组信息、静音/存档状态 |
✏️ 发送和管理
| 工具 | 说明 |
|---|---|
instagram_send_message | 在任何线程中发送短信 |
instagram_send_link | 共享带有可选标题的URL |
instagram_create_thread | 与一个或多个用户启动新的DM |
instagram_like_message | 使用任何表情符号回复任何消息 |
instagram_unsend_message | 取消发送自己的消息 |
instagram_mark_seen | 将对话标记为已读 |
instagram_approve_pending | 批准待处理的DM请求 |
🔍 寻找与发现
| 工具 | 说明 |
|---|---|
instagram_search_inbox | 按用户名或姓名搜索对话(扫描所有页面) |
instagram_search_messages | 查找线程中包含特定文本的消息 |
instagram_search_users | 搜索Instagram用户以开始新的对话 |
📦 安装
npx(推荐--零安装)
npx mcp-instagram-dmnpm全局
npm install -g mcp-instagram-dm
mcp-instagram-dm来源
git clone https://github.com/KynuxDev/mcp-instagram-dm.git
cd mcp-instagram-dm
npm install && npm run build
node dist/index.js🔧 配置
获取您的Cookie
- 打开 instagram.com 在Chrome浏览器中登录
- 按
F12→ 应用 tab → Cookie →https://www.instagram.com - 复制这三个值:
| Cookie名称 | 环境变量 | 描述 |
|---|---|---|
sessionid | INSTAGRAM_SESSION_ID | 您的会话令牌 |
csrftoken | INSTAGRAM_CSRF_TOKEN | CSRF保护令牌 |
ds_user_id | INSTAGRAM_DS_USER_ID | 您的数字用户ID |
💡 提示: 你也可以跑步 node get-cookies.js 进行引导式演练。环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
INSTAGRAM_SESSION_ID | ✅ | — | 您的Instagram会话cookie |
INSTAGRAM_CSRF_TOKEN | ✅ | — | 来自Cookie的CSRF令牌 |
INSTAGRAM_DS_USER_ID | ✅ | — | 您的数字用户ID |
INSTAGRAM_RATE_LIMIT_MS | — | 300 | 已分页的API请求之间的延迟(ms) |
客户端设置
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %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"
}
}
}
}Claude Code
添加到您的项目 .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"
}
}
}
}Cursor
添加 .cursor/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"
}
}
}
}💬 用法示例
只需与您的AI助手自然对话:
| 你说什么 | 会发生什么 |
|---|---|
| *“阅读我未读的Instagram DM”* | 获取带有未读指示符的收件箱 |
| *“向@username发送‘嘿!’”* | 查找线程并发送消息 |
| *“在我的DM中搜索有关“会议”的消息”* | 扫描线程消息中的关键字 |
| *“与@johndoe开始新的对话”* | 创建新线程并发送您的消息 |
| *“显示待处理的DM请求并批准它们”* | 列出并批准待处理的请求 |
| *“@user的个人资料信息是什么?”* | 获取完整的个人资料详细信息 |
| *“获取@friend的最后200条消息”* | 自动分页以获取所有消息 |
| *“反应🔥 到最后一条消息”* | 向任何消息发送表情符号反应 |
📖 工具参考
View all 15 tools with parameters
| 工具 | 说明 | 参数 |
|---|---|---|
instagram_get_inbox | 列出DM对话 | limit?, cursor? |
instagram_get_thread | 获取线程消息(自动分页) | thread_id, limit?, cursor? |
instagram_get_pending | 列出待处理的请求 | limit?, cursor? |
instagram_user_info | 获取用户资料 | user_id |
instagram_thread_info | 获取线程详细信息 | thread_id |
instagram_send_message | 发送短信 | thread_id, text |
instagram_send_link | 共享URL | thread_id, url, text? |
instagram_create_thread | 启动新DM | recipient_ids[], text |
instagram_like_message | 用表情符号做出反应 | thread_id, item_id, emoji? |
instagram_unsend_message | 取消发送消息 | thread_id, item_id |
instagram_mark_seen | 标记为已读 | thread_id, item_id |
instagram_approve_pending | 批准请求 | thread_id |
instagram_search_inbox | 搜索对话 | query, max_pages? |
instagram_search_messages | 在线程内搜索 | thread_id, query, max_messages? |
instagram_search_users | 查找用户 | query |
🏗️ 建筑
┌─────────────────────┐ 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) │
└──────────────────────┘设计原则:
- 单一依赖关系 --只有
@modelcontextprotocol/sdk没有斧头,没有木偶师,没有臃肿。 - TypeScript严格 --零
any类型,全类型接口src/types.ts - 自动分页 --请求500条消息,服务器以速率限制处理其余消息
- 14+消息类型 --文本、媒体、语音、卷轴、链接、剪辑、GIF、帖子、故事等
🔒 安全
- 会话Cookie是 从未记录或存储 超出运行时间
- 所有凭据仅从环境变量中读取
- 不向任何第三方服务发送数据
- 看 安全.md 用于报告漏洞
⚠️ 免责声明
该项目使用Instagram的 非官方的 网页API,可能会在不另行通知的情况下更改。
- 仅限个人使用 --请勿用于垃圾邮件、群发消息或违反Instagram的自动化 服务条款
- 您的会话Cookie是敏感凭据-- 永远不要分享或承诺
- 这个项目是 不隶属于、不受Meta或Instagram认可或与Meta或Instagram无关
- 使用风险自负——作者不对任何帐户限制负责
🤝 贡献
欢迎投稿!请看 贡献.md 用于开发设置和指南。
如果你想在财务上支持这个项目,可以考虑 .
📄 许可证
______________________________________________________________________
如果这个项目对你有帮助,考虑给它一个⭐
