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 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
|
| Calendario | Ver y gestionar eventos de calendario, incluida la creación de nuevos eventos con ajustes personalizables como repetición, alarmas y estado de disponibilidad. |
|---|---|---|
|
| Contactos | Accede 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ón | Accede a los datos de ubicación actual y convierte entre direcciones y coordenadas geográficas. |
|
| Mapas | Proporciona 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. |
|
| Mensajes | Accede al historial de mensajes con participantes específicos dentro de rangos de fechas personalizables. |
|
| Teléfono | Consulta 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. |
|
| Recordatorios | Ver y crear recordatorios con fechas de vencimiento, prioridades y alertas personalizables en diferentes listas de recordatorios. |
|
| Atajos | Lista y ejecuta atajos en tu Mac, con entrada de texto opcional. |
|
| Clima | Accede 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
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.
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.
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.
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.
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:
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.appproporciona 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-serverproporciona 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):
-
Haz clic en
> "Copiar comando del servidor al portapapeles"
-
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:
- Haz clic en
> "Copiar comando del servidor al portapapeles"
- Descarga y abre la aplicación Companion
- Haz clic en el botón + en la barra de herramientas para agregar un servidor MCP
- Completa el formulario:
- Ingresa "iMCP" como nombre
- Selecciona "STDIO" como transporte
- Pega el comando del servidor iMCP copiado
- Haz clic en "Agregar servidor"
Agradecimientos
- Justin Spahr-Summers (@jspahrsummers), David Soria Parra (@dsp-ant), y Ashwin Bhat (@ashwin-ant) por su trabajo en MCP.
- Christopher Sardegna
(@ReagentX)
por la ingeniería inversa del formato
typedstreamutilizado por la aplicación Mensajes.
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.