iMCP

Una aplicación de macOS que conecta tu vida digital con la IA, proporcionando acceso a los servicios de Calendario, Contactos, Ubicación, Mapas, Mensajes, Recordatorios y Clima.

Documentación

iMCP

iMCP es una aplicación para macOS que conecta tu vida digital con la IA. Funciona con Claude Desktop y una lista creciente de clientes que admiten el Protocolo de Contexto de Modelo (MCP).

Capacidades

CalendarioVer y gestionar eventos de calendario, incluida la creación de nuevos eventos con ajustes personalizables como repetición, alarmas y estado de disponibilidad.
ContactosAccede a la información de contacto sobre ti y busca en tus contactos por nombre, número de teléfono o dirección de correo electrónico.
UbicaciónAccede a los datos de ubicación actual y convierte entre direcciones y coordenadas geográficas.
MapasProporciona servicios de ubicación que incluyen búsqueda de lugares, indicaciones, consulta de puntos de interés, estimación de tiempo de viaje y generación de imágenes de mapas estáticos.
MensajesAccede al historial de mensajes con participantes específicos dentro de rangos de fechas personalizables.
TeléfonoConsulta el historial de llamadas sincronizado desde tu iPhone, filtra llamadas por participante, fecha o tipo de llamada, e inicia llamadas con confirmación del sistema.
RecordatoriosVer y crear recordatorios con fechas de vencimiento, prioridades y alertas personalizables en diferentes listas de recordatorios.
AtajosLista y ejecuta atajos en tu Mac, con entrada de texto opcional.
ClimaAccede a las condiciones climáticas actuales, incluida la temperatura, la velocidad del viento y las condiciones meteorológicas de cualquier ubicación.

Primeros pasos

Descargar y abrir la aplicación

Primero, descarga la aplicación iMCP (requiere macOS 15.3 o posterior).

O, si tienes Homebrew instalado, puedes ejecutar el siguiente comando:

brew install --cask mattt/tap/iMCP
Screenshot of iMCP on first launch

Cuando abras la aplicación, verás un icono en la barra de menú.

Al hacer clic en este icono se muestra el menú de iMCP, que muestra todos los servicios disponibles. Inicialmente, todos los servicios aparecerán en gris, lo que indica que están inactivos.

El interruptor azul en la parte superior indica que el servidor MCP está en ejecución y listo para conectarse con clientes compatibles con MCP.


Screenshot of macOS permission dialog

Activar servicios

Para activar un servicio, haz clic en su icono. El sistema te mostrará un diálogo de permisos. Por ejemplo, al activar el acceso al Calendario, verás un diálogo que pregunta "iMCP" Would Like Full Access to Your Calendar. Haz clic en Permitir acceso completo para continuar.

[!IMPORTANTE] iMCP no recopila ni almacena ninguno de tus datos. Los clientes como Claude Desktop sí envían tus datos fuera del dispositivo como parte de las llamadas a herramientas.


Screenshot of iMCP with all services enabled

Una vez activado, el icono de cada servicio pasa de gris a sus colores distintivos: rojo para Calendario, verde para Mensajes, azul para Ubicación, y así sucesivamente.

Repite este proceso para todas las capacidades que desees habilitar. Estos permisos siguen el modelo de seguridad estándar de Apple, lo que te da control total sobre qué información puede acceder iMCP.


Conectar con Claude Desktop

Si no tienes Claude Desktop instalado, puedes descargarlo aquí.

Abre Claude Desktop y ve a "Configuración... (⌘,)". Haz clic en "Desarrollador" en la barra lateral del panel de Configuración, y luego haz clic en "Editar configuración". Esto creará un archivo de configuración en ~/Library/Application Support/Claude/claude_desktop_config.json.


Para conectar iMCP a Claude Desktop, haz clic en > "Configurar Claude Desktop".

Esto agregará o actualizará la configuración del servidor MCP para usar el ejecutable imcp-server incluido en la aplicación. Otras configuraciones de servidores MCP en el archivo se conservarán.

También puedes configurar Claude Desktop manualmente

Haz clic en > "Copiar comando del servidor al portapapeles". Luego abre claude_desktop_config.json en tu editor e ingresa lo siguiente:

{
  "mcpServers": {
    "iMCP": {
      "command": "{paste iMCP server command}"
    }
  }
}

Llamar a las herramientas de iMCP desde Claude Desktop

Sal y vuelve a abrir la aplicación Claude Desktop. Se te pedirá que apruebes la conexión.


Después de aprobar la conexión, ahora deberías ver 🔨12 en la esquina inferior derecha de tu cuadro de chat. Haz clic en eso para ver una lista de todas las herramientas disponibles para Claude proporcionadas por iMCP.

Screenshot of Claude Desktop with tools enabled

Ahora puedes hacer preguntas a Claude que requieran acceso a tus datos personales, como:

"¿Cómo está el clima donde estoy?"

Claude usará las herramientas adecuadas para recuperar esta información, brindándote respuestas precisas y personalizadas sin que tengas que compartir estos datos manualmente durante tu conversación.

Screenshot of Claude response to user message 'How's the weather where I am?'

Conectar con Claude Code

Para agregar iMCP globalmente después de instalar la aplicación:

claude mcp add --scope user iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server
O importar desde Claude Desktop

Si ya configuraste Claude Desktop, puedes importar sus servidores MCP:

claude mcp add-from-claude-desktop

Conectar con Cursor

Abre este enlace profundo para instalar automáticamente el servidor iMCP:

Install MCP Server

Conectar con Amp

Para agregar iMCP globalmente (disponible en todos los proyectos):

amp mcp add iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server

[!NOTA] Cuando un cliente se conecta por primera vez, iMCP mostrará un diálogo de aprobación. Haz clic en "Permitir" y marca "Confiar siempre en este cliente" para evitar avisos repetidos.

