MCP-Mirror

say-mcp-server

Community MCP-Mirror
Updated

MCP server for macOS text-to-speech functionality

say-mcp-server

macOS System Voice Settings

An MCP server that provides text-to-speech functionality using macOS's built-in say command.

Requirements

  • macOS (uses the built-in say command)
  • Node.js >= 14.0.0

Configuration

Add the following to your MCP settings configuration file:

{
  "mcpServers": {
    "say": {
      "command": "node",
      "args": ["/path/to/say-mcp-server/build/index.js"]
    }
  }
}

Installation

npm install say-mcp-server

Tools

speak

The speak tool provides access to macOS's text-to-speech capabilities with extensive customization options.

Basic Usage

Use macOS text-to-speech to speak text aloud.

Parameters:

  • text (required): Text to speak. Supports:
    • Plain text
    • Basic punctuation for pauses
    • Newlines for natural breaks
    • [[slnc 500]] for 500ms silence
    • [[rate 200]] for changing speed mid-text
    • [[volm 0.5]] for changing volume mid-text
    • [[emph +]] and [[emph -]] for emphasis
    • [[pbas +10]] for pitch adjustment
  • voice (optional): Voice to use (default: "Alex")
  • rate (optional): Speaking rate in words per minute (default: 175, range: 1-500)
  • background (optional): Run speech in background to allow further MCP interaction (default: false)
Advanced Features
  1. Voice Modulation:
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. Dynamic Rate Changes:
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. Emphasis and Pitch:
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"
  }
});
Integration Examples
  1. With 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. With 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. Background Speech with Multiple Actions:
// 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. With 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
    }
  });
}

Example:

use_mcp_tool({
  server_name: "say",
  tool_name: "speak",
  arguments: {
    text: "Hello, world!",
    voice: "Victoria",
    rate: 200
  }
});

list_voices

List all available text-to-speech voices on the system.

Example:

use_mcp_tool({
  server_name: "say",
  tool_name: "list_voices",
  arguments: {}
});

Recommended Voices

