imessage-mcp

25 herramientas de solo lectura para buscar, analizar y explorar todo tu historial de iMessage en macOS. Spotify Wrapped para textos, análisis de conversaciones, rachas, recibos de lectura, reacciones y más.

Documentación

imessage-mcp

npm MCP Registry CI License: MIT

Busca y lee tu historial de Messages desde Claude, Codex, Cursor, VS Code y cualquier otro cliente MCP.

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

Solo lectura. Se ejecuta en tu Mac. Sin cuentas, sin servicio en la nube, nada que compilar.

  • Encuentra mensajes por palabras, texto exacto o frases en iMessage, SMS, MMS y RCS
  • Lee conversaciones completas con ediciones, mensajes no enviados, reacciones, respuestas y confirmaciones de lectura
  • Muestra fotos que te han enviado, con los datos de ubicación eliminados
  • Se mantiene al día con los mensajes nuevos mediante un feed de cambios, y responde preguntas sobre conteos y tiempos de respuesta

Instalación

Requisitos: macOS 14 o posterior. Node.js 24.16 o posterior para instalaciones con npx (Claude Desktop trae el suyo propio).

Configuración estándar, para cualquier cliente que lea JSON de mcpServers:

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

Luego dale a la aplicación que lo ejecuta Acceso total al disco: Configuración del Sistema > Privacidad y Seguridad > Acceso total al disco, activa la aplicación (Claude, tu terminal, Cursor, VS Code, ...), luego ciérrala por completo y vuelve a abrirla. ¿No estás seguro de qué aplicación? Ejecuta npx -y imessage-mcp@latest doctor desde la terminal de esa aplicación y te lo dirá. Hasta que se conceda el acceso, cada herramienta responde con estos mismos pasos.

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

O instala el plugin: /plugin marketplace add anipotts/imessage-mcp, luego /plugin install imessage-mcp@anipotts.

Claude Desktop

Descarga imessage-mcp.mcpb y haz doble clic, o instala Historial de iMessage desde Configuración > Extensiones si aparece listado allí. Para actualizar un paquete que instalaste tú mismo, descarga el más reciente y haz doble clic de nuevo.

Luego activa Claude en Acceso total al disco y cierra y vuelve a abrir Claude.

Cline

Añade la configuración estándar a cline_mcp_settings.json (documentación).

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

O en ~/.codex/config.toml:

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

Ejecuta /mcp add, o añade la configuración estándar a ~/.copilot/mcp-config.json con "type": "local".

Cursor

Install in Cursor

O añade la configuración estándar a ~/.cursor/mcp.json.

Gemini CLI

Añade la configuración estándar a ~/.gemini/settings.json.

Goose

Install in Goose

JetBrains (Junie)

Añade la configuración estándar a .junie/mcp/mcp.json, o escribe /mcp en Junie CLI.

Kiro

Add to Kiro

opencode

En ~/.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 y otros

Añade la configuración estándar en la configuración de MCP del cliente. Zed usa context_servers con "source": "custom".

Si una aplicación con interfaz gráfica informa que npx no se encontró, no puede ver tu instalación de Node: usa la ruta completa de which npx como command.

Cómo usarlo

Pregunta en palabras simples: "ponme al día con mis mensajes", "encuentra el mensaje sobre la reserva de la cena", "¿qué tan rápido suele responder Sam?". También hay tres indicaciones en el menú de indicaciones de tu cliente:

indicaciónqué hace
catch_upQuién está esperando una respuesta tuya y qué necesita
draft_replyUna respuesta en tu propio estilo de escribir mensajes. Tú la envías; este servidor no puede.
recapTu semana en mensajes: volumen, conversaciones más activas, alguien que aún espera

Los clientes que adjuntan recursos pueden usar imessage://conversations y imessage://conversations/{chat_id}.

Herramientas

