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
Pesquise e leia seu histórico de Mensagens a partir do Claude, Codex, Cursor, VS Code e qualquer outro cliente 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".
Gemini CLI
Adicione a configuração padrão em ~/.gemini/settings.json.
JetBrains (Junie)
Adicione a configuração padrão em .junie/mcp/mcp.json, ou digite /mcp no Junie CLI.
opencode
Em ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"imessage": { "type": "local", "command": ["npx", "-y", "imessage-mcp@latest"], "enabled": true }
}
}
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:
| prompt | o que faz |
|---|---|
catch_up | Quem está esperando uma resposta sua e o que precisam |
draft_reply | Uma resposta no seu estilo de texto. Você a envia; este servidor não pode. |
recap | Sua 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
| ferramenta | o que faz |
|---|---|
search_messages | Pesquisa por substring, texto exato, token ou frase, no texto da mensagem, nomes de conversas ou nomes de anexos |
get_conversation | Lê uma conversa por chat_id ou por um nome de contato ou grupo, com edições, reações, recibos, respostas e anexos |
list_conversations | Encontra 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_attachment | Mostra um anexo: imagens como JPEG com metadados removidos, arquivos de texto como texto |
sync_messages | Puxa todas as alterações desde um cursor: mensagens novas, editadas, não enviadas e excluídas, reações e recibos |
analyze_communication | Contagens de mensagens por hora e dia da semana, tempos de resposta, sequências e quem inicia conversas |
resolve_contact | Corresponde um nome, número de telefone ou e-mail a um contato e relata ambiguidade em vez de adivinhar |
server_status | Versã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ção | descriçã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=0 | Mantém o índice de pesquisa apenas na memória |
IMESSAGE_WARM_SEARCH=0 | Constrói o índice de pesquisa na primeira pesquisa em vez de na inicialização |
IMESSAGE_UPDATE_CHECK=0 | Desativa 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 redactedouaggregatelimita 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