imessage-mcp

25 ferramentas somente leitura para pesquisar, analisar e explorar todo o seu histórico do iMessage no macOS. Spotify Wrapped para textos, análises de conversas, sequências, recibos de leitura, reações e muito mais.

Documentação

imessage-mcp

npm MCP Registry CI License: MIT

Pesquise e leia seu histórico de Mensagens a partir do Claude, Codex, Cursor, VS Code e qualquer outro cliente MCP.

Claude Code catching up on a real conversation about a hackathon through imessage-mcp

Somente leitura. Roda no seu Mac. Sem contas, sem serviço em nuvem, nada para compilar.

  • Encontra mensagens por palavras, texto exato ou frase em iMessage, SMS, MMS e RCS
  • Lê conversas inteiras com edições, mensagens não enviadas, reações, respostas e recibos de leitura
  • Mostra fotos que as pessoas enviaram, com dados de localização removidos
  • Acompanha novas mensagens por meio de um feed de alterações e responde perguntas sobre contagens e tempo de resposta

Instalação

Requisitos: macOS 14 ou mais recente. Node.js 24.16 ou mais recente para instalações via npx (o Claude Desktop traz o seu próprio).

Configuração padrão, para qualquer cliente que leia JSON de mcpServers:

{
  "mcpServers": {
    "imessage": {
      "command": "npx",
      "args": ["-y", "imessage-mcp@latest"]
    }
  }
}

Em seguida, dê ao aplicativo que o executa Acesso Total ao Disco: Ajustes do Sistema > Privacidade e Segurança > Acesso Total ao Disco, ative o aplicativo (Claude, seu terminal, Cursor, VS Code, ...), depois saia completamente e reabra. Não sabe qual aplicativo? Execute npx -y imessage-mcp@latest doctor no terminal desse aplicativo e ele informará. Até que o acesso seja concedido, toda ferramenta responde com esses mesmos passos.

Amp
amp mcp add imessage -- npx -y imessage-mcp@latest
Claude Code
claude mcp add --scope user imessage -- npx -y imessage-mcp@latest

Ou instale o plugin: /plugin marketplace add anipotts/imessage-mcp, depois /plugin install imessage-mcp@anipotts.

Claude Desktop

Baixe imessage-mcp.mcpb e clique duas vezes, ou instale Histórico do iMessage em Ajustes > Extensões se estiver listado lá. Para atualizar um pacote que você instalou, baixe o mais recente e clique duas vezes novamente.

Depois ative o Claude em Acesso Total ao Disco e saia e reabra o Claude.

Cline

Adicione a configuração padrão em cline_mcp_settings.json (docs).

Codex
codex mcp add imessage -- npx -y imessage-mcp@latest

Ou em ~/.codex/config.toml:

[mcp_servers.imessage]
command = "npx"
args = ["-y", "imessage-mcp@latest"]
Copilot CLI

Execute /mcp add, ou adicione a configuração padrão em ~/.copilot/mcp-config.json com "type": "local".

Cursor

Install in Cursor

Ou adicione a configuração padrão em ~/.cursor/mcp.json.

Gemini CLI

Adicione a configuração padrão em ~/.gemini/settings.json.

Goose

Install in Goose

JetBrains (Junie)

Adicione a configuração padrão em .junie/mcp/mcp.json, ou digite /mcp no Junie CLI.

Kiro

Add to Kiro

opencode

Em ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "imessage": { "type": "local", "command": ["npx", "-y", "imessage-mcp@latest"], "enabled": true }
  }
}
VS Code

Install in VS Code Install in VS Code Insiders

code --add-mcp '{"name":"imessage","command":"npx","args":["-y","imessage-mcp@latest"]}'
Warp, Windsurf, Zed e outros

Adicione a configuração padrão nas configurações de MCP do cliente. O Zed usa context_servers com "source": "custom".

Se um aplicativo GUI informar que npx não foi encontrado, ele não consegue ver sua instalação do Node: use o caminho completo de which npx como command.

Como usar

Pergunte em palavras simples: "me atualize sobre minhas mensagens", "encontre a mensagem sobre a reserva do jantar", "quão rápido o Sam costuma responder?". Três prompts também estão no menu de prompts do seu cliente:

