Skip to main content
Glama

sync_imessage

Sync iMessage and SMS conversations from the local macOS Messages database in read-only mode, with optional chat or contact filters, to create a searchable memory for AI assistants.

Instructions

Sync iMessage/SMS conversations from the local macOS Messages database.

Reads ~/Library/Messages/chat.db in read-only mode. macOS only — returns an error dict on other platforms without raising.

Requires Full Disk Access for the program running this server, granted in System Settings → Privacy & Security → Full Disk Access (memoreei service grant-access opens it with the right file shown).

The path to chat.db can be overridden with the IMESSAGE_DB_PATH env var.

Args: chat_name: Optional filter — only sync messages from this chat/contact. Matches against chat_identifier (e.g. '+1234567890') or display name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chat_nameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.2

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses read-only access, platform restriction ('returns an error dict on other platforms without raising'), the Full Disk Access prerequisite, and the IMESSAGE_DB_PATH override. It omits idempotency/incremental behavior and whether existing synced data is replaced, which for a sync tool would matter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then platform/prerequisite details, then the argument. Every sentence carries information, though the Full Disk Access sentence is somewhat long and the parenthetical remediation command is more operational than agent-facing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-param tool with no output schema, the definition covers platform, prerequisites, path override, and filter semantics adequately. The return shape is only hinted at ('error dict'), so an agent has a mild gap on what a successful sync produces, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: chat_name is explained as an optional filter matching against chat_identifier (with the '+1234567890' example) or display name. This adds real matching semantics the bare 'Chat Name' property name does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Sync iMessage/SMS conversations from the local macOS Messages database') and names the exact data source (chat.db). It clearly distinguishes itself from siblings like sync_signal, sync_telegram, and import_sms_backup by anchoring to the local macOS Messages store rather than another provider or an import path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational context: macOS-only, read-only, and the Full Disk Access requirement with a concrete remediation command. It does not, however, tell the agent when to prefer this over sync_all or import_sms_backup, so the alternative-selection guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.