Metadata-Version: 2.4
Name: edge-tts-mcp
Version: 0.1.0
Summary: MCP server for text-to-speech using Microsoft Edge TTS
Project-URL: Homepage, https://github.com/username/edge-tts-mcp
Project-URL: Repository, https://github.com/username/edge-tts-mcp
Project-URL: Issues, https://github.com/username/edge-tts-mcp/issues
Author-email: Nikolay <your@email.com>
License-Expression: MIT
License-File: LICENSE
Keywords: ai,claude,edge-tts,mcp,text-to-speech,tts
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Requires-Python: >=3.10
Requires-Dist: edge-tts>=6.1.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: pydantic-settings>=2.0.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Description-Content-Type: text/markdown

# Edge TTS MCP

Minimal MCP server for text-to-speech using Microsoft Edge TTS.

**Let Claude speak!**

## Features

- 300+ voices in 50+ languages
- Customizable: speed, volume, pitch
- Zero API keys required
- Works with Claude Code and Claude Desktop

## Installation

```bash
pip install edge-tts-mcp
```

**System requirement:** One of these audio players:
- `ffplay` (from ffmpeg) - recommended
- `mpv`
- `paplay` (PulseAudio)

## Setup

Add to your MCP configuration:

**Claude Code** (`.mcp.json`):
```json
{
  "mcpServers": {
    "edge-tts": {
      "command": "edge-tts-mcp"
    }
  }
}
```

**Claude Desktop** (`claude_desktop_config.json`):
```json
{
  "mcpServers": {
    "edge-tts": {
      "command": "edge-tts-mcp"
    }
  }
}
```

## Usage

### speak
Speak text aloud.

```
speak("Hello, world!")
speak("Привет!", voice="ru-RU-DmitryNeural")
speak("Fast!", rate="+50%")
```

**Parameters:**
| Parameter | Description | Example |
|-----------|-------------|---------|
| `text` | Text to speak | `"Hello"` |
| `voice` | Voice name | `"en-US-AriaNeural"` |
| `rate` | Speed (-50% to +100%) | `"+20%"` |
| `volume` | Volume (-50% to +100%) | `"+10%"` |
| `pitch` | Pitch (-50Hz to +50Hz) | `"+5Hz"` |

### list_available_voices
List voices, optionally filtered by language.

```
list_available_voices()
list_available_voices("ru")
```

### get_config
Show current settings.

## Configuration

Set defaults via environment variables or `.env` file:

```bash
EDGE_TTS_VOICE=en-US-AriaNeural
EDGE_TTS_RATE=+0%
EDGE_TTS_VOLUME=+0%
EDGE_TTS_PITCH=+0Hz
EDGE_TTS_PLAYER=auto  # auto, ffplay, mpv, paplay
```

## Popular Voices

| Language | Voice | Gender |
|----------|-------|--------|
| English (US) | en-US-AriaNeural | Female |
| English (US) | en-US-GuyNeural | Male |
| Russian | ru-RU-DmitryNeural | Male |
| Russian | ru-RU-SvetlanaNeural | Female |
| German | de-DE-ConradNeural | Male |
| French | fr-FR-DeniseNeural | Female |
| Spanish | es-ES-AlvaroNeural | Male |
| Chinese | zh-CN-XiaoxiaoNeural | Female |

Run `list_available_voices()` for full list.

## License

MIT
