语音通知服务

一个基于Model Context Protocol (MCP)的服务,使AI助手能够在macOS上发送语音通知,适用于任务完成、错误提示或需要用户注意的场景。

  • by kyong0612
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kyong0612/voice-notify-mcp

使用说明

语音通知MCP服务器

一种模型上下文协议(MCP)服务器,使AI助手能够在macOS上发送语音通知。AI可以自主决定何时通知用户任务完成、错误或何时需要注意。

特性

  • 🎙️ 使用macOS的语音通知 say 命令
  • 🌍 自动语言检测,以进行适当的语音选择
  • 🤖 自主AI通知(无需明确的用户指令)
  • 🔕 安静时间支持
  • 🎯 基于优先级的通知
  • 🚀 无需克隆存储库即可轻松安装

需求

  • macOS(使用内置 say 命令)
  • 转到1.21或更高版本
  • 克劳德桌面、克劳德代码、光标或Windsurf

安装

快速入门(推荐)

您可以直接运行服务器,而无需克隆存储库:

go run github.com/kyong0612/voice-notify-mcp@latest

本地安装

  1. 克隆存储库:
git clone https://github.com/kyong0612/voice-notify-mcp.git
cd voice-notify-mcp
  1. 运行服务器:
go run main.go

配置

克劳德桌面(桌面扩展)

  1. 通过添加以下内容来安装扩展 dxt.json 文件到您的Claude Desktop扩展名
  2. 或者在Claude Desktop设置中手动配置

克劳德代码/光标/风帆

建议使用添加服务器 claude 命令行工具。

在终端中运行以下命令:

claude mcp add voice-notify go run github.com/kyong0612/voice-notify-mcp@latest

这将以以下名称注册服务器 voice-notify.

或者,您可以手动将以下内容添加到MCP服务器配置文件中(例如。, .claude.json 或 .mcp.json):

{
  "voice-notify": {
    "command": "go",
    "args": ["run", "github.com/kyong0612/voice-notify-mcp@latest"]
  }
}

环境变量

变量 描述 默认值
VOICE_NOTIFY_DEFAULT_VOICE 默认语音名称(例如“Samantha”、“Kyoko”) 系统默认值
VOICE_NOTIFY_DEFAULT_LANGUAGE 默认语言代码(例如,“en”,“yes”) “en”
VOICE_NOTIFY_AUTO_DETECT_LANGUAGE 启用自动语言检测 “true”
VOICE_NOTIFY_AUTO_NOTIFY 启用自主AI通知 “true”
VOICE_NOTIFY_MIN_TASK_DURATION 自动通知的最短任务持续时间(秒) “3”
VOICE_NOTIFY_QUIET_HOURS 安静时间范围(例如,“22:00-07:00”) 无

使用示例

自主通知

AI旨在自主使用语音通知,让您随时了解情况,而无需不断检查其进度。以下是一些您可能会收到通知的场景:

  • 长时间运行的任务完成当构建、测试、部署、文件下载或数据分析等任务耗时超过几秒钟时,AI会在完成后通知您。
    • 声音:“构建完成。”
  • 需要用户输入:如果AI需要您的批准、输入或决定继续,它会提醒您。
    • 声音:“需要批准。我可以继续吗?”
  • 错误或问题:如果流程失败或出现重要警告,您将立即收到通知。
    • 声音:“部署失败。请检查日志。”
  • 关键里程碑对于多步骤任务,AI将在到达重要检查点时宣布。
    • 声音:“暂存部署完成。准备进行最终审查。”

人工智能还可以主动询问您是否希望为即将开始的长时间运行的任务提供语音通知。

手动通知

您还可以明确要求语音通知:

User: "Notify me when the analysis is complete"
AI: "I'll send a voice notification when the analysis finishes."
[Later] *Voice notification: "Analysis completed"*

语言支持

服务器自动检测通知消息的语言并选择适当的语音:

  • 中文:“任务已完成”→ 英语语音
  • Japanese: "任务完成“→Japanese voice
  • 法语:“Tâche terminée”→ 法国声音

可用声音

要查看系统上的可用语音:

say -v '?'

常见的声音包括:

  • 中文:亚历克斯、萨曼莎、丹尼尔
  • 日语:Kyoko,Otoya
  • 法语:阿梅莉·托马斯
  • 西班牙语:莫妮卡、豪尔赫

故障排除

调试模式

启用调试模式以查看详细日志:

{
  "voice-notify": {
    "command": "go",
    "args": ["run", "github.com/kyong0612/voice-notify-mcp@latest"],
    "env": {
      "VOICE_NOTIFY_DEBUG": "true"
    }
  }
}

调试日志包括:

  • 启动时的环境配置
  • MCP请求/响应详细信息
  • 语音选择过程
  • 语言检测结果
  • 利率限制决策
  • 命令执行详细信息

无语音输出

  • 确保Mac的音量未静音
  • 检查是否安装了指定的语音
  • 验证 say 命令工作: say "test"
  • 启用调试模式以查看详细的错误消息

未找到语音

  • 服务器将恢复到系统默认语音
  • 在“系统首选项”中安装其他语音→ 无障碍→ 口语内容
  • 使用调试模式查看哪些声音可用

安静时间的通知

  • 检查你的 VOICE_NOTIFY_QUIET_HOURS 设置
  • 格式应为“HH:MM-HH:MM”(24小时格式)
  • 调试模式将显示安静时间计算

发展

从源头构建

go build -o voice-notify-mcp
./voice-notify-mcp

运行测试

go test ./...

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

欢迎投稿!请随时提交拉取请求。

致谢