mcp-instagram-dm

Leia, envie, pesquise e gerencie DMs do Instagram por meio de assistentes de IA via MCP. 15 ferramentas, autenticação baseada em cookies, dependência única.

Documentação

📨 MCP Instagram DM

Controle suas DMs do Instagram com IA

Leia, envie, pesquise e gerencie Mensagens Diretas do Instagram por meio de linguagem natural com qualquer assistente de IA compatível com MCP.

npm version npm downloads GitHub stars

CI License: MIT Node.js TypeScript MCP


Um servidor Model Context Protocol que conecta Mensagens Diretas do Instagram a assistentes de IA como Claude, Cursor e qualquer cliente compatível com MCP.

Autenticação baseada em cookies — sem chaves de API, sem OAuth, simplesmente funciona.


Começando · Recursos · Configuração · Referência de Ferramentas · Contribuindo


💡 Se você acha isso útil, considere dar uma ⭐ — isso ajuda outras pessoas a descobrirem o projeto!


⚡ Começando

Comece a usar em menos de 60 segundos:

1. Adicione à sua configuração MCP (Claude Desktop, Claude Code ou 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. Converse com seu assistente de IA:

"Leia minhas DMs do Instagram"

É isso — você está pronto. 🎉

Precisa de ajuda para obter seus cookies? Veja Configuração abaixo.

🎬 Como Fica

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

✨ Recursos

15 ferramentas em três categorias — tudo o que você precisa para gerenciar suas DMs do Instagram:

📥 Ler e Monitorar

FerramentaDescrição
instagram_get_inboxLista conversas recentes de DM com indicadores de não lidas/grupo/silenciadas
instagram_get_threadObtém mensagens de uma conversa (paginação automática — busca 500+ mensagens de uma vez)
instagram_get_pendingLista solicitações de DM pendentes aguardando sua aprovação
instagram_user_infoObtém o perfil de qualquer usuário: bio, seguidores, publicações, verificação
instagram_thread_infoMetadados da conversa: participantes, informações do grupo, status de mudo/arquivamento

✏️ Enviar e Gerenciar

FerramentaDescrição
instagram_send_messageEnvia uma mensagem de texto em qualquer conversa
instagram_send_linkCompartilha uma URL com legenda opcional
instagram_create_threadInicia uma nova DM com um ou vários usuários
instagram_like_messageReage a qualquer mensagem com qualquer emoji
instagram_unsend_messageDesfaz o envio das suas próprias mensagens
instagram_mark_seenMarca uma conversa como lida
instagram_approve_pendingAprova uma solicitação de DM pendente

🔍 Buscar e Descobrir

FerramentaDescrição
instagram_search_inboxBusca conversas por nome de usuário ou nome (verifica todas as páginas)
instagram_search_messagesEncontra mensagens contendo texto específico em uma conversa
instagram_search_usersBusca usuários do Instagram para iniciar novas conversas

📦 Instalação

npx (recomendado — instalação zero)

npx mcp-instagram-dm

npm global

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

A partir do código-fonte

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

🔧 Configuração

Obtendo Seus Cookies

  1. Abra instagram.com no Chrome e faça login
  2. Pressione F12 → aba Application → Cookies → https://www.instagram.com
  3. Copie estes três valores:
Nome do CookieVariável de AmbienteDescrição
sessionidINSTAGRAM_SESSION_IDSeu token de sessão
csrftokenINSTAGRAM_CSRF_TOKENToken de proteção CSRF
ds_user_idINSTAGRAM_DS_USER_IDSeu ID numérico de usuário

💡 Dica: Você também pode executar node get-cookies.js para um passo a passo guiado.

Variáveis de Ambiente

VariávelObrigatóriaPadrãoDescrição
INSTAGRAM_SESSION_ID✅—Seu cookie de sessão do Instagram
INSTAGRAM_CSRF_TOKEN✅—Token CSRF dos cookies
INSTAGRAM_DS_USER_ID✅—Seu ID numérico de usuário
INSTAGRAM_RATE_LIMIT_MS—300Atraso entre solicitações de API paginadas (ms)

Configuração do Cliente

Claude Desktop

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

Adicione ao .mcp.json do seu projeto:

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

Adicione ao .cursor/mcp.json no seu projeto:

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

💬 Exemplos de Uso

Basta conversar naturalmente com seu assistente de IA:

O que você dizO que acontece
"Leia minhas DMs não lidas do Instagram"Busca a caixa de entrada com indicadores de não lidas
"Envie 'Hey!' para @username"Encontra a conversa e envia a mensagem
"Pesquise minhas DMs por mensagens sobre 'reunião'"Verifica as mensagens da conversa pela palavra-chave
"Inicie uma nova conversa com @johndoe"Cria uma nova conversa e envia sua mensagem
"Mostre-me solicitações de DM pendentes e aprove-as"Lista e aprova solicitações pendentes
"Quais são as informações do perfil de @user?"Busca detalhes completos do perfil
"Obtenha as últimas 200 mensagens com @friend"Paginação automática para buscar todas as mensagens
"Reaja com 🔥 à última mensagem"Envia reação de emoji a qualquer mensagem

📖 Referência de Ferramentas

Ver todas as 15 ferramentas com parâmetros
FerramentaDescriçãoParâmetros
instagram_get_inboxLista conversas de DMlimit?, cursor?
instagram_get_threadObtém mensagens da conversa (paginação automática)thread_id, limit?, cursor?
instagram_get_pendingLista solicitações pendenteslimit?, cursor?
instagram_user_infoObtém perfil do usuáriouser_id
instagram_thread_infoObtém detalhes da conversathread_id
instagram_send_messageEnvia mensagem de textothread_id, text
instagram_send_linkCompartilha uma URLthread_id, url, text?
instagram_create_threadInicia nova DMrecipient_ids[], text
instagram_like_messageReage com emojithread_id, item_id, emoji?
instagram_unsend_messageDesfaz o envio de uma mensagemthread_id, item_id
instagram_mark_seenMarca como lidathread_id, item_id
instagram_approve_pendingAprova solicitaçãothread_id
instagram_search_inboxBusca conversasquery, max_pages?
instagram_search_messagesBusca na conversathread_id, query, max_messages?
instagram_search_usersEncontra usuáriosquery

🏗️ Arquitetura

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

Princípios de design:

  • Dependência única — apenas @modelcontextprotocol/sdk. Sem axios, sem puppeteer, sem inchaço.
  • TypeScript estrito — zero tipos any, interfaces totalmente tipadas em src/types.ts
  • Paginação automática — solicite 500 mensagens e o servidor cuida do resto com limitação de taxa
  • 14+ tipos de mensagem — texto, mídia, voz, reels, links, clipes, GIFs, publicações, stories e mais

🔒 Segurança

  • Cookies de sessão nunca são registrados ou armazenados além do tempo de execução
  • Todas as credenciais são lidas apenas de variáveis de ambiente
  • Nenhum dado é enviado a serviços de terceiros
  • Veja SECURITY.md para reportar vulnerabilidades

⚠️ Aviso Legal

Este projeto usa a API web não oficial do Instagram, que pode mudar sem aviso prévio.

  • Uso pessoal apenas — não use para spam, mensagens em massa ou automação que viole os Termos de Serviço do Instagram
  • Seus cookies de sessão são credenciais sensíveis — nunca os compartilhe ou faça commit deles
  • Este projeto não é afiliado, endossado ou conectado à Meta ou ao Instagram
  • Use por sua conta e risco — os autores não são responsáveis por quaisquer restrições de conta

🤝 Contribuindo

Contribuições são bem-vindas! Consulte CONTRIBUTING.md para configuração de desenvolvimento e diretrizes.

Se você quiser apoiar o projeto financeiramente, considere patrocinar no GitHub.

📄 Licença

MIT — Feito com ❤️ por Kynux


Se este projeto ajudou você, considere dar uma ⭐

Reportar Bug · Solicitar Recurso · Contribuir