Voice Language/Region Intellectual Figure Haiku CLI Specification
Anna (Premium) German Emmy Noether Symmetrie haucht LebenAlgebras verborgne FormAbstraktion blühtSymmetry breathes lifeAlgebra's hidden formsAbstraction blooms -v "Anna (Premium)"
Emma (Premium) Italian Maria Adelaide Sneider Algoritmi in danzaMacchina sussurra dolceIl codice viveAlgorithms danceMachine whispers secrets softCode becomes alive -v "Emma (Premium)"
Federica (Premium) Italian Pia Nalli Teoremi fluentiNumeri danzano liberiVerità emergeFlowing theorems danceNumbers move in freedom's spaceTruth emerges pure -v "Federica (Premium)"
Serena (Premium) English (UK) Bertha Swirles Quantum waves rippleThrough mathematical seas deepTruth's light emergesQuantum waves rippleThrough mathematical seas deepTruth's light emerges -v "Serena (Premium)"
Petra (Premium) German Ruth Moufang Algebra sprichtIn Symmetrien verstecktWahrheit erblühtAlgebra speaks softHidden in symmetries pureTruth blooms anew here -v "Petra (Premium)"
Yuna (Premium) Korean Hee Oh 숨은 패턴 빛나고마음의 방정식 핀다지식 자라나Hidden patterns gleamMind's equations softly bloomKnowledge multiplies -v "Yuna (Premium)"
Alva (Premium) Swedish Sonja Korovkin Mönster flödar frittGenom tankens labyrinterVisdom blomstrar härPatterns flowing freeThrough labyrinths of the mindWisdom blooms right here -v "Alva (Premium)"
Amélie (Premium) French (Canada) Sophie Germain Nombres premiers murmurentDansent entre les silencesSymétrie s'ouvrePrime numbers whisperDancing between the silenceSymmetry unfolds -v "Amélie (Premium)"
Ewa (Premium) Polish Maria Wielgus Logiki korzenieMatematyczne krainyMyśl kiełkującaLogic's tender rootsMathematical landscapesThought's seeds germinate -v "Ewa (Premium)"
Kiyara (Premium) Hindi Shakuntala Devi गणित की लय मेंअंक नृत्य करते हैंज्ञान जगता हैIn rhythm of mathNumbers dance their sacred stepsKnowledge awakens -v "Kiyara (Premium)"
Majed (Premium) Arabic Maha Al-Aswad أرقام ترقصفي فضاء اللانهايةالحقيقة تشرقNumbers dance freelyIn infinity's vast spaceTruth rises like dawn -v "Majed (Premium)"
Tünde (Premium) Hungarian Julia Erdős Számok táncolnakVégtelen térben szállnakIgazság virradNumbers dance and soarThrough infinite space they glideTruth dawns pure and bright -v "Tünde (Premium)"
Fiona (Enhanced) English (Scottish) Mary Somerville Highland mists revealMathematical mysteriesTruth shines like the starsHighland mists revealMathematical mysteriesTruth shines like the stars -v "Fiona (Enhanced)"
Lesya (Enhanced) Ukrainian Olena Voinova Тиша говоритьМіж зірками знання спитьДумка проростаєSilence speaks softlyKnowledge sleeps among the starsThought begins to grow -v "Lesya (Enhanced)"
Carmit (Enhanced) Hebrew Tali Seror מילים נושמות בשקטבין שורות של דממהשיר מתעוררWords breathe silentlyBetween lines of deep stillnessPoem awakening -v "Carmit (Enhanced)"
Milena (Enhanced) Russian Olga Ladyzhenskaya Память шепчет намУравнения текутИстина молчитMemory whispersEquations flow like riversTruth speaks silently -v "Milena (Enhanced)"
Katya (Enhanced) Russian Sofia Kovalevskaya Числа танцуютВ пространстве бесконечномИстина цветётNumbers dance freelyIn space of infinityTruth blooms like a flower -v "Katya (Enhanced)"
Damayanti (Enhanced) Indonesian Sri Pekerti Angka menariDalam ruang tak batasKebenaran tumbuhNumbers dance gentlyIn boundless space they flutterTruth grows like new leaves -v "Damayanti (Enhanced)"
Dariush (Enhanced) Persian Maryam Mirzakhani اعداد می رقصنددر فضای بی پایانحقیقت می رویدNumbers dance with graceIn endless space they traverseTruth springs forth anew -v "Dariush (Enhanced)"
Rocko (Italian) Italian Astro Boy (Tetsuwan Atomu)Italian dub Robot di metalloCuore umano batte fortePace nel futuroMetal robot formHuman heart beats strong withinPeace in future dawns -v "Rocko (Italian (Italy))"
Rocko (Italian) Italian Jeeg Robot d'Acciaio(Kōtetsu Jeeg) Acciaio lucenteProtettore dei deboliVola nel cieloShining steel warriorProtector of the helplessSoars through the heavens -v "Rocko (Italian (Italy))"
Rocko (Italian) Italian Numero 5(Short Circuit) Input infinitoLa coscienza si risvegliaVita artificialeInfinite inputConsciousness awakeningArtificial life -v "Rocko (Italian (Italy))"
Binbin (Enhanced) Chinese (Mainland) Li Shanlan 算术之道流数理演绎真理智慧绽放Arithmetic flowsLogic unfolds truth's patternWisdom blossoms bright -v "Binbin (Enhanced)"
Han (Premium) Chinese (Mainland) Chen Jingrun 素数之舞动哥德巴赫猜想真理永恒Prime numbers dancingGoldbach's conjecture whispersTruth eternal flows -v "Han (Premium)"
Lilian (Premium) Chinese (Mainland) Hua Luogeng 数论之光芒解析延续美智慧升华Number theory shinesAnalysis extends graceWisdom ascends pure -v "Lilian (Premium)"
Meijia Chinese (Taiwan) Sun-Yung Alice Chang 幾何之美現曲率流動不息空間展開Geometry showsCurvature flows endlesslySpace unfolds anew -v "Meijia"
Sinji (Premium) Chinese (Hong Kong) Shing-Tung Yau 流形之奧秘卡拉比空間動維度交織Manifolds revealCalabi spaces in flowDimensions weave truth -v "Sinji (Premium)"
Tingting Chinese (Mainland) Wang Zhenyi 星辰轨迹明天文数学融智慧闪耀Starlit paths shine brightAstronomy meets numbersWisdom radiates -v "Tingting"
Yue (Premium) Chinese (Mainland) Chern Shiing-shen 微分几何纤维丛中寻真本质显现Differential formsIn fiber bundles seek truthEssence emerges -v "Yue (Premium)"

Configuration

Add the following to your MCP settings configuration file:

{
  "mcpServers": {
    "say": {
      "command": "node",
      "args": ["/path/to/say-mcp-server/build/index.js"]
    }
  }
}

Requirements

  • macOS (uses the built-in say command)
  • Node.js >= 14.0.0

Contributors

License

MIT

MCP Server · Populars

MCP Server · New

    PraneshASP

    Foundry MCP Server

    An experimental MCP Server for foundry built for Solidity devs

    Community PraneshASP
    karakeep-app

    Karakeep MCP Server

    A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search

    Community karakeep-app
    karakeep-app

    karakeep

    A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search

    Community karakeep-app
    prisma

    Prisma

    Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

    Community prisma
    iannuttall

    Flux UI MCP Server

    MCP Server

    Community iannuttall