mcp-instagram-dm

Lee, envía, busca y gestiona mensajes directos de Instagram a través de asistentes de IA mediante MCP. 15 herramientas, autenticación basada en cookies, dependencia única.

Documentación

📨 MCP Instagram DM

Controla tus DMs de Instagram con IA

Lee, envía, busca y gestiona mensajes directos de Instagram mediante lenguaje natural con cualquier asistente de IA compatible con MCP.

npm version npm downloads GitHub stars

CI License: MIT Node.js TypeScript MCP


Un servidor de Model Context Protocol que conecta los mensajes directos de Instagram con asistentes de IA como Claude, Cursor y cualquier cliente compatible con MCP.

Autenticación basada en cookies: sin claves API, sin OAuth, simplemente funciona.


Primeros pasos · Características · Configuración · Referencia de herramientas · Contribuciones


💡 Si te resulta útil, considera darle una ⭐: ¡ayuda a que otros descubran el proyecto!


⚡ Primeros pasos

Ponte en marcha en menos de 60 segundos:

1. Añádelo a tu configuración de MCP (Claude Desktop, Claude Code o 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. Habla con tu asistente de IA:

"Lee mis DMs de Instagram"

Eso es todo: estás listo. 🎉

¿Necesitas ayuda para obtener tus cookies? Consulta Configuración más abajo.

🎬 Cómo se ve

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!"

✨ Características

15 herramientas en tres categorías: todo lo que necesitas para gestionar tus DMs de Instagram:

📥 Leer y supervisar

HerramientaDescripción
instagram_get_inboxLista las conversaciones de DM recientes con indicadores de no leídos/grupo/silenciados
instagram_get_threadObtén mensajes de una conversación (auto-paginación: recupera más de 500 mensajes de una vez)
instagram_get_pendingLista las solicitudes de DM pendientes que esperan tu aprobación
instagram_user_infoObtén el perfil de cualquier usuario: biografía, seguidores, publicaciones, verificación
instagram_thread_infoMetadatos del hilo: participantes, información del grupo, estado de silencio/archivo

✏️ Enviar y gestionar

HerramientaDescripción
instagram_send_messageEnvía un mensaje de texto en cualquier hilo
instagram_send_linkComparte una URL con pie opcional
instagram_create_threadInicia un nuevo DM con uno o varios usuarios
instagram_like_messageReacciona a cualquier mensaje con cualquier emoji
instagram_unsend_messageElimina tus propios mensajes
instagram_mark_seenMarca una conversación como leída
instagram_approve_pendingAprueba una solicitud de DM pendiente

🔍 Buscar y descubrir

HerramientaDescripción
instagram_search_inboxBusca conversaciones por nombre de usuario o nombre (escanea todas las páginas)
instagram_search_messagesEncuentra mensajes que contengan texto específico dentro de un hilo
instagram_search_usersBusca usuarios de Instagram para iniciar nuevas conversaciones

📦 Instalación

npx (recomendado: instalación cero)

npx mcp-instagram-dm

npm global

npm install -g mcp-instagram-dm
mcp-instagram-dm

Desde el código fuente

git clone https://github.com/KynuxDev/mcp-instagram-dm.git
cd mcp-instagram-dm
npm install && npm run build
node dist/index.js

🔧 Configuración

Obtener tus cookies

  1. Abre instagram.com en Chrome e inicia sesión
  2. Pulsa F12 → pestaña Application → Cookies → https://www.instagram.com
  3. Copia estos tres valores:
Nombre de la cookieVariable de entornoDescripción
sessionidINSTAGRAM_SESSION_IDTu token de sesión
csrftokenINSTAGRAM_CSRF_TOKENToken de protección CSRF
ds_user_idINSTAGRAM_DS_USER_IDTu ID de usuario numérico

💡 Consejo: También puedes ejecutar node get-cookies.js para una guía paso a paso.

Variables de entorno

VariableRequeridaPredeterminadoDescripción
INSTAGRAM_SESSION_ID✅—Tu cookie de sesión de Instagram
INSTAGRAM_CSRF_TOKEN✅—Token CSRF de las cookies
INSTAGRAM_DS_USER_ID✅—Tu ID de usuario numérico
INSTAGRAM_RATE_LIMIT_MS—300Retraso entre solicitudes de API paginadas (ms)

Configuración del cliente

Claude Desktop

Edita ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %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

Añade a .mcp.json de tu proyecto:

{
  "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

Añade a .cursor/mcp.json en tu proyecto:

{
  "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"
      }
    }
  }
}

