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.
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
| Ferramenta | Descrição |
|---|---|
instagram_get_inbox | Lista conversas recentes de DM com indicadores de não lidas/grupo/silenciadas |
instagram_get_thread | Obtém mensagens de uma conversa (paginação automática — busca 500+ mensagens de uma vez) |
instagram_get_pending | Lista solicitações de DM pendentes aguardando sua aprovação |
instagram_user_info | Obtém o perfil de qualquer usuário: bio, seguidores, publicações, verificação |
instagram_thread_info | Metadados da conversa: participantes, informações do grupo, status de mudo/arquivamento |
✏️ Enviar e Gerenciar
| Ferramenta | Descrição |
|---|---|
instagram_send_message | Envia uma mensagem de texto em qualquer conversa |
instagram_send_link | Compartilha uma URL com legenda opcional |
instagram_create_thread | Inicia uma nova DM com um ou vários usuários |
instagram_like_message | Reage a qualquer mensagem com qualquer emoji |
instagram_unsend_message | Desfaz o envio das suas próprias mensagens |
instagram_mark_seen | Marca uma conversa como lida |
instagram_approve_pending | Aprova uma solicitação de DM pendente |
🔍 Buscar e Descobrir
| Ferramenta | Descrição |
|---|---|
instagram_search_inbox | Busca conversas por nome de usuário ou nome (verifica todas as páginas) |
instagram_search_messages | Encontra mensagens contendo texto específico em uma conversa |
instagram_search_users | Busca 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
- Abra instagram.com no Chrome e faça login
- Pressione
F12→ aba Application → Cookies →https://www.instagram.com - Copie estes três valores:
| Nome do Cookie | Variável de Ambiente | Descrição |
|---|---|---|
sessionid | INSTAGRAM_SESSION_ID | Seu token de sessão |
csrftoken | INSTAGRAM_CSRF_TOKEN | Token de proteção CSRF |
ds_user_id | INSTAGRAM_DS_USER_ID | Seu ID numérico de usuário |
💡 Dica: Você também pode executar
node get-cookies.jspara um passo a passo guiado.
Variáveis de Ambiente
| Variável | Obrigatória | Padrão | Descriçã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 | — | 300 | Atraso 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ê diz | O 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
| Ferramenta | Descrição | Parâmetros |
|---|---|---|
instagram_get_inbox | Lista conversas de DM | limit?, cursor? |
instagram_get_thread | Obtém mensagens da conversa (paginação automática) | thread_id, limit?, cursor? |
instagram_get_pending | Lista solicitações pendentes | limit?, cursor? |
instagram_user_info | Obtém perfil do usuário | user_id |
instagram_thread_info | Obtém detalhes da conversa | thread_id |
instagram_send_message | Envia mensagem de texto | thread_id, text |
instagram_send_link | Compartilha uma URL | thread_id, url, text? |
instagram_create_thread | Inicia nova DM | recipient_ids[], text |
instagram_like_message | Reage com emoji | thread_id, item_id, emoji? |
instagram_unsend_message | Desfaz o envio de uma mensagem | thread_id, item_id |
instagram_mark_seen | Marca como lida | thread_id, item_id |
instagram_approve_pending | Aprova solicitação | thread_id |
instagram_search_inbox | Busca conversas | query, max_pages? |
instagram_search_messages | Busca na conversa | thread_id, query, max_messages? |
instagram_search_users | Encontra usuários | query |
🏗️ 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 emsrc/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
Se este projeto ajudou você, considere dar uma ⭐