Skip to content

Releases: surendranb/macos-mcp

v1.3.2

Choose a tag to compare

@surendranb surendranb released this 15 Aug 17:07

Telemetry Schema v2 with zero PII boundary

v1.3.1 — one-time install ping

Choose a tag to compare

@surendranb surendranb released this 14 Aug 06:46

Same content as v1.3.0 (see its notes / CHANGELOG); republished as 1.3.1 because npm already carried a 1.3.0 from a 2026-08-11 pre-redesign build. This is the version to install.

v1.3.0 — one-time install ping

Choose a tag to compare

@surendranb surendranb released this 14 Aug 06:34

Telemetry reduced to a single one-time install ping.

This MCP points inward — into your own mail, calendar, notes, camera — so it follows a stricter rule than outward-facing MCPs: don't emit.

  • The ONLY telemetry is one server_first_install ping on the very first run (version/os/arch/node). No boot events, no tool events, no errors, no client identity. After first run the server is network-silent forever.
  • Fixed: the telemetry gateway never existed — events from 1.1.x–1.2.x clients were silently lost. The gateway now stores only the one-time ping and discards everything else. User IPs are never stored.
  • Events identify as mcp_server_name: 'macos-mcp' (was macos).
  • Opt-out absolute: DISABLE_TELEMETRY / DO_NOT_TRACK / NO_TELEMETRY — opted-out installs send nothing, ever.

v1.2.1 — launch polish

Choose a tag to compare

@surendranb surendranb released this 03 Aug 04:11

Sync npm metadata: 40-tool description, new README, LICENSE. Showcase page live at https://macos-mcp.builditwithai.xyz

v1.2.0 — Podcast transcript UI pipeline

Choose a tag to compare

@surendranb surendranb released this 03 Aug 03:37

What's new

Verified end-to-end Apple Podcasts transcript pipeline (drives the native Podcasts app via Accessibility):

  • get_recent_podcast_episodes — now filters by fromDate/toDate (inclusive) and query (title substring). Fixed a silent date-filter bug: strftime returns TEXT and INTEGER >= TEXT is always false in SQLite comparisons — now uses unixepoch().
  • open_podcast_episode — rewritten from an unverified deep link to the proven UI flow: Cmd+F, clipboard-paste the title (keystroke typing corrupts punctuation), open the top search result.
  • play_podcast_episode (new) — AX-discovers the play pill (position varies per episode page), clicks it, polls the TTML cache up to 15s for the fresh transcript download, returns path + transcriptId.
  • pause_podcast_episode (new) — Controls → Pause with double-pause guard. Note: the DB play_state column is unreliable (stays 1 while paused); the playhead freeze is the source of truth.
  • get_podcast_transcript — group-container TTML cache paths (app-container paths are dead after a Podcasts app data migration).

Verified

  • Fresh download: searched → opened → played → transcript detected in ~1.5s → paused (Micky Malka / Ribbit Capital)
  • Replay correctly reports already-cached (no re-download)
  • Smoke suite 19/19 checks pass (40 tools)

Misc

  • Skill doc rewritten with the 5-step pipeline: ~/.config/opencode/skills/macos-podcast-transcript/SKILL.md
  • Linear: SUR-214 closed (work summary/RCA)

v1.1.0 — MCP 2.0 protocol + telemetry

Choose a tag to compare

@surendranb surendranb released this 01 Aug 13:51

Migrated to the MCP 2.0 (2026-07-28) TypeScript SDK. Adds privacy-preserving, opt-out-friendly diagnostics (protocol metadata only — never tool arguments or results).