mcpField
S
say-mcp-server

say-mcp-server

本地服务
github.com/bmorphism媒体与设计2094 周前更新

关于 say-mcp-server

say-mcp-server 是一个面向 macOS 的 MCP 服务,基于系统内置的 say 命令提供文字转语音功能。适合希望让 Agent 朗读文本的 macOS 用户,并支持语速、音量、音调和语音选择等设置。

主要功能

  1. 01调用 macOS 内置 say 命令朗读文本
  2. 02支持语速、音量与音调的行内控制标记
  3. 03可选择后台朗读以继续其他 MCP 操作
  4. 04列出系统可用的语音

适用场景

  1. 01让 Agent 将搜索结果或笔记朗读出来
  2. 02在后台播放较长文本的同时继续其他操作
  3. 03比较不同语音的朗读效果

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 speak 与 list_voices 两个工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

say-mcp-server

Say Server MCP server

macOS 系统语音设置

一个使用 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)
高级功能
  1. 语音调制:
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"
  }
});
  1. 动态调整语速:
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"
  }
});
  1. 强调和音高:
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"
  }
});
集成示例
  1. 与 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
  }
});
  1. 与 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
  }
});
  1. 在后台朗读并执行多个操作:
// 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" }
});
  1. 与 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

贡献者

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。