Say MCP Server
A text-to-speech server using the macOS `say` command.
GitHub
20
Prueba este MCPPatrocinadoDocumentación
say-mcp-server

Un servidor MCP que proporciona funcionalidad de texto a voz utilizando el comando say integrado de macOS.
Requisitos
- macOS (utiliza el comando
sayintegrado) - Node.js >= 14.0.0
Configuración
Agrega lo siguiente a tu archivo de configuración de ajustes de MCP:
{
"mcpServers": {
"say": {
"command": "node",
"args": ["/path/to/say-mcp-server/build/index.js"]
}
}
}
Instalación
npm install say-mcp-server
Herramientas
speak
La herramienta speak proporciona acceso a las capacidades de texto a voz de macOS con amplias opciones de personalización.
Uso básico
Usa el texto a voz de macOS para hablar texto en voz alta.
Parámetros:
text(obligatorio): Texto a hablar. Soporta:- Texto plano
- Puntuación básica para pausas
- Saltos de línea para pausas naturales
- [[slnc 500]] para 500ms de silencio
- [[rate 200]] para cambiar la velocidad a mitad del texto
- [[volm 0.5]] para cambiar el volumen a mitad del texto
- [[emph +]] y [[emph -]] para énfasis
- [[pbas +10]] para ajuste de tono
voice(opcional): Voz a utilizar (por defecto: "Alex")rate(opcional): Velocidad de habla en palabras por minuto (por defecto: 175, rango: 1-500)background(opcional): Ejecutar el habla en segundo plano para permitir una mayor interacción con MCP (por defecto: false)
Funciones avanzadas
- Modulación de voz:
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"
}
});
- Cambios dinámicos de velocidad:
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"
}
});
- Énfasis y tono:
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"
}
});
Ejemplos de integración
- Con 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
}
});
- Con transcripciones de YouTube:
// 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
}
});
- Habla en segundo plano con múltiples acciones:
// 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" }
});
- Con 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
}
});
}
Ejemplo:
use_mcp_tool({
server_name: "say",
tool_name: "speak",
arguments: {
text: "Hello, world!",
voice: "Victoria",
rate: 200
}
});
list_voices
Lista todas las voces de texto a voz disponibles en el sistema.
Ejemplo:
use_mcp_tool({
server_name: "say",
tool_name: "list_voices",
arguments: {}
});
Voces recomendadas
| Voz | Idioma/Región | Figura Intelectual | Haiku | Especificación CLI |
|---|---|---|---|---|
| Anna (Premium) | Alemán | Emmy Noether | Symmetrie haucht Leben Algebras verborgne Form Abstraktion blüht Symmetry breathes life Algebra's hidden forms Abstraction blooms | -v "Anna (Premium)" |
| Emma (Premium) | Italiano | Maria Adelaide Sneider | Algoritmi in danza Macchina sussurra dolce Il codice vive Algorithms dance Machine whispers secrets soft Code becomes alive | -v "Emma (Premium)" |
| Federica (Premium) | Italiano | Pia Nalli | Teoremi fluenti Numeri danzano liberi Verità emerge Flowing theorems dance Numbers move in freedom's space Truth emerges pure | -v "Federica (Premium)" |
| Serena (Premium) | Inglés (Reino Unido) | Bertha Swirles | Quantum waves ripple Through mathematical seas deep Truth's light emerges Quantum waves ripple Through mathematical seas deep Truth's light emerges | -v "Serena (Premium)" |
| Petra (Premium) | Alemán | Ruth Moufang | Algebra spricht In Symmetrien versteckt Wahrheit erblüht Algebra speaks soft Hidden in symmetries pure Truth blooms anew here | -v "Petra (Premium)" |
| Yuna (Premium) | Coreano | Hee Oh | 숨은 패턴 빛나고 마음의 방정식 핀다 지식 자라나 Hidden patterns gleam Mind's equations softly bloom Knowledge multiplies | -v "Yuna (Premium)" |
| Alva (Premium) | Sueco | Sonja Korovkin | Mönster flödar fritt Genom tankens labyrinter Visdom blomstrar här Patterns flowing free Through labyrinths of the mind Wisdom blooms right here | -v "Alva (Premium)" |
| Amélie (Premium) | Francés (Canadá) | Sophie Germain | Nombres premiers murmurent Dansent entre les silences Symétrie s'ouvre Prime numbers whisper Dancing between the silence Symmetry unfolds | -v "Amélie (Premium)" |
| Ewa (Premium) | Polaco | Maria Wielgus | Logiki korzenie Matematyczne krainy Myśl kiełkująca Logic's tender roots Mathematical landscapes Thought's seeds germinate | -v "Ewa (Premium)" |
| Kiyara (Premium) | Hindi | Shakuntala Devi | गणित की लय में अंक नृत्य करते हैं ज्ञान जगता है In rhythm of math Numbers dance their sacred steps Knowledge awakens | -v "Kiyara (Premium)" |
| Majed (Premium) | Árabe | Maha Al-Aswad | أرقام ترقص في فضاء اللانهاية الحقيقة تشرق Numbers dance freely In infinity's vast space Truth rises like dawn | -v "Majed (Premium)" |
| Tünde (Premium) | Húngaro | Julia Erdős | Számok táncolnak Végtelen térben szállnak Igazság virrad Numbers dance and soar Through infinite space they glide Truth dawns pure and bright | -v "Tünde (Premium)" |
| Fiona (Enhanced) | Inglés (Escocés) | Mary Somerville | Highland mists reveal Mathematical mysteries Truth shines like the stars Highland mists reveal Mathematical mysteries Truth shines like the stars | -v "Fiona (Enhanced)" |
| Lesya (Enhanced) | Ucraniano | Olena Voinova | Тиша говорить Між зірками знання спить Думка проростає Silence speaks softly Knowledge sleeps among the stars Thought begins to grow | -v "Lesya (Enhanced)" |
| Carmit (Enhanced) | Hebreo | Tali Seror | מילים נושמות בשקט בין שורות של דממה שיר מתעורר Words breathe silently Between lines of deep stillness Poem awakening | -v "Carmit (Enhanced)" |
| Milena (Enhanced) | Ruso | Olga Ladyzhenskaya | Память шепчет нам Уравнения текут Истина молчит Memory whispers Equations flow like rivers Truth speaks silently | -v "Milena (Enhanced)" |
| Katya (Enhanced) | Ruso | Sofia Kovalevskaya | Числа танцуют В пространстве бесконечном Истина цветёт Numbers dance freely In space of infinity Truth blooms like a flower | -v "Katya (Enhanced)" |
| Damayanti (Enhanced) | Indonesio | Sri Pekerti | Angka menari Dalam ruang tak batas Kebenaran tumbuh Numbers dance gently In boundless space they flutter Truth grows like new leaves | -v "Damayanti (Enhanced)" |
| Dariush (Enhanced) | Persa | Maryam Mirzakhani | اعداد می رقصند در فضای بی پایان حقیقت می روید Numbers dance with grace In endless space they traverse Truth springs forth anew | -v "Dariush (Enhanced)" |
| Rocko (Italiano) | Italiano | Astro Boy (Tetsuwan Atomu) Doblaje italiano | Robot di metallo Cuore umano batte forte Pace nel futuro Metal robot form Human heart beats strong within Peace in future dawns | -v "Rocko (Italian (Italy))" |
| Rocko (Italiano) | Italiano | Jeeg Robot d'Acciaio (Kōtetsu Jeeg) | Acciaio lucente Protettore dei deboli Vola nel cielo Shining steel warrior Protector of the helpless Soars through the heavens | -v "Rocko (Italian (Italy))" |
| Rocko (Italian) | Italiano | Numero 5 (Short Circuit) | Input infinito La coscienza si risveglia Vita artificiale Entrada infinita Despertar de la conciencia Vida artificial | -v "Rocko (Italian (Italy))" |
| Binbin (Enhanced) | Chino (continental) | Li Shanlan | 算术之道流 数理演绎真理 智慧绽放 La aritmética fluye La lógica despliega el patrón de la verdad La sabiduría florece brillante | -v "Binbin (Enhanced)" |
| Han (Premium) | Chino (continental) | Chen Jingrun | 素数之舞动 哥德巴赫猜想 真理永恒 Los números primos danzan La conjetura de Goldbach susurra La verdad eterna fluye | -v "Han (Premium)" |
| Lilian (Premium) | Chino (continental) | Hua Luogeng | 数论之光芒 解析延续美 智慧升华 La teoría de números brilla El análisis extiende la gracia La sabiduría asciende pura | -v "Lilian (Premium)" |
| Meijia | Chino (Taiwán) | Sun-Yung Alice Chang | 幾何之美現 曲率流動不息 空間展開 La geometría muestra La curvatura fluye sin fin El espacio se despliega de nuevo | -v "Meijia" |
| Sinji (Premium) | Chino (Hong Kong) | Shing-Tung Yau | 流形之奧秘 卡拉比空間動 維度交織 Las variedades revelan Los espacios de Calabi en flujo Las dimensiones tejen la verdad | -v "Sinji (Premium)" |
| Tingting | Chino (continental) | Wang Zhenyi | 星辰轨迹明 天文数学融 智慧闪耀 Los caminos estrellados brillan La astronomía se encuentra con los números La sabiduría irradia | -v "Tingting" |
| Yue (Premium) | Chino (continental) | Chern Shiing-shen | 微分几何 纤维丛中寻真 本质显现 Las formas diferenciales En los fibrados buscan la verdad La esencia emerge | -v "Yue (Premium)" |
Añade lo siguiente a tu archivo de configuración de ajustes de MCP:
{
"mcpServers": {
"say": {
"command": "node",
"args": ["/path/to/say-mcp-server/build/index.js"]
}
}
}
Requisitos
- macOS (utiliza el comando integrado
say) - Node.js >= 14.0.0
Contribuyentes
- Barton Rhodes (@bmorphism) - barton@vibes.lol
Licencia
MIT