Instagram Direct Messages について
Instagram Direct Messages は、利用者自身のアカウントから Instagram のダイレクトメッセージを送信する MCP サーバーです。Claude Desktop や Cursor から Instagram の DM を操作したい利用者を想定しています。
主な機能
- 01ユーザー名を指定したテキスト DM の送信
- 02写真・動画の DM 送信
- 03DM スレッドとメッセージの一覧表示
- 04DM 内メディアのダウンロード
- 05ユーザー・スレッド・フォロー関係の検索
活用シーン
- 01AI クライアントから特定のユーザーへ DM を送信する
- 02DM で受け取った写真や動画を取得する
- 03ユーザーのプロフィール、フォロワー、フォロー一覧を確認する
MCP 対応
本プロジェクトは MCP サーバーであり、Instagram DM、ユーザー検索、メディア取得の操作をツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Instagram DM MCP サーバー
これは、Instagram のダイレクトメッセージを送信するための Model Context Protocol(MCP)サーバーです。
このサーバーを使うと、ご自身のアカウントから Instagram のダイレクトメッセージを送信できます(今後、機能を追加する予定です)。
Claude に接続するとできることの例を紹介します。
https://github.com/user-attachments/assets/9c945f25-4484-4223-8d6b-5bf31243464c
このプロジェクトや、取り組んでいる他のプロジェクトの最新情報を受け取るには、こちらにメールアドレスを入力してください
インストール
前提条件
- Python 3.11+
- Anthropic Claude Desktop アプリ(または 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 の認証情報を指定する方法は 2 つあります。
オプション A:環境変数(推奨)
クイックセットアップ(推奨):
ヘルパースクリプトを実行します。
python setup_env.py認証情報を対話形式で入力するよう求められ、安全に
.envファイルが作成されます。手動セットアップ:
プロジェクトのルートに
.envファイルを作成します。cp env.example .env次に、
.envを実際の認証情報に置き換えて編集します。INSTAGRAM_USERNAME=your_instagram_username INSTAGRAM_PASSWORD=your_instagram_passwordオプション B:コマンドライン引数
コマンドライン引数として認証情報を渡すこともできます(安全性は低くなります)。
-
MCP サーバーに接続する
Claude Desktop の場合:
claude_desktop_config.jsonとして、Claude Desktop の設定ディレクトリ内の次の場所に保存します。~/Library/Application Support/Claude/claude_desktop_config.jsonCursor の場合:
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 Desktop / Cursor を再起動する
Claude Desktop を開くと、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 | DM メッセージに直接アップロードされた写真または動画をダウンロードします(共有投稿/リール/クリップには使用しません)。 |
download_shared_post_from_message | DM メッセージで共有された投稿、リール、またはクリップからメディアをダウンロードします(直接アップロードされたメディアには使用しません)。 |
list_media_messages | DM スレッド内で、直接アップロードされたメディア(写真/動画)を含むすべてのメッセージを一覧表示します。 |
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 Desktop との連携に関するその他のトラブルシューティングについては、MCP のドキュメントをご覧ください。ログの確認方法や、よくある問題の解決に役立つヒントが記載されています。
フィードバック
皆さまからのフィードバックを心よりお待ちしています。次に追加してほしい機能や、新しい機能のご要望がありましたら、ぜひお知らせください。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。