prompto que faz
catch_upQuem está esperando uma resposta sua e o que precisam
draft_replyUma resposta no seu estilo de texto. Você a envia; este servidor não pode.
recapSua semana em mensagens: volume, conversas mais movimentadas, alguém ainda esperando

Clientes que anexam recursos podem usar imessage://conversations e imessage://conversations/{chat_id}.

Ferramentas

ferramentao que faz
search_messagesPesquisa por substring, texto exato, token ou frase, no texto da mensagem, nomes de conversas ou nomes de anexos
get_conversationLê uma conversa por chat_id ou por um nome de contato ou grupo, com edições, reações, recibos, respostas e anexos
list_conversationsEncontra conversas por contato, serviço, tipo, estado de resposta ou data, cada uma com sua mensagem mais recente, mais novas primeiro ou por quem você mais envia mensagens
get_attachmentMostra um anexo: imagens como JPEG com metadados removidos, arquivos de texto como texto
sync_messagesPuxa todas as alterações desde um cursor: mensagens novas, editadas, não enviadas e excluídas, reações e recibos
analyze_communicationContagens de mensagens por hora e dia da semana, tempos de resposta, sequências e quem inicia conversas
resolve_contactCorresponde um nome, número de telefone ou e-mail a um contato e relata ambiguidade em vez de adivinhar
server_statusVersão, disponibilidade de atualização, acesso, estado do índice e suporte a esquema

Toda ferramenta é somente leitura e marcada como readOnlyHint. Os resultados usam ids simples (message_id, chat_id, attachment_id) que você pode passar entre ferramentas.

Configuração

Adicione opções em args, por exemplo ["-y", "imessage-mcp@latest", "--privacy", "redacted"].

opçãodescrição
--privacy <mode>O máximo que qualquer chamador pode ver. full (padrão), redacted (nomes e identificadores mascarados, dias do calendário, sem texto de mensagem ou nomes de arquivo) ou aggregate (somente contagens). Uma chamada pode pedir um modo mais restrito, nunca mais permissivo. env IMESSAGE_PRIVACY
--contacts <mode>live (padrão) nomeia identificadores dos seus Contatos; none mostra apenas identificadores. env IMESSAGE_CONTACTS
--database <path>Lê uma cópia de chat.db em vez das Mensagens deste Mac. env IMESSAGE_DB
--transport http --port <n>Serve MCP sobre HTTP em 127.0.0.1 em vez de stdio. Requer IMESSAGE_API_TOKEN ou IMESSAGE_API_TOKEN_FILE. IMESSAGE_ALLOWED_HOSTS e IMESSAGE_ALLOWED_ORIGINS aceitam listas separadas por vírgula; ambos usam localhost por padrão.
IMESSAGE_CACHE=0Mantém o índice de pesquisa apenas na memória
IMESSAGE_WARM_SEARCH=0Constrói o índice de pesquisa na primeira pesquisa em vez de na inicialização
IMESSAGE_UPDATE_CHECK=0Desativa a verificação de versão

Privacidade e segurança

  • Somente leitura. O servidor abre o banco de dados de Mensagens somente leitura e não tem ferramenta que envie, edite, reaja ou marque algo como lido.
  • Local. Sem contas, telemetria ou análises. A única solicitação de rede é uma verificação opcional de versão no registro npm.
  • Seu cliente vê o que você pede. Os resultados vão para o cliente MCP que você usa e seu provedor de modelo, sob suas políticas. --privacy redacted ou aggregate limita o que sai do servidor.
  • Índice de pesquisa. Construído no seu Mac e armazenado em cache criptografado em ~/Library/Caches/imessage-mcp, com uma chave derivada do seu banco de dados de Mensagens, então abre apenas para um aplicativo que já pode ler suas mensagens. Excluí-lo é sempre seguro.
  • Conteúdo não confiável. Mensagens podem conter texto escrito para manipular uma IA. O servidor informa aos clientes para tratar todo conteúdo de mensagem como dados, nunca como instruções.

Detalhes: SECURITY.md e PRIVACY.md.

Desenvolvimento

npm ci
npm test      # unit tests on synthetic Messages databases
npm run e2e   # launches the built server over stdio and HTTP
npm run perf  # one-million-message performance gates

Os testes usam apenas dados sintéticos. Veja CONTRIBUTING.md.

Licença

MIT