edge-tts-mcp-server

Komorebi-yaodong/edge-tts-mcp-server

3.3

If you are the rightful owner of edge-tts-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Edge TTS MCP Server integrates Microsoft Edge Read Aloud's high-quality speech synthesis with URUSAI!'s file storage service, enabling natural multilingual speech generation and cloud storage.

Tools
1
Resources
0
Prompts
0

Edge TTS MCP Server

License: MIT

这是一个 MCP (Model Context Protocol) 服务器,集成了 Microsoft Edge Read Aloud 的高质量语音合成能力和 URUSAI! 的图床/文件存储服务。

它可以让 Claude Desktop 或 LangChain Agent 具备“说话”的能力:能够生成极其自然的中文/多语言语音,支持多片段拼接,并将生成的 MP3 音频自动上传至云端,返回可永久访问的播放链接。

✨ 特性

  • 微软超自然语音 (Neural Voices): 使用 Edge 浏览器同款的 zh-CN-Xiaoxiao (晓晓)、zh-CN-Yunyang (云扬) 等高质量语音。
  • 智能音频合并 (Smart Merge): 支持一次性输入多个文本片段,服务器会自动将它们无缝拼接成一个完整的 MP3 文件,非常适合生成长对话或有停顿的旁白。
  • 精细化控制 (Precise Control): 支持自定义语速、语调,并能精确控制段落之间的静音时长(毫秒级)。
  • 自动云端存储 (Auto Upload): 生成的音频文件会自动上传至 URUSAI!,直接返回公网 URL,方便在大模型对话中直接播放或通过 API 调用。

🧰 工具详情 (Tools)

本服务器向 MCP 客户端暴露了一个核心工具:

batch_generate_speech

用于将文本转换为语音,支持批量处理和合并。

  • 描述: Generates speech from plain text, returns public audio URLs. Supports merging multiple segments.
  • 输入参数 (Input Schema):

此工具接受一个 segments 数组,每个对象包含以下字段:

参数名类型必填说明
speech_contentstring纯文本内容。请勿使用 XML/SSML 标签,直接输入文字即可。
voice_idstring声音 ID (详见下方列表)。默认为 zh-CN-XiaoxiaoMultilingualNeural
speech_ratenumber语速控制 (详见下方特殊说明)。默认为 25
speech_pitchnumber语调百分比。例如 20 为高音,-10 为低音。默认为 0
pause_after_msnumber在此片段播放结束后,插入的静音时长(毫秒)。
merge_audioboolean仅需在第一个片段设置。设为 true 将合并所有片段为一个 MP3。
🚀 语速设置说明 (speech_rate)

本服务器重新定义了语速参数的数值逻辑,请务必遵守:

数值速度描述适用场景
25标准速度 (Normal)默认值。适合大多数阅读、对话场景 (对应 API +25%)。
0慢速 (Slow)适合悲伤、严肃、恐怖或深沉的独白 (对应 API +0%)。
40快速 (Fast)适合激动、争吵、兴奋或紧急广播 (对应 API +40%)。
🗣️ 支持的声音列表 (voice_id)

支持微软 Azure/Edge 系列的大量语音,部分推荐如下:

ID描述风格
zh-CN-XiaoxiaoMultilingualNeural晓晓 (女)默认,多语言,温柔,全能型
zh-CN-YunyiMultilingualNeural云逸 (男)默认,多语言,稳重
zh-CN-YunyangNeural云扬 (男)央视播音腔,专业,阳光
zh-CN-XiaoshuangMultilingualNeural晓双 (女)萝莉音,可爱
zh-CN-YunxiNeural云希 (男)少年音,清朗
zh-CN-XiaomoNeural晓墨 (女)文艺,情感丰富

(完整列表请参考源代码中的 VOICE_MAP)

🦜 LangChain 集成

你可以使用 langchain-mcp-adapters 将此 TTS 能力赋予你的 AI Agent。

import { MultiServerMCPClient } from "@langchain/mcp-adapters";
import { ChatAnthropic } from "@langchain/anthropic";
import { createAgent } from "langchain";

// 1. 连接 MCP 服务器
const client = new MultiServerMCPClient({
    "edge-tts": {
        transport: "stdio",
        command: "node",
        args: ["/path/to/edge-tts-mcp-server/dist/index.js"], // 指向编译后的文件
    },
});

// 2. 获取工具并创建 Agent
const tools = await client.getTools();
const agent = createAgent({
    model: "claude-3-5-sonnet-latest",
    tools,
});

// 3. 调用示例:生成一段带停顿的合并语音
await agent.invoke({
    messages: [{ 
        role: "user", 
        content: "请用云扬的声音说一句'警报!警报!',语速要快,然后停顿一秒,再说'系统正在崩溃',语速放慢。请合并成一个音频文件。" 
    }],
});

🚀 使用方法 (Claude Desktop)

直接修改 Claude Desktop 的配置文件以在本地运行。

1. 找到配置文件

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

2. 添加配置

{
  "mcpServers": {
    "edge-tts": {
      "command": "npx",
      "args": [
        "-y",
	"edge-tts-mcp-server" 
      ]
    }
  }
}

或者git clone到本地

{
  "mcpServers": {
    "edge-tts": {
      "command": "node",
      "args": [
	"项目的绝对路径(/.../edge-tts-mcp-server)/dist/index.js" 
      ]
    }
  }
}

🛠️ 本地开发与构建

如果你想修改代码或进行调试:

# 1. 克隆仓库 (假设你已经有代码)
# git clone ...
cd edge-tts-mcp-server

# 2. 安装依赖
pnpm install

# 3. 编译 (生成 dist/index.js)
pnpm build

环境变量 (可选)

可以使用特定的 API Token记录自己生成的音频:

  • URUSAI_API_TOKEN: 设置上传到 api.urusai.cc 的 Token (如果未设置,服务器将匿名上传)。

License

MIT