💬 Ejemplos de uso

Simplemente habla de forma natural con tu asistente de IA:

Lo que dicesLo que ocurre
"Lee mis DMs de Instagram no leídos"Obtiene la bandeja de entrada con indicadores de no leídos
"Envía '¡Hola!' a @username"Encuentra el hilo y envía el mensaje
"Busca en mis DMs mensajes sobre 'reunión'"Escanea los mensajes del hilo en busca de la palabra clave
"Inicia una nueva conversación con @johndoe"Crea un nuevo hilo y envía tu mensaje
"Muéstrame las solicitudes de DM pendientes y apruébalas"Lista y aprueba las solicitudes pendientes
"¿Cuál es la información del perfil de @user?"Obtiene todos los detalles del perfil
"Obtén los últimos 200 mensajes con @friend"Auto-pagina para obtener todos los mensajes
"Reacciona con 🔥 al último mensaje"Envía una reacción con emoji a cualquier mensaje

📖 Referencia de herramientas

Ver las 15 herramientas con parámetros
HerramientaDescripciónParámetros
instagram_get_inboxLista conversaciones de DMlimit?, cursor?
instagram_get_threadObtiene mensajes del hilo (auto-paginación)thread_id, limit?, cursor?
instagram_get_pendingLista solicitudes pendienteslimit?, cursor?
instagram_user_infoObtiene perfil de usuariouser_id
instagram_thread_infoObtiene detalles del hilothread_id
instagram_send_messageEnvía mensaje de textothread_id, text
instagram_send_linkComparte una URLthread_id, url, text?
instagram_create_threadInicia nuevo DMrecipient_ids[], text
instagram_like_messageReacciona con emojithread_id, item_id, emoji?
instagram_unsend_messageElimina un mensajethread_id, item_id
instagram_mark_seenMarca como leídothread_id, item_id
instagram_approve_pendingAprueba solicitudthread_id
instagram_search_inboxBusca conversacionesquery, max_pages?
instagram_search_messagesBusca dentro del hilothread_id, query, max_messages?
instagram_search_usersEncuentra usuariosquery

🏗️ Arquitectura

┌─────────────────────┐     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) │
                                             └──────────────────────┘

Principios de diseño:

  • Dependencia única: solo @modelcontextprotocol/sdk. Sin axios, sin puppeteer, sin inflado.
  • TypeScript estricto: cero tipos any, interfaces totalmente tipadas en src/types.ts
  • Auto-paginación: solicita 500 mensajes y el servidor se encarga del resto con limitación de velocidad
  • Más de 14 tipos de mensajes: texto, multimedia, voz, reels, enlaces, clips, GIFs, publicaciones, historias y más

🔒 Seguridad

  • Las cookies de sesión nunca se registran ni se almacenan más allá del tiempo de ejecución
  • Todas las credenciales se leen únicamente de variables de entorno
  • No se envían datos a ningún servicio de terceros
  • Consulta SECURITY.md para informar vulnerabilidades

⚠️ Aviso legal

Este proyecto utiliza la API web no oficial de Instagram, que puede cambiar sin previo aviso.

  • Solo para uso personal: no lo uses para spam, mensajes masivos o automatización que viole los Términos de servicio de Instagram
  • Tus cookies de sesión son credenciales sensibles: nunca las compartas ni las subas a un repositorio
  • Este proyecto no está afiliado, respaldado ni conectado con Meta o Instagram
  • Úsalo bajo tu propio riesgo: los autores no son responsables de ninguna restricción de cuenta

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Consulta CONTRIBUTING.md para la configuración de desarrollo y las pautas.

Si deseas apoyar el proyecto económicamente, considera patrocinar en GitHub.

📄 Licencia

MIT — Hecho con ❤️ por Kynux


Si este proyecto te ayudó, considera darle una ⭐

Informar de un error · Solicitar una función · Contribuir