Skip to main content
Glama
yuppie1949

yuppie-mcp-tts

by yuppie1949
README.md
# yuppie-mcp-tts

TTS (文字转语音) MCP Server — 基于 [edge-tts](https://github.com/rany2/edge-tts) (微软 Edge 免费 TTS 引擎),无需 API Key,无需配置。

## 功能

| 工具名 | 说明 |
|--------|------|
| `text_to_speech` | 文字转语音,返回 base64 MP3 音频(可选嗓音、语速) |
| `list_voices` | 列出 50+ 可用嗓音(中英文等多语种) |
| `text_to_speech_file` | 文字转语音并保存为 MP3 文件到磁盘 |

**参数说明:**
- `voice`: 嗓音名称,如 `en-US-JennyNeural`、`zh-CN-XiaoxiaoNeural`,默认 `en-US-JennyNeural`
- `speed`: 语速倍率 0.1~3.0,1.0 为正常速度

## 只需要 TTS 库?(无 MCP)

本包是 MCP 壳:核心合成逻辑在库包 `yuppie-tts`(PyPI 分发,`pip install yuppie-tts`),本包依赖它。

如只需在 Python 项目中合成语音(不要 MCP),直接装库包:

```bash
pip install yuppie-tts
```

```python
import asyncio
from yuppie_tts import synthesize

async def main():
    audio = await synthesize("你好世界", voice="zh-CN-XiaoxiaoNeural")
    with open("/tmp/output.mp3", "wb") as f:
        f.write(audio)

asyncio.run(main())
```

## 快速开始

### 安装

```bash
pip install yuppie-mcp-tts
```

### 运行

```bash
yuppie-mcp-tts
```

无需任何配置,开箱即用。

## MCP 集成

### Claude Code

在 `.mcp.json` 中添加:

```json
{
  "mcpServers": {
    "yuppie-mcp-tts": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--refresh", "yuppie-mcp-tts"]
    }
  }
}
```

### Cursor / Cherry Studio / Claude Desktop / OpenCode

```json
{
  "mcpServers": {
    "yuppie-mcp-tts": {
      "command": "uvx",
      "args": ["--refresh", "yuppie-mcp-tts"]
    }
  }
}
```

## 可用嗓音

50+ 嗓音覆盖多种语言和地区变体:

**英语 (US):** JennyNeural, GuyNeural, AriaNeural, DavisNeural, JaneNeural, JasonNeural, NancyNeural, SaraNeural, TonyNeural

**英语 (UK):** SoniaNeural, RyanNeural, LibbyNeural, MaisieNeural

**英语 (AU):** NatashaNeural, WilliamNeural

**英语 (CA):** ClaraNeural, LiamNeural

**英语 (IN):** NeerjaNeural, PrabhatNeural

**中文:** XiaoxiaoNeural, YunxiNeural, YunjianNeural, XiaoyiNeural, YunyangNeural

**其他:** 法语、德语、日语、韩语、葡萄牙语、西班牙语等

使用 `list_voices` 工具可查看完整列表。

## 示例

```text
用户: 把 "你好世界" 转成语音
AI: [调用 text_to_speech(text="你好世界", voice="zh-CN-XiaoxiaoNeural")]

用户: 把 "Hello World" 用英式发音保存到 /tmp/hello.mp3
AI: [调用 text_to_speech_file(text="Hello World", voice="en-GB-SoniaNeural", output_path="/tmp/hello.mp3")]
```

## 开发

```bash
uv pip install -e ".[dev]"
uv run pytest -v
```

### 本地调试

```bash
npx @modelcontextprotocol/inspector uv run yuppie-mcp-tts
```

## 许可证

MIT

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: listing voices, generating speech as base64, and generating speech as a file. No overlap or confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: list_voices, text_to_speech, text_to_speech_file.

Tool Count4/5

3 tools is slightly minimal but appropriate for a simple TTS server: list voices, generate speech (return and save). Each tool is necessary.

Completeness4/5

Covers core TTS operations: listing voices and generating speech. Missing explicit control over voice selection in generation tools, but the set is functional.

Maintenance

ActivityMaintained
ResponsivenessNo issues