Instagram DM Server for AI Assistants について
Instagram DM Server for AI Assistantsは、MCP対応AIアシスタントから自然言語でInstagramのDMを管理できます。Cookie認証を使い、受信箱の閲覧、送信、検索、スレッド管理に対応します。
主な機能
- 01受信箱とメッセージスレッドの表示
- 02テキストとリンクの送信
- 03スレッド、メッセージ、ユーザーの検索
- 04リクエスト、既読状態、リアクションの管理
- 05メッセージ取得の自動ページング
活用シーン
- 01未読DMと保留中のリクエストの確認
- 02会話内のキーワード検索
- 03ユーザーへのメッセージやリンクの送信
MCP 対応
MCP サーバーとして、互換クライアントに15個のツールを通じてInstagram DMの閲覧、送信、検索、管理機能を公開します。認証情報は環境変数で渡します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
📨 MCP Instagram DM
AI で Instagram の DM を操作
MCP 対応の AI アシスタントを使って、自然言語で Instagram ダイレクトメッセージを読んだり、送信、検索、管理したりできます。
Model Context Protocol サーバーです。Instagram ダイレクトメッセージと、Claude、Cursor などの AI アシスタントや、MCP 対応クライアントを連携します。
Cookie ベースの認証で、API キーも OAuth も不要です。すぐに使えます。
はじめに · 機能 · 設定 · ツールリファレンス · 貢献
💡 役に立った場合は、ぜひ ⭐ を付けてください。ほかの人がこのプロジェクトを見つけやすくなります!
⚡ はじめに
60 秒以内で使い始められます。
1. MCP の設定に追加します(Claude Desktop、Claude Code、または Cursor):
{
"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 を読んで」
これで準備完了です。🎉
Cookie の取得方法については、以下の設定をご覧ください。
🎬 使用イメージ
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!"
✨ 機能
3 つのカテゴリにわたる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 | 1 人または複数のユーザーとの新しい 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-dm
npm グローバルインストール
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 の取得
- Chrome で instagram.com を開いてログインします
F12を押し、Application タブ → Cookies →https://www.instagram.comの順に開きます- 次の 3 つの値をコピーします:
| 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 リクエスト間の遅延(ミリ秒) |
クライアントのセットアップ
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 に『Hey!』を送って」 | スレッドを見つけてメッセージを送信します |
| 「『meeting』に関するメッセージを DM から検索して」 | スレッド内のメッセージをキーワードで検索します |
| 「@johndoe との新しい会話を始めて」 | 新しいスレッドを作成してメッセージを送信します |
| 「保留中の DM リクエストを表示して承認して」 | 保留中のリクエストを一覧表示して承認します |
| 「@user のプロフィール情報は?」 | プロフィールの詳細を取得します |
| 「@friend との直近 200 件のメッセージを取得して」 | ページネーションを自動で行い、すべてのメッセージを取得します |
| 「最後のメッセージに 🔥 でリアクションして」 | 任意のメッセージに絵文字でリアクションします |
📖 ツールリファレンス
パラメーター付きの全 15 ツールを表示
| ツール | 説明 | パラメーター |
|---|---|---|
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) │
└──────────────────────┘
設計原則:
- 依存関係は 1 つのみ —
@modelcontextprotocol/sdkのみを使用します。axios も puppeteer もなく、余計なものはありません。 - TypeScript の厳格モード —
any型はゼロで、src/types.tsのインターフェースは完全に型付けされています - ページネーションの自動処理 — 500 件のメッセージをリクエストすると、サーバーがレート制限を適用しながら残りを処理します
- 14 種類以上のメッセージタイプ — テキスト、メディア、音声、リール、リンク、クリップ、GIF、投稿、ストーリーなど
🔒 セキュリティ
- セッション Cookie がランタイム終了後にログへ記録されたり、保存されたりすることはありません
- すべての認証情報は環境変数からのみ読み込まれます
- データがサードパーティのサービスに送信されることはありません
- 脆弱性の報告については、SECURITY.md をご覧ください
⚠️ 免責事項
このプロジェクトでは Instagram の非公式ウェブ API を使用しているため、予告なく変更される場合があります。
- 個人利用のみ — スパム、大量メッセージ送信、または Instagram の利用規約に違反する自動化には使用しないでください
- セッション Cookie は機密性の高い認証情報です — 決して共有したり、コミットしたりしないでください
- このプロジェクトは Meta または Instagram とは提携、承認、関係していません
- ご自身の責任でご利用ください — アカウント制限について、作者は一切責任を負いません
🤝 コントリビューション
コントリビューションを歓迎します!開発環境のセットアップとガイドラインについては、CONTRIBUTING.md をご覧ください。
プロジェクトを金銭的に支援したい場合は、GitHub でスポンサーになることをご検討ください。
📄 ライセンス
このプロジェクトがお役に立った場合は、⭐ を付けていただけると幸いです
バグを報告 · 機能をリクエスト · コントリビューション
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。