Say

Provides text-to-speech via macOS say with speak and list_voices tools for MCP clients.
  • javascript

0

GitHub Stars

javascript

Language

7 months ago

First Indexed

3 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

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

You can run a macOS text-to-speech MCP server that exposes a speak tool and a list_voices tool, letting you read text aloud and query available voices from any MCP client. It leverages macOS’s built-in say command and integrates into your MCP ecosystem so you can orchestrate speech alongside other tools and workflows.

How to use

You interact with this server through MCP tools from your client. The two core capabilities are speaking text aloud and listing available voices. Use the speak tool to render text as speech with customizable voice, rate, and optional background playback. Use the list_voices tool to retrieve the voices installed on your macOS system.

How to install

Prerequisites you must have installed on your system before running this server:

  • macOS (the built‑in say command is used)

  • Node.js version 14.0.0 or newer

Install the MCP server package locally for your project:

npm install say-mcp-server

Configuration overview

Configure the MCP server in your settings to expose the say MCP server under a named server. The example below shows how to register the server so your MCP client can start it and send commands.

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

Usage notes and practical patterns

Common usage patterns you can implement from MCP clients include:

  • Speak a plain text string using a specific voice and rate, optionally running in the background so you can continue issuing other MCP commands.

  • Query available voices to choose from when scripting or configuring defaults.

Troubleshooting tips

If speech does not start, verify that the Node process can access the built-in say command and that the path to the built index.js is correct in your configuration. Check that macOS accessibility controls allow scripting and that the user running MCP has permission to access audio output.

Examples of usage with MCP helpers

Here are representative usage scenarios you can adapt in your client code. They demonstrate coordinating speech with other MCP actions.

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

Available tools

speak

Speaks the provided text aloud using macOS’s text-to-speech engine. Supports voice, rate, background execution, and in-text modifiers for volume, rate, pitch, and emphasis.

list_voices

Returns all available voices installed on the system so you can select from them for future speech actions.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational