Instagram DMs

Envie DMs do Instagram via seu LLM

Documentação

Servidor MCP de DM do Instagram

Este é um servidor Model Context Protocol (MCP) para envio de Direct Messages do Instagram.

Com ele, você pode enviar Direct Messages do Instagram a partir da sua conta (mais recursos em breve).

Aqui está um exemplo do que você pode fazer quando conectado ao Claude.

Instagram_DM_MCP_Demo-2.mp4

Para receber atualizações sobre este e outros projetos em que trabalhamos, insira seu e-mail aqui


Instalação

Pré-requisitos

  • Python 3.11+
  • Aplicativo Anthropic Claude Desktop (ou Cursor)
  • Pip (gerenciador de pacotes Python), instale com python -m pip install
  • Uma conta do Instagram

Passos

  1. Clone este repositório
    git clone https://github.com/trypeggy/instagram_dm_mcp.git
    cd instagram_dm_mcp
  2. Instale as dependências
  • Usando uv (recomendado):
    uv sync
  • Usando Pip:
    pip install -r requirements.txt
  1. Configure as credenciais do Instagram
    Você tem duas opções para fornecer suas credenciais do Instagram:
    Opção A: Variáveis de Ambiente (Recomendado)
    Configuração Rápida (Recomendado):
    Execute o script auxiliar:
    python setup_env.py
    Isso solicitará interativamente suas credenciais e criará o arquivo .env com segurança.
    Configuração Manual:
    Crie um arquivo .env na raiz do projeto:
    cp env.example .env
    Em seguida, edite .env com suas credenciais reais:
INSTAGRAM_USERNAME=your_instagram_username  
INSTAGRAM_PASSWORD=your_instagram_password  

Opção B: Argumentos de Linha de Comando
Você ainda pode passar credenciais como argumentos de linha de comando (menos seguro). 2. Conecte-se ao servidor MCP
Para Claude Desktop:
Salve isso como claude_desktop_config.json no diretório de configuração do Claude Desktop em:

~/Library/Application Support/Claude/claude_desktop_config.json  

Para Cursor:
Salve isso como mcp.json no diretório de configuração do Cursor em:

~/.cursor/mcp.json  

Configuração com Variáveis de Ambiente (Recomendado):

  • Usando uv
    {
    "mcpServers": {
    "instagram_dms": {
    "command": "uv",
    "args": [
    "run",
    "--directory",
    "PATH/TO/instagram_dm_mcp",
    "python",
    "src/mcp_server.py"
    ]
    }
    }
    }
  • Usando Python
    {
    "mcpServers": {
    "instagram_dms": {
    "command": "python",
    "args": [
    "{{PATH_TO_SRC}}/instagram_dm_mcp/src/ mcp_server.py"
    ]
    }
    }
    }
    Configuração com Argumentos de Linha de Comando:
    {
    "mcpServers": {
    "instagram_dms": {
    "command": "python",
    "args": [
    "{{PATH_TO_SRC}}/instagram_dm_mcp/src/mcp_server.py",
    "--username",
    "{{YOUR_INSTAGRAM_USERNAME}}",
    "--password",
    "{{YOUR_INSTAGRAM_PASSWORD}}"
    ]
    }
    }
    }
  1. Reinicie o Claude Desktop / Cursor
    Abra o Claude Desktop e agora você deve ver o Instagram DM MCP como uma integração disponível.
    Ou reinicie o Cursor.

Uso

Abaixo está uma lista de todas as ferramentas disponíveis e o que elas fazem:

Nome da FerramentaDescrição
send_messageEnvia uma mensagem direta do Instagram para um usuário por nome de usuário.
send_photo_messageEnvia uma foto como mensagem direta do Instagram para um usuário por nome de usuário.
send_video_messageEnvia um vídeo como mensagem direta do Instagram para um usuário por nome de usuário.
list_chatsObtém os tópicos (conversas) de Mensagens Diretas do Instagram da sua conta, com filtros/limites opcionais.
list_messagesObtém mensagens de um tópico específico de Mensagem Direta do Instagram pelo ID do tópico. Agora expõe item_type e informações de post/reel compartilhado para cada mensagem. Use isso para determinar qual ferramenta de download utilizar.
download_media_from_messageBaixa uma foto ou vídeo enviado diretamente de uma mensagem de DM (não para posts/reels/clipes compartilhados).
download_shared_post_from_messageBaixa mídia de um post, reel ou clipe compartilhado em uma mensagem de DM (não para envios diretos).
list_media_messagesLista todas as mensagens contendo mídia enviada diretamente (foto/vídeo) em um tópico de DM.
mark_message_seenMarca uma mensagem específica em um tópico de Mensagem Direta do Instagram como vista.
list_pending_chatsObtém os tópicos de Mensagens Diretas do Instagram da sua caixa de entrada pendente.
search_threadsPesquisa tópicos de Mensagens Diretas do Instagram por nome de usuário ou palavra-chave.
get_thread_by_participantsObtém um tópico de Mensagem Direta do Instagram pelos IDs dos participantes.
get_thread_detailsObtém detalhes e mensagens de um tópico específico de Mensagem Direta do Instagram pelo ID do tópico.
get_user_id_from_usernameObtém o ID do usuário do Instagram para um determinado nome de usuário.
get_username_from_user_idObtém o nome de usuário do Instagram para um determinado ID de usuário.
get_user_infoObtém informações sobre um usuário específico do Instagram por nome de usuário.
search_usersPesquisa usuários do Instagram por nome de usuário
get_user_storiesObtém as histórias recentes de um usuário específico do Instagram por nome de usuário.
like_mediaCurte ou descurte uma publicação de mídia específica pelo ID da mídia.
get_user_followersObtém uma lista de seguidores de um usuário específico do Instagram por nome de usuário.
get_user_followingObtém uma lista de usuários que um usuário específico do Instagram segue, por nome de usuário.
get_user_postsObtém as publicações recentes de um usuário específico do Instagram por nome de usuário.

Solução de problemas

Login do Instagram travando: O servidor agora inclui gerenciamento automático de sessão para evitar travamentos no login. Os arquivos de sessão (ex.: username_session.json) são criados e reutilizados automaticamente para manter o estado de autenticação entre execuções.

Para mais soluções de problemas na integração com Claude Desktop, consulte a documentação do MCP. A documentação inclui dicas úteis para verificar logs e resolver problemas comuns.


Feedback

Seu feedback será imensamente apreciado. Por favor, conte-nos quais recursos dessa lista você gostaria de ver em seguida ou solicite novos recursos por completo.


Licença

Este projeto está licenciado sob a Licença MIT.

License Python