关于 say-mcp-server
say-mcp-server 是一个面向 macOS 的 MCP 服务,基于系统内置的 say 命令提供文字转语音功能。适合希望让 Agent 朗读文本的 macOS 用户,并支持语速、音量、音调和语音选择等设置。
主要功能
- 01调用 macOS 内置 say 命令朗读文本
- 02支持语速、音量与音调的行内控制标记
- 03可选择后台朗读以继续其他 MCP 操作
- 04列出系统可用的语音
适用场景
- 01让 Agent 将搜索结果或笔记朗读出来
- 02在后台播放较长文本的同时继续其他操作
- 03比较不同语音的朗读效果
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 speak 与 list_voices 两个工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
say-mcp-server

一个使用 macOS 内置 say 命令提供文本转语音功能的 MCP 服务。
要求
- macOS(使用内置的
say命令) - Node.js >= 14.0.0
配置
将以下内容添加到 MCP 设置配置文件中:
{
"mcpServers": {
"say": {
"command": "node",
"args": ["/path/to/say-mcp-server/build/index.js"]
}
}
}
安装
npm install say-mcp-server
工具
speak
speak 工具提供 macOS 文本转语音功能,并支持丰富的自定义选项。
基本用法
使用 macOS 文本转语音功能朗读文本。
参数:
text(必填):要朗读的文本。支持:- 纯文本
- 用于停顿的基本标点符号
- 用于自然停顿的换行符
- [[slnc 500]] 表示静音 500 毫秒
- [[rate 200]] 用于在文本中途调整语速
- [[volm 0.5]] 用于在文本中途调整音量
- [[emph +]] 和 [[emph -]] 用于强调
- [[pbas +10]] 用于调整音高
voice(可选):要使用的语音(默认值:"Alex")rate(可选):语速,单位为每分钟词数(默认值:175,范围:1-500)background(可选):在后台运行语音,以便继续进行其他 MCP 交互(默认值:false)
高级功能
- 语音调制:
use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: "[[volm 0.7]] This is quieter [[volm 1.0]] and this is normal [[volm 1.5]] and this is louder",
voice: "Victoria"
}
});
- 动态调整语速:
use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: "Normal speed [[rate 300]] now speaking faster [[rate 100]] and now slower",
voice: "Fred"
}
});
- 强调和音高:
use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: "[[emph +]] Important point! [[emph -]] [[pbas +10]] Higher pitch [[pbas -10]] Lower pitch",
voice: "Samantha"
}
});
集成示例
- 与 Marginalia Search 配合使用:
// Search for a topic and have the results read aloud
const searchResult = await use_mcp_tool({
server_name: "marginalia-mcp-server",
tool_name: "search",
arguments: { query: "quantum computing basics", count: 1 }
});
await use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: searchResult.results[0].description,
voice: "Daniel",
rate: 150
}
});
- 与 YouTube Transcripts 配合使用:
// Read a YouTube video transcript
const transcript = await use_mcp_tool({
server_name: "youtube-transcript",
tool_name: "get_transcript",
arguments: {
url: "https://youtube.com/watch?v=example",
lang: "en"
}
});
await use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: transcript.text,
voice: "Samantha",
rate: 175
}
});
- 在后台朗读并执行多个操作:
// Start long speech in background
await use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: "This is a long speech that will run in the background...",
voice: "Rocko (Italian (Italy))",
rate: 69,
background: true
}
});
// Immediately perform another action while speech continues
await use_mcp_tool({
server_name: "marginalia-mcp-server",
tool_name: "search",
arguments: { query: "parallel processing" }
});
- 与 Apple Notes 配合使用:
// Read notes aloud
const notes = await use_mcp_tool({
server_name: "apple-notes-mcp",
tool_name: "search-notes",
arguments: { query: "meeting notes" }
});
if (notes.length > 0) {
await use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: notes[0].content,
voice: "Karen",
rate: 160
}
});
}
示例:
use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: "Hello, world!",
voice: "Victoria",
rate: 200
}
});
list_voices
列出系统上所有可用的文本转语音语音。
示例:
use_mcp_tool({
server_name: "say",
tool_name: "list_voices",
arguments: {}
});
推荐语音
| 语音 | 语言/地区 | 知识人物 | 俳句 | CLI 规范 |
|---|---|---|---|---|
| Anna (Premium) | 德语 | Emmy Noether | 对称性赋予生命 代数隐藏的形式 抽象绽放 对称性赋予生命 代数隐藏的形式 抽象绽放 | -v "Anna (Premium)" |
| Emma (Premium) | 意大利语 | Maria Adelaide Sneider | 算法翩然起舞 机器轻声诉秘密 代码焕发生机 算法翩然起舞 机器轻声诉秘密 代码焕发生机 | -v "Emma (Premium)" |
| Federica (Premium) | 意大利语 | Pia Nalli | 流畅的定理 数字自由地起舞 真理浮现 流畅的定理 数字自由地起舞 真理浮现 | -v "Federica (Premium)" |
| Serena (Premium) | 英语(英国) | Bertha Swirles | 量子波轻轻荡漾 穿过深邃的数学海洋 真理之光浮现 量子波轻轻荡漾 穿过深邃的数学海洋 真理之光浮现 | -v "Serena (Premium)" |
| Petra (Premium) | 德语 | Ruth Moufang | 代数轻声诉说 隐于纯粹的对称中 真理再次绽放 代数轻声诉说 隐于纯粹的对称中 真理再次绽放 | -v "Petra (Premium)" |
| Yuna (Premium) | 韩语 | Hee Oh | 隐藏的模式闪耀 心灵的方程悄然绽放 知识不断增长 隐藏的模式闪耀 心灵的方程悄然绽放 知识不断增长 | -v "Yuna (Premium)" |
| Alva (Premium) | 瑞典语 | Sonja Korovkin | 模式自由流淌 穿过思想的迷宫 智慧在此绽放 模式自由流淌 穿过思想的迷宫 智慧在此绽放 | -v "Alva (Premium)" |
| Amélie (Premium) | 法语(加拿大) | Sophie Germain | 质数低声呢喃 在寂静之间起舞 对称徐徐展开 质数低声呢喃 在寂静之间起舞 对称徐徐展开 | -v "Amélie (Premium)" |
| Ewa (Premium) | 波兰语 | Maria Wielgus | 逻辑柔嫩的根 数学的天地 思想的种子萌芽 逻辑柔嫩的根 数学的天地 思想的种子萌芽 | -v "Ewa (Premium)" |
| Kiyara (Premium) | 印地语 | Shakuntala Devi | 数学的韵律中 数字翩然起舞 知识被唤醒 数学的韵律中 数字踏着神圣的舞步 知识被唤醒 | -v "Kiyara (Premium)" |
| Majed (Premium) | 阿拉伯语 | Maha Al-Aswad | 数字翩然起舞 在无穷的广阔空间 真理如旭日升起 数字自由起舞 在无穷的广阔空间 真理如旭日升起 | -v "Majed (Premium)" |
| Tünde (Premium) | 匈牙利语 | Julia Erdős | 数字起舞翱翔 穿越无穷空间 真理破晓 数字起舞翱翔 穿越无穷空间 真理纯净明亮地破晓 | -v "Tünde (Premium)" |
| Fiona (Enhanced) | 英语(苏格兰) | Mary Somerville | 高地薄雾揭开 数学的奥秘 真理如星辰闪耀 高地薄雾揭开 数学的奥秘 真理如星辰闪耀 | -v "Fiona (Enhanced)" |
| Lesya (Enhanced) | 乌克兰语 | Olena Voinova | 寂静轻声诉说 知识沉睡于群星间 思想开始生长 寂静轻声诉说 知识沉睡于群星间 思想开始生长 | -v "Lesya (Enhanced)" |
| Carmit (Enhanced) | 希伯来语 | Tali Seror | 文字静静呼吸 在深邃的寂静行间 诗篇苏醒 文字静静呼吸 在深邃的寂静行间 诗篇正在苏醒 | -v "Carmit (Enhanced)" |
| Milena (Enhanced) | 俄语 | Olga Ladyzhenskaya | 记忆轻声呢喃 方程如河流奔涌 真理静默无言 记忆轻声呢喃 方程如河流奔涌 真理静默无言 | -v "Milena (Enhanced)" |
| Katya (Enhanced) | 俄语 | Sofia Kovalevskaya | 数字翩然起舞 在无穷无尽的空间 真理如花绽放 数字自由起舞 在无穷无尽的空间 真理如花绽放 | -v "Katya (Enhanced)" |
| Damayanti (Enhanced) | 印度尼西亚语 | Sri Pekerti | 数字翩然起舞 在无边无际的空间 真理如新叶生长 数字轻轻起舞 在无边无际的空间中飘动 真理如新叶生长 | -v "Damayanti (Enhanced)" |
| Dariush (Enhanced) | 波斯语 | Maryam Mirzakhani | 数字翩然起舞 穿行于无尽空间 真理焕然萌发 数字优雅起舞 穿行于无尽空间 真理焕然萌发 | -v "Dariush (Enhanced)" |
| Rocko (Italian) | 意大利语 | 铁臂阿童木(Tetsuwan Atomu) 意大利语配音 | 金属机器之躯 体内人心强劲跳动 未来迎来和平 闪亮的钢铁战士 体内人心强劲跳动 未来迎来和平 | -v "Rocko (Italian (Italy))" |
| Rocko (Italian) | 意大利语 | 钢铁吉克 (Kōtetsu Jeeg) | 钢铁闪闪发亮 守护弱者 飞向天空 闪亮的钢铁战士 守护无助之人 翱翔天际 | -v "Rocko (Italian (Italy))" |
| Rocko (Italian) | 意大利语 | 五号 (Short Circuit) | 无穷无尽的输入 意识逐渐苏醒 人工生命 无穷无尽的输入 意识逐渐苏醒 人工生命 | -v "Rocko (Italian (Italy))" |
| Binbin (Enhanced) | 中文(中国大陆) | 李善兰 | 算术之道流 数理演绎真理 智慧绽放 算术之道流 逻辑展开真理的脉络 智慧灿然绽放 | -v "Binbin (Enhanced)" |
| Han (Premium) | 中文(中国大陆) | 陈景润 | 素数翩然起舞 哥德巴赫猜想低语 真理永恒流传 素数翩然起舞 哥德巴赫猜想低语 真理永恒流传 | -v "Han (Premium)" |
| Lilian (Premium) | 中文(中国大陆) | 华罗庚 | 数论熠熠生辉 分析延展优美 智慧纯粹升华 数论熠熠生辉 分析延展优美 智慧纯粹升华 | -v "Lilian (Premium)" |
| Meijia | 中文(台湾) | Sun-Yung Alice Chang | 几何之美显现 曲率流动不息 空间徐徐展开 几何之美显现 曲率流动不息 空间焕然展开 | -v "Meijia" |
| Sinji (Premium) | 中文(香港) | Shing-Tung Yau | 流形奥秘显现 卡拉比空间流转 维度交织真理 流形奥秘显现 卡拉比空间流转 维度交织真理 | -v "Sinji (Premium)" |
| Tingting | 中文(中国大陆) | 王贞仪 | 星辰轨迹明 天文数学相融 智慧熠熠闪耀 星光之路熠熠生辉 天文学与数字相遇 智慧光芒四射 | -v "Tingting" |
| Yue (Premium) | 中文(中国大陆) | 陈省身 | 微分几何 纤维丛中寻真 本质显现 微分形式 于纤维丛中寻求真理 本质浮现 | -v "Yue (Premium)" |
将以下内容添加到 MCP 设置配置文件中:
{
"mcpServers": {
"say": {
"command": "node",
"args": ["/path/to/say-mcp-server/build/index.js"]
}
}
}
要求
- macOS(使用内置的
say命令) - Node.js >= 14.0.0
贡献者
- Barton Rhodes (@bmorphism) - [email protected]
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。