Back to MCP directory
publicPublicdnsLocal runtime

instagram_dm_mcp

这是一个Instagram私信MCP服务器项目,允许用户通过Claude等平台发送Instagram直接消息,包含多种消息管理功能,并举办黑客松比赛鼓励创新使用。

article

README

🚀 Instagram DM MCP服务器

这是一个用于发送Instagram直接消息的模型上下文协议(MCP)服务器。借助它,你可以从自己的账户发送Instagram直接消息(更多功能即将推出)。以下是它与Claude连接后的使用示例。

示例链接

要获取此项目及我们其他项目的更新信息,请在此输入你的电子邮件

附言:加入我们的Twitter社区,了解所有关于MCP的信息。

🚀 快速开始

黑客松提交

使用这个Instagram DM MCP构建任何项目(可以是技术性的、无代码或低代码的)并提交!没有限制,欢迎任何地方的任何人参与。

立即提交

注意:提交截止日期为太平洋标准时间6月27日星期五晚上11:59。

三项现金大奖等你来拿

  1. 5000美元 - 轰动网络(让项目疯狂传播)
  2. 2500美元 - 技术魔法(最酷的技术实现)
  3. 2500美元 - 惊叹大奖(让我们惊叹不已)

📦 安装指南

前提条件

  • Python 3.11+
  • Anthropic Claude桌面应用程序(或Cursor)
  • Pip(Python包管理器),使用python -m pip install进行安装
  • 一个Instagram账户

步骤

  1. 克隆此仓库
git clone https://github.com/trypeggy/instagram_dm_mcp.git
cd instagram_dm_mcp
  1. 安装依赖项
  • 使用uv(推荐):
uv sync
  • 使用Pip:
pip install -r requirements.txt
  1. 配置Instagram凭证 你有两种方式提供Instagram凭证: 选项A:环境变量(推荐) 快速设置(推荐): 运行辅助脚本:
python setup_env.py

这将交互式地提示你输入凭证,并安全地创建.env文件。 手动设置: 在项目根目录创建一个.env文件:

cp env.example .env

然后使用你实际的凭证编辑.env文件:

INSTAGRAM_USERNAME=your_instagram_username
INSTAGRAM_PASSWORD=your_instagram_password

选项B:命令行参数 你仍然可以通过命令行参数传递凭证(安全性较低)。 4. 连接到MCP服务器 对于Claude桌面应用程序: 将以下内容保存为claude_desktop_config.json,并放在Claude桌面应用程序的配置目录中:

~/Library/Application Support/Claude/claude_desktop_config.json

对于Cursor: 将以下内容保存为mcp.json,并放在Cursor的配置目录中:

~/.cursor/mcp.json

使用环境变量进行配置(推荐):

  • 使用uv
{
  "mcpServers": {
    "instagram_dms": {
        "command": "uv",
        "args": [
          "run",
          "--directory",
          "PATH/TO/instagram_dm_mcp",
          "python",
          "src/mcp_server.py"
        ]
     }
   }
 }
  • 使用Python
{
  "mcpServers": {
    "instagram_dms": {
      "command": "python",
      "args": [
        "{{PATH_TO_SRC}}/instagram_dm_mcp/src/ mcp_server.py"
      ]
    }
  }
}

使用命令行参数进行配置:

{
  "mcpServers": {
    "instagram_dms": {
      "command": "python",
      "args": [
        "{{PATH_TO_SRC}}/instagram_dm_mcp/src/mcp_server.py",
        "--username",
        "{{YOUR_INSTAGRAM_USERNAME}}",
        "--password",
        "{{YOUR_INSTAGRAM_PASSWORD}}"
      ]
    }
  }
}
  1. 重启Claude桌面应用程序 / Cursor 打开Claude桌面应用程序,你现在应该可以看到Instagram DM MCP作为可用的集成选项。或者重启Cursor。

💻 使用示例

以下是所有可用工具及其功能的列表: | 属性 | 详情 | |------|------| | send_message | 通过用户名向用户发送Instagram直接消息。 | | send_photo_message | 通过用户名向用户发送一张照片作为Instagram直接消息。 | | send_video_message | 通过用户名向用户发送一段视频作为Instagram直接消息。 | | list_chats | 从你的账户获取Instagram直接消息线程(聊天记录),可选择进行过滤或设置限制。 | | list_messages | 通过线程ID从特定的Instagram直接消息线程中获取消息。现在会显示每条消息的item_type和共享帖子/卷轴信息。可使用此信息确定要使用的下载工具。 | | download_media_from_message | 从直接消息中下载直接上传的照片或视频(不适用于共享帖子/卷轴/剪辑)。 | | download_shared_post_from_message | 从直接消息中共享的帖子、卷轴或剪辑中下载媒体(不适用于直接上传的内容)。 | | list_media_messages | 列出直接消息线程中包含直接上传媒体(照片/视频)的所有消息。 | | mark_message_seen | 将Instagram直接消息线程中的特定消息标记为已读。 | | list_pending_chats | 从你的待处理收件箱中获取Instagram直接消息线程。 | | search_threads | 通过用户名或关键词搜索Instagram直接消息线程。 | | get_thread_by_participants | 通过参与者用户ID获取Instagram直接消息线程。 | | get_thread_details | 通过线程ID获取特定Instagram直接消息线程的详细信息和消息。 | | get_user_id_from_username | 根据给定的用户名获取Instagram用户ID。 | | get_username_from_user_id | 根据给定的用户ID获取Instagram用户名。 | | get_user_info | 根据用户名获取特定Instagram用户的信息。 | | search_users | 通过用户名搜索Instagram用户。 | | get_user_stories | 根据用户名获取特定Instagram用户的近期故事。 | | like_media | 通过媒体ID对特定媒体帖子进行点赞或取消点赞。 | | get_user_followers | 根据用户名获取特定Instagram用户的关注者列表。 | | get_user_following | 根据用户名获取特定Instagram用户关注的用户列表。 | | get_user_posts | 根据用户名获取特定Instagram用户的近期帖子。 |

🔧 技术细节

Instagram登录挂起问题:服务器现在包含自动会话管理功能,以防止登录挂起。会话文件(例如username_session.json)会自动创建并重复使用,以在运行之间保持认证状态。

如需更多关于Claude桌面应用程序集成的故障排除信息,请参阅MCP文档。该文档包含检查日志和解决常见问题的有用提示。

📚 详细文档

反馈

我们非常感谢你的反馈。请告诉我们你希望接下来看到列表中的哪些功能,或者提出全新的功能请求。

📄 许可证

本项目采用MIT许可证。

许可证 Python

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client