Detalles técnicos

Aplicación y CLI

iMCP es una aplicación para macOS que incluye un ejecutable de línea de comandos, imcp-server.

  • iMCP.app proporciona una interfaz de usuario para configurar servicios y, lo más importante, un medio para interactuar con los permisos del sistema de macOS, de modo que pueda acceder a Contactos, Calendario y otra información.
  • imcp-server proporciona un servidor MCP que utiliza entrada/salida estándar para la comunicación (transporte stdio).

La aplicación y la CLI se comunican entre sí en la red local usando Bonjour para el descubrimiento automático. Ambos anuncian un servicio con el tipo "_mcp._tcp" y el dominio "local". Las solicitudes de los clientes MCP son leídas por la CLI desde stdin y reenviadas a la aplicación; las respuestas de la aplicación son recibidas por la CLI y escritas en stdout. Consulta StdioProxy para ver los detalles de implementación.

Para este proyecto, creamos lo que se convirtió en el SDK oficial de Swift para servidores y clientes del Protocolo de Contexto de Modelo. La aplicación usa este paquete para manejar solicitudes proxy de los clientes MCP.

Acceso a la base de datos de iMessage

Apple no proporciona API públicas para acceder a tus mensajes. Sin embargo, la aplicación Mensajes en macOS almacena datos en una base de datos SQLite ubicada en ~/Library/Messages/chat.db.

iMCP se ejecuta en App Sandbox, lo que limita su acceso a los datos del usuario y los recursos del sistema. Cuando vayas a habilitar el servicio de Mensajes, se te pedirá que selecciones tu carpeta ~/Library/Messages mediante el selector de archivos estándar. Cuando lo hagas, macOS agregará esa carpeta al sandbox de la aplicación. NSOpenPanel es mágico así. La carpeta importa: chat.db es una base de datos en modo WAL, y Mensajes escribe cada nuevo mensaje en chat.db-wal junto a ella primero, solo incorporando el registro en chat.db en un punto de control cada pocos MB, a menudo horas después. Una concesión solo en chat.db (lo que pedían las versiones anteriores) deja ese registro ilegible, por lo que los mensajes más recientes faltaban hasta entonces. Si concediste chat.db con una versión anterior, Mensajes sigue funcionando desde el último punto de control; desactiva y reactiva Mensajes en el menú de iMCP para conceder la carpeta en su lugar.

Pero abrir la base de datos de iMessage es solo la mitad de la batalla. En los últimos años, Apple ha pasado de almacenar mensajes en texto plano a un formato propietario typedstream.

Para este proyecto, creamos Madrid: un paquete de Swift para leer tu base de datos de iMessage. Incluye una implementación en Swift para decodificar el formato typedstream de Apple, adaptada del proyecto imessage-exporter de Christopher Sardegna y su publicación de blog sobre la ingeniería inversa de typedstream.

Acceso a la base de datos del historial de llamadas

El historial de llamadas sincronizado desde tu iPhone se encuentra en una base de datos SQLite en ~/Library/Application Support/CallHistoryDB/CallHistory.storedata. Las llamadas recientes están en su registro de escritura anticipada junto al archivo de almacenamiento, por lo que el servicio de Teléfono te pide que abras la carpeta CallHistoryDB en lugar del archivo solo.

JSON-LD para resultados de herramientas

Las herramientas proporcionadas por iMCP devuelven resultados como documentos JSON-LD. Por ejemplo, la herramienta fetchContacts usa el marco de Contactos, que representa personas y organizaciones con el tipo CNContact. Así es como un objeto de ese tipo se codifica como JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Mattt",
  "url": "https://mat.tt"
}

Schema.org proporciona vocabularios estándar para personas, direcciones postales, eventos y muchos otros objetos que queremos representar. Y JSON-LD es un formato de codificación conveniente tanto para humanos, IA y software convencional por igual.

Para este proyecto, creamos Ontology: un paquete de Swift para trabajar con datos estructurados. Incluye inicializadores de conveniencia para tipos de los marcos de Apple, como los que devuelven las herramientas de iMCP.

Depuración

Usar el Inspector de MCP

Para depurar las interacciones entre iMCP y los clientes, puedes usar la herramienta inspector (requiere Node.js):

  1. Haz clic en > "Copiar comando del servidor al portapapeles"

  2. Abre una terminal y ejecuta los siguientes comandos:

    # Download and run inspector package on imcp-server
    npx @modelcontextprotocol/inspector [paste-copied-command]
    
    # Open inspector web app running locally
    open http://127.0.0.1:6274
    

El Inspector te permite ver todas las solicitudes y respuestas entre el cliente y el servidor iMCP, lo que es útil para comprender cómo funciona el protocolo.

Usar Companion

Companion es una utilidad para probar y depurar tus servidores MCP (requiere macOS 15 o posterior). Te brinda una manera fácil de explorar e interactuar con los prompts, recursos y herramientas de un servidor. Así es como conectarlo a iMCP:

  1. Haz clic en > "Copiar comando del servidor al portapapeles"
  2. Descarga y abre la aplicación Companion
  3. Haz clic en el botón + en la barra de herramientas para agregar un servidor MCP
  4. Completa el formulario:
    • Ingresa "iMCP" como nombre
    • Selecciona "STDIO" como transporte
    • Pega el comando del servidor iMCP copiado
    • Haz clic en "Agregar servidor"

Agradecimientos

Licencia

Este proyecto está disponible bajo la licencia MIT. Consulta el archivo LICENSE para más información.

Legal

iMessage® es una marca registrada de Apple Inc. Este proyecto no está afiliado, respaldado ni patrocinado por Apple Inc.