summarize-mcp
Converts text summaries to speech using OpenAI's TTS API, with multiple voice options and custom speaking instructions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@summarize-mcpSummarize this article and play it as audio"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
summarize-mcp
๐ค Co-authored with Claude Code - Making AI summaries audible since 2025! ๐
A Model Context Protocol (MCP) server that converts text summaries to speech using OpenAI's TTS API and plays them in the background across all major platforms (macOS, Windows, Linux).
๐ Overview
summarize-mcp enables LLMs to convert any text summary into natural-sounding speech using OpenAI's state-of-the-art text-to-speech models. Perfect for creating audio summaries of documents, articles, or any content that benefits from an auditory presentation.
Related MCP server: voice-status-report-mcp-server
๐ Key Features
๐ฏ Simple & Focused: One tool that does one thing exceptionally well
๐ค Multiple Voices: Choose from 10 distinct OpenAI voices (alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer)
๐จ Custom Instructions: Control how the text should be spoken
๐ง Background Playback: Audio plays in the background without blocking
๐ Cross-Platform: Works on macOS, Windows, and Linux
๐พ Persistent Preferences: Save your favorite voice and tone settings
๐ฏ Multiple Tools: Set voice, set tone, and play summaries
๐งน Automatic Cleanup: Temporary files are cleaned up automatically
๐ก๏ธ Type-Safe: Full Python type hints with Pydantic validation
๐ Comprehensive Logging: Debug mode for troubleshooting
โก Performance Optimized: Efficient file handling and cleanup
๐ Prerequisites
Python 3.8 or higher
OpenAI API Key with access to TTS models
Audio Player (automatically detected):
macOS: Built-in
afplay(no installation needed)Windows: Built-in Windows Media Player (no installation needed)
Linux: One of:
mpg123,sox(play),ffmpeg(ffplay),vlc(cvlc), oralsa-utils(aplay)
๐ฆ Installation
git clone https://github.com/FiveOhhWon/summarize-mcp.git
cd summarize-mcp
pip install -e .๐ Configuration
Claude Desktop
Add this configuration to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"summarize": {
"command": "python",
"args": ["/absolute/path/to/summarize-mcp/src/summarize_mcp/server.py"],
"env": {
"OPENAI_API_KEY": "your-openai-api-key"
}
}
}
}Environment Variables
OPENAI_API_KEY(required): Your OpenAI API keyDEBUG(optional): Set to"true"for verbose logging
๐ ๏ธ Available Tools
play_summary
Converts text to speech and plays it in the background. Uses saved voice and tone preferences unless overridden.
Parameters:
summary(required): The text to convert to speechvoice(optional): Voice to use -alloy,ash,ballad,coral,echo,fable,nova,onyx,sage, orshimmer(uses saved preference if not specified)instructions(optional): Instructions for how the text should be spoken (uses saved tone if not specified)
Example:
{
"summary": "The quick brown fox jumps over the lazy dog. This pangram contains all letters of the alphabet.",
"voice": "nova",
"instructions": "Speak slowly and clearly, emphasizing each word."
}set_voice
Set the default voice for all future text-to-speech conversions.
Parameters:
voice(required): The voice to use -alloy,ash,ballad,coral,echo,fable,nova,onyx,sage, orshimmer
Example:
{
"voice": "nova"
}set_tone
Set the default tone/instructions for how text should be spoken in all future TTS requests.
Parameters:
tone(required): The tone/instructions to use (e.g., "Speak slowly and calmly", "Be enthusiastic and energetic")
Example:
{
"tone": "Speak in a warm, friendly manner with moderate pacing"
}๐ Usage Examples
Basic Summary
"Please summarize this article and play it as audio"The LLM will:
Generate a summary of the content
Use the
play_summarytool to convert it to speechThe audio will play in the background with saved preferences
Set Default Voice
"Set the default voice to nova"This will save "nova" as your preferred voice for all future summaries.
Set Default Tone
"Set the tone to be warm and conversational with a slower pace"This will save your tone preference for all future summaries.
Custom Voice (One-time)
"Summarize this document and play it using the 'sage' voice"This will use "sage" for this summary only, without changing your default.
With Custom Instructions (One-time)
"Create an audio summary of this text. Make it sound enthusiastic and energetic."This will use custom instructions for this summary only.
๐ฏ Voice Options
Voice | Description |
| Neutral and balanced |
| Warm and engaging |
| Expressive and dramatic |
| Clear and professional (default) |
| Smooth and reflective |
| Expressive and animated |
| Friendly and upbeat |
| Deep and authoritative |
| Wise and measured |
| Soft and gentle |
๐งช Development
# Install dependencies
pip install -r requirements.txt
# Install in development mode
pip install -e .
# Run the server
python -m summarize_mcp
# Run tests
python test.py
# Run with debug logging
DEBUG=true python -m summarize_mcp๐๏ธ Architecture
summarize-mcp/
โโโ src/
โ โโโ summarize_mcp/
โ โโโ __init__.py # Package initialization
โ โโโ __main__.py # Entry point for python -m
โ โโโ server.py # Main MCP server implementation
โโโ pyproject.toml # Python project metadata
โโโ requirements.txt # Python dependencies
โโโ test.py # Test script
โโโ README.md # This file๐ง Technical Details
Audio Format: MP3 (OpenAI TTS output format)
Temporary Files: Stored in system temp directory
File Cleanup: Automatic cleanup after 10 seconds (configurable)
Old File Purge: Files older than 1 hour are cleaned on startup
Platform Support:
macOS: Uses built-in
afplayWindows: Uses PowerShell with Windows Media Player
Linux: Auto-detects available player (mpg123, sox, ffmpeg, vlc, alsa)
Fallback: Opens with system default audio application
State Management:
Preferences saved to
~/.summarize-mcp-state.jsonPersists voice and tone settings between sessions
Automatic loading on startup
Error Handling: Comprehensive error handling with specific error types
Validation: Input validation using Pydantic models
๐จ Troubleshooting
"OPENAI_API_KEY environment variable is not set"
Set your OpenAI API key in the Claude Desktop configuration.
"No audio player available"
Linux users: Install one of the supported audio players:
# Ubuntu/Debian
sudo apt-get install mpg123
# or
sudo apt-get install sox
# or
sudo apt-get install ffmpeg
# or
sudo apt-get install vlc
# Fedora/RHEL
sudo dnf install mpg123
# or similar for other players
# Arch
sudo pacman -S mpg123
# or similar for other playersWindows/macOS: Audio playback should work out of the box.
Audio doesn't play
Check system volume
Ensure no other audio issues on your system
Enable debug logging with
DEBUG=trueCheck the logs for any errors
๐ Changelog
v2.0.0 (Python Rewrite)
๐ Complete rewrite in Python for better cross-platform support
๐ง Improved async handling with Python's asyncio
๐ฆ Simplified installation with pip
๐ก๏ธ Enhanced type safety with Pydantic
๐ Better performance and reliability
v1.2.0 (Persistent Preferences)
๐พ Added persistent state management for voice and tone preferences
๐ฏ Added
set_voicetool to set default voice๐ฏ Added
set_tonetool to set default speaking instructions๐ Added support for new OpenAI voices: ash, ballad, and sage
๐
play_summarynow uses saved preferences unless overridden๐ State saved to
~/.summarize-mcp-state.json
v1.1.0 (Cross-Platform Support)
๐ Added Windows support using PowerShell/Windows Media Player
๐ง Added Linux support with auto-detection of audio players
๐ Added fallback to system default audio player
๐ Updated documentation for multi-platform usage
v1.0.0 (Initial Release)
๐ Initial release
โจ Core TTS functionality with OpenAI integration
โจ Support for 7 different voices
โจ Custom speaking instructions
โจ Background audio playback on macOS
โจ Automatic file cleanup
โจ TypeScript implementation
โจ Comprehensive error handling
๐ฐ Estimated Costs
This tool uses OpenAI's gpt-4o-mini-tts model for text-to-speech conversion. Here's the pricing breakdown:
Model | Audio Output Price | Estimated Cost |
| $12.00 per 1M tokens | $0.015 per minute of audio |
Cost Examples:
100-word summary (~30 seconds): ~$0.0075
500-word summary (~2.5 minutes): ~$0.0375
1000-word summary (~5 minutes): ~$0.075
The actual cost depends on:
Length of your summaries
Speaking speed (instructions can affect this)
How frequently you use the tool
For current pricing details, see OpenAI's pricing page.
๐ฎ Roadmap
Cross-platform audio playback (Windows, Linux)
Python implementation for better cross-platform support
Additional TTS providers (ElevenLabs, Amazon Polly)
Audio format options (WAV, OGG)
Playback control (pause, resume, stop)
Queue management for multiple summaries
Audio file caching
Speed and pitch controls
SSML support for advanced speech control
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Built on the Model Context Protocol specification by Anthropic
Powered by OpenAI's TTS API
Special thanks to the MCP community for inspiration and support
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FiveOhhWon/summarize-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server