# apple-voice-memo-mcp

Lets an AI assistant reach Apple Voice Memos on macOS: list recordings, pull audio, read existing transcripts and generate new ones. Handy if you dictate notes.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 7
- Author: jwulff
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/jwulff/apple-voice-memo-mcp
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/mcp/apple-voice-memo-mcp

## What it does

The server reads the Voice Memos database and the `.m4a` files stored next to it. Through the `list_voice_memos`, `get_voice_memo`, `get_audio`, `get_transcript` and `transcribe_memo` tools an agent can browse recordings with metadata, return an audio path or base64 data, extract a transcript, and produce a fresh one with `SFSpeechRecognizer`.

Apple keeps transcripts inside the `.m4a` file itself, in an MPEG-4 atom named `tsrp`. There are no separate transcript files — the server parses that atom. When a memo has none, `transcribe_memo` generates one; the language defaults to `en-US`.

You need macOS Sonoma 14.0 or later and Node.js 18+. Grant Full Disk Access to the terminal or app that launches the server, otherwise the database stays unreadable. The Voice Memos app has to have been opened at least once. Speech recognition asks for its own permission the first time. If native bindings fail on `better_sqlite3.node`, run `npm rebuild better-sqlite3`.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add apple-voice-memo-mcp -- npx -y apple-voice-memo-mcp
```

### Codex

**Platform CLI**
```bash
codex mcp add apple-voice-memo-mcp -- npx -y apple-voice-memo-mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "apple-voice-memo-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "apple-voice-memo-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "apple-voice-memo-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "apple-voice-memo-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add apple-voice-memo-mcp npx -y apple-voice-memo-mcp
```

## When to use it
- find one voice memo by title among many recordings
- pull a transcript Apple already generated
- create a transcript for a memo that has none
- hand the audio file to an agent as a path or base64
- list recordings with dates and durations for later work

## Example prompts
- Show my voice memos from the past week
- Get the transcript for the memo titled "Standup" and save it to a file
- Transcribe memo id 12 in Russian

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
