Say MCP Server

A text-to-speech server using the macOS `say` command.

Documentación

say-mcp-server

Say Server MCP server

macOS System Voice Settings

Un servidor MCP que proporciona funcionalidad de texto a voz utilizando el comando say integrado de macOS.

Requisitos

  • macOS (utiliza el comando say integrado)
  • 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

  1. 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"
  }
});
  1. 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"
  }
});
  1. É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

  1. 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
  }
});
  1. 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
  }
});
  1. 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" }
});
  1. 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

VozIdioma/RegiónFigura IntelectualHaikuEspecificación CLI
Anna (Premium)AlemánEmmy NoetherSymmetrie haucht Leben
Algebras verborgne Form
Abstraktion blüht

Symmetry breathes life
Algebra's hidden forms
Abstraction blooms
-v "Anna (Premium)"
Emma (Premium)ItalianoMaria Adelaide SneiderAlgoritmi in danza
Macchina sussurra dolce
Il codice vive

Algorithms dance
Machine whispers secrets soft
Code becomes alive
-v "Emma (Premium)"
Federica (Premium)ItalianoPia NalliTeoremi 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 SwirlesQuantum 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ánRuth MoufangAlgebra spricht
In Symmetrien versteckt
Wahrheit erblüht

Algebra speaks soft
Hidden in symmetries pure
Truth blooms anew here
-v "Petra (Premium)"
Yuna (Premium)CoreanoHee Oh숨은 패턴 빛나고
마음의 방정식 핀다
지식 자라나

Hidden patterns gleam
Mind's equations softly bloom
Knowledge multiplies
-v "Yuna (Premium)"
Alva (Premium)SuecoSonja KorovkinMö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 GermainNombres 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)PolacoMaria WielgusLogiki korzenie
Matematyczne krainy
Myśl kiełkująca

Logic's tender roots
Mathematical landscapes
Thought's seeds germinate
-v "Ewa (Premium)"
Kiyara (Premium)HindiShakuntala Deviगणित की लय में
अंक नृत्य करते हैं
ज्ञान जगता है

In rhythm of math
Numbers dance their sacred steps
Knowledge awakens
-v "Kiyara (Premium)"
Majed (Premium)ÁrabeMaha Al-Aswadأرقام ترقص
في فضاء اللانهاية
الحقيقة تشرق

Numbers dance freely
In infinity's vast space
Truth rises like dawn
-v "Majed (Premium)"
Tünde (Premium)HúngaroJulia ErdősSzá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 SomervilleHighland mists reveal
Mathematical mysteries
Truth shines like the stars

Highland mists reveal
Mathematical mysteries
Truth shines like the stars
-v "Fiona (Enhanced)"
Lesya (Enhanced)UcranianoOlena VoinovaТиша говорить
Між зірками знання спить
Думка проростає

Silence speaks softly
Knowledge sleeps among the stars
Thought begins to grow
-v "Lesya (Enhanced)"
Carmit (Enhanced)HebreoTali Serorמילים נושמות בשקט
בין שורות של דממה
שיר מתעורר

Words breathe silently
Between lines of deep stillness
Poem awakening
-v "Carmit (Enhanced)"
Milena (Enhanced)RusoOlga LadyzhenskayaПамять шепчет нам
Уравнения текут
Истина молчит

Memory whispers
Equations flow like rivers
Truth speaks silently
-v "Milena (Enhanced)"
Katya (Enhanced)RusoSofia KovalevskayaЧисла танцуют
В пространстве бесконечном
Истина цветёт

Numbers dance freely
In space of infinity
Truth blooms like a flower
-v "Katya (Enhanced)"
Damayanti (Enhanced)IndonesioSri PekertiAngka 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)PersaMaryam Mirzakhaniاعداد می رقصند
در فضای بی پایان
حقیقت می روید

Numbers dance with grace
In endless space they traverse
Truth springs forth anew
-v "Dariush (Enhanced)"
Rocko (Italiano)ItalianoAstro 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)ItalianoJeeg 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)ItalianoNumero 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)"
MeijiaChino (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)"
TingtingChino (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)"
## Configuración

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

Licencia

MIT