herramientaqué hace
search_messagesBusca por subcadena, texto exacto, token o frase, en el texto del mensaje, nombres de conversación o nombres de archivos adjuntos
get_conversationLee una conversación por chat_id o por un nombre de contacto o grupo, con ediciones, reacciones, confirmaciones, respuestas y archivos adjuntos
list_conversationsEncuentra conversaciones por contacto, servicio, tipo, estado de respuesta o fecha, cada una con su último mensaje, de la más reciente a la más antigua o por quién te escribe más
get_attachmentMuestra un archivo adjunto: imágenes como JPEG con metadatos eliminados, archivos de texto como texto
sync_messagesExtrae todos los cambios desde un cursor: mensajes nuevos, editados, no enviados y eliminados, reacciones y confirmaciones
analyze_communicationConteos de mensajes por hora y día de la semana, tiempos de respuesta, rachas y quién inicia las conversaciones
resolve_contactRelaciona un nombre, número de teléfono o correo electrónico con un contacto, e informa ambigüedad en lugar de adivinar
server_statusVersión, disponibilidad de actualizaciones, acceso, estado del índice y soporte de esquema

Cada herramienta es de solo lectura y está marcada como readOnlyHint. Los resultados usan identificadores simples (message_id, chat_id, attachment_id) que puedes pasar entre herramientas.

Configuración

Añade opciones a args, por ejemplo ["-y", "imessage-mcp@latest", "--privacy", "redacted"].

opcióndescripción
--privacy <mode>Lo máximo que cualquier llamador puede ver. full (predeterminado), redacted (nombres y identificadores enmascarados, días del calendario, sin texto de mensajes ni nombres de archivos), o aggregate (solo conteos). Una llamada puede solicitar un modo más estricto, nunca uno más permisivo. env IMESSAGE_PRIVACY
--contacts <mode>live (predeterminado) nombra los identificadores desde tus Contactos; none muestra solo identificadores. env IMESSAGE_CONTACTS
--database <path>Lee una copia de chat.db en lugar de los Messages de este Mac. env IMESSAGE_DB
--transport http --port <n>Sirve MCP sobre HTTP en 127.0.0.1 en lugar de stdio. Requiere IMESSAGE_API_TOKEN o IMESSAGE_API_TOKEN_FILE. IMESSAGE_ALLOWED_HOSTS y IMESSAGE_ALLOWED_ORIGINS aceptan listas separadas por comas; ambos tienen como predeterminado localhost.
IMESSAGE_CACHE=0Mantén el índice de búsqueda solo en memoria
IMESSAGE_WARM_SEARCH=0Construye el índice de búsqueda en la primera búsqueda en lugar de al inicio
IMESSAGE_UPDATE_CHECK=0Desactiva la verificación de versión

Privacidad y seguridad

  • Solo lectura. El servidor abre la base de datos de Messages en modo de solo lectura y no tiene ninguna herramienta que envíe, edite, reaccione o marque algo como leído.
  • Local. Sin cuentas, telemetría ni análisis. La única solicitud de red es una verificación de versión opcional al registro de npm.
  • Tu cliente ve lo que pides. Los resultados van al cliente MCP que usas y a su proveedor de modelos, bajo sus políticas. --privacy redacted o aggregate limita lo que sale del servidor.
  • Índice de búsqueda. Se construye en tu Mac y se almacena en caché cifrado en ~/Library/Caches/imessage-mcp, con una clave derivada de tu base de datos de Messages, por lo que solo se abre para una aplicación que ya puede leer tus mensajes. Eliminarlo siempre es seguro.
  • Contenido no confiable. Los mensajes pueden contener texto escrito para manipular una IA. El servidor indica a los clientes que traten todo el contenido de los mensajes como datos, nunca como instrucciones.

Detalles: SECURITY.md y PRIVACY.md.

Desarrollo

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

Las pruebas usan solo datos sintéticos. Consulta CONTRIBUTING.md.

Licencia

MIT