README
🚀 Instagram DM MCP服务器
这是一个用于发送Instagram直接消息的模型上下文协议(MCP)服务器。借助它,你可以从自己的账户发送Instagram直接消息(更多功能即将推出)。以下是它与Claude连接后的使用示例。
要获取此项目及我们其他项目的更新信息,请在此输入你的电子邮件
附言:加入我们的Twitter社区,了解所有关于MCP的信息。
🚀 快速开始
黑客松提交
使用这个Instagram DM MCP构建任何项目(可以是技术性的、无代码或低代码的)并提交!没有限制,欢迎任何地方的任何人参与。
注意:提交截止日期为太平洋标准时间6月27日星期五晚上11:59。
三项现金大奖等你来拿
- 5000美元 - 轰动网络(让项目疯狂传播)
- 2500美元 - 技术魔法(最酷的技术实现)
- 2500美元 - 惊叹大奖(让我们惊叹不已)
📦 安装指南
前提条件
- Python 3.11+
- Anthropic Claude桌面应用程序(或Cursor)
- Pip(Python包管理器),使用
python -m pip install进行安装 - 一个Instagram账户
步骤
- 克隆此仓库
git clone https://github.com/trypeggy/instagram_dm_mcp.git
cd instagram_dm_mcp
- 安装依赖项
- 使用uv(推荐):
uv sync
- 使用Pip:
pip install -r requirements.txt
- 配置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}}"
]
}
}
}
- 重启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许可证。
Scan to contact