返回 MCP 目录
public公开dns本地运行

apple-voice-memo-mcp

这是一个为macOS上的Apple语音备忘录提供程序化访问的MCP服务器,允许AI助手浏览、获取音频和转录语音备忘录。

article

README

🚀 Apple Voice Memo MCP 服务器

这是一个 MCP(模型上下文协议)服务器,可让你以编程方式访问 macOS 上的 Apple 语音备忘录。借助它,Claude 等 AI 助手就能与你的语音录音进行交互。

它与 whisper-mcp 配合使用,可实现本地转录。

🚀 快速开始

本服务器可让你通过编程方式访问 macOS 上的 Apple 语音备忘录,还能让 AI 助手与语音录音交互。

✨ 主要特性

  • 列出语音备忘录 - 浏览所有语音备忘录及其元数据。
  • 获取备忘录详情 - 获取特定录音的详细信息。
  • 获取音频 - 访问音频文件路径或 Base64 编码的音频数据。
  • 获取转录内容 - 从备忘录中提取转录内容(Apple 存储在音频文件中)。
  • 转录备忘录 - 使用 Apple 的 SFSpeechRecognizer 生成转录内容。

📦 安装指南

npm install -g apple-voice-memo-mcp

或者直接使用 npx:

npx apple-voice-memo-mcp

📚 详细文档

配置

Claude Desktop

添加到你的 Claude Desktop 配置文件中: macOS~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "apple-voice-memo-mcp": {
      "command": "npx",
      "args": ["-y", "apple-voice-memo-mcp"]
    }
  }
}

编辑完成后,重启 Claude Desktop。

Claude Code (CLI)

对于 Claude Code,添加到项目的 .mcp.json 文件中:

{
  "mcpServers": {
    "apple-voice-memo-mcp": {
      "command": "npx",
      "args": ["-y", "apple-voice-memo-mcp"]
    }
  }
}

或者进行用户范围的配置,添加到 ~/.claude/settings.json 中:

{
  "mcpServers": {
    "apple-voice-memo-mcp": {
      "command": "npx",
      "args": ["-y", "apple-voice-memo-mcp"]
    }
  }
}

提示:在 Claude Code 中使用 /mcp 来验证服务器是否已连接。

本地开发设置

如果从源代码而不是 npm 运行:

{
  "mcpServers": {
    "apple-voice-memo-mcp": {
      "command": "node",
      "args": ["/path/to/apple-voice-memo-mcp/dist/index.js"]
    }
  }
}

权限

  1. 完全磁盘访问权限:读取语音备忘录数据库所需。
    • 转到系统设置 > 隐私与安全 > 完全磁盘访问权限。
    • 添加你的终端应用或 Claude Desktop。
  2. 语音识别权限(用于转录):
    • 仅在使用 transcribe_memo 工具时需要。
    • 首次使用时系统会提示。

MCP 工具

list_voice_memos

列出所有带有元数据的语音备忘录。 参数

  • limit(可选):最大结果数(1 - 100,默认值:50)
  • offset(可选):分页偏移量
  • search(可选):按标题过滤的搜索词

示例响应

{
  "memos": [
    {
      "id": 1,
      "title": "会议记录",
      "date": "2025-01-07T10:30:00.000Z",
      "duration": 120.5,
      "hasTranscript": true
    }
  ],
  "total": 15
}

get_voice_memo

获取特定备忘录的详细元数据。 参数

  • id(必需):备忘录 ID

get_audio

检索音频文件。 参数

  • id(必需):备忘录 ID
  • format(可选):"path" 或 "base64"(默认值:"path")

get_transcript

从备忘录中提取转录内容。 参数

  • id(必需):备忘录 ID
  • format(可选):"text"、"json" 或 "timestamped"

transcribe_memo

使用 SFSpeechRecognizer 转录备忘录。 参数

  • id(必需):备忘录 ID
  • language(可选):语言代码(默认值:"en-US")

工作原理

数据访问

语音备忘录数据存储在以下位置:

  • 数据库~/Library/Group Containers/group.com.apple.VoiceMemos.shared/Recordings/CloudRecordings.db
  • 音频文件:同一目录,.m4a 格式

转录内容存储

Apple 使用名为 tsrp 的自定义 MPEG - 4 原子将转录内容直接存储在 .m4a 音频文件中。此 MCP 服务器会解析这些原子以提取转录内容,不存在单独的转录文件。

开发

# 克隆仓库
git clone https://github.com/jwulff/apple-voice-memo-mcp.git
cd apple-voice-memo-mcp

# 安装依赖
npm install

# 构建
npm run build

# 在开发环境中运行
npm run dev

# 使用 MCP 检查器进行测试
npm run inspector

故障排除

"未找到语音备忘录数据库"

  1. 确保你至少打开过一次语音备忘录应用。
  2. 为你的终端/应用授予完全磁盘访问权限。
  3. 检查语音备忘录是否启用了 iCloud 同步。

"没有可用的转录内容"

  • 在 macOS Sequoia+ 系统上,在语音备忘录应用中打开备忘录以触发自动转录。
  • 较旧的 macOS 版本没有自动转录功能。
  • 使用 transcribe_memo 工具通过 SFSpeechRecognizer 生成转录内容。

原生模块绑定错误

如果你看到有关缺少 better_sqlite3.node 绑定的错误:

npm rebuild better-sqlite3

这会为你当前的 Node.js 版本重新编译原生模块。

📄 许可证

本项目采用 MIT 许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端