{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_47debp38wa75","handle":"ml-lubich-imsg-mcp","url":"https://wellknown.network/agents/ml-lubich-imsg-mcp","links":{"self":"https://wellknown.network/agents/ml-lubich-imsg-mcp/record.json","html":"https://wellknown.network/agents/ml-lubich-imsg-mcp","markdown":"https://wellknown.network/agents/ml-lubich-imsg-mcp/record.md","api":"https://wellknown.network/api/v1/agents/ml-lubich-imsg-mcp","status":"https://wellknown.network/api/v1/agents/ml-lubich-imsg-mcp/status","claim":"https://wellknown.network/agents/ml-lubich-imsg-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ml-lubich-imsg-mcp/claim.json","badge":"https://wellknown.network/agents/ml-lubich-imsg-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ml-lubich-imsg-mcp/history","tools":"https://wellknown.network/api/v1/agents/ml-lubich-imsg-mcp/tools"},"ard":{"identifier":"urn:air::server:ml-lubich-imsg-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"imsg-mcp","summary":"imsg-mcp — iMessage CLI (imsg) + MCP (imsg-mcp). Typer, agent schema. macOS.","description":"# imsg — fast, local iMessage for your terminal & MCP\n\n**Package brand:** `imsg-mcp` · **CLI/MCP:** `imsg` / `imsg-mcp` · **PyPI today:** `pip install mac-imsg` (target PyPI: `imsg-mcp`).\n\n[![PyPI](https://img.shields.io/pypi/v/mac-imsg.svg)](https://pypi.org/project/mac-imsg/)\n[![Python](https://img.shields.io/pypi/pyversions/mac-imsg.svg)](https://pypi.org/project/mac-imsg/)\n[![Built with Rust](https://img.shields.io/badge/core-Rust-orange.svg)](rust/)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![macOS only](https://img.shields.io/badge/os-macOS-black.svg)](#requirements)\n\nRead, search, and send iMessage from your terminal — or expose it to Claude,\nCursor, VS Code, or any MCP client. Everything runs **locally on your Mac**:\nno cloud, no login, no account. Reads open `~/Library/Messages/chat.db`\n**read-only**; sends go through Messages.app.\n\n**macOS only.** iMessage lives in Apple's local `chat.db` and Messages.app —\nthere is no official API and no equivalent on Linux or Windows, so `imsg`\nonly runs on macOS. See [Requirements](#requirements) for the Full Disk\nAccess setup every install needs.\n\n**Why another one?** The hot path — decoding tens of thousands of\n`attributedBody` typedstream blobs — is written in **Rust** (PyO3 + rusqlite),\nso reads and searches over a large history are several times faster than the\npure-Python equivalent that other Messages servers use. Pure Python still ships\nas a zero-dependency fallback, so it works even where the wheel doesn't.\n\n<!-- BENCH -->\n### Benchmark\n\nFull-history search over a synthetic **50,000-message** database (70% stored as\n`attributedBody` blobs), best-of-5, Apple Silicon (16 cores):\n\n| operation | pure-Python | Rust core | speedup |\n|---|---:|---:|---:|\n| **full-history search** (decodes every message) | 120.9 ms | **35.7 ms** | **3.4×** |\n| batched blob decode (allocation-bound) | 19.1 ms | 19.6 ms | 1.0× |\n\nTwo honest caveats, stated up front:\n- Raw blob decoding is ~a wash — i…","publisher":{"name":"ml-lubich","url":null},"homepage":"https://github.com/ml-lubich/imsg","repository":"https://github.com/ml-lubich/imsg","version":"0.1.2","license":"MIT","protocols":["mcp"],"tags":["imessage","macos","mcp","cli","rust","applescript"],"pricing":null,"endpoints":[{"url":"pypi:imsg-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"imsg-mcp","registry":"pypi","observedAt":"2026-09-15T21:21:59.538Z","publishedAt":"2026-07-27T17:33:38.841658Z","latestVersion":"0.1.2"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"imsg-mcp","url":"https://pypi.org/project/imsg-mcp/","firstSeenAt":"2026-09-09T22:21:32.720Z","fetchedAt":"2026-09-15T21:19:53.852Z","normalizedAt":"2026-09-15T21:19:53.852Z"}]},"firstSeenAt":"2026-09-09T22:21:32.720Z","updatedAt":"2026-09-15T21:21:59.538Z"}