mcp概述
🤖 与合著 克劳德代码 -自2025年以来,让人工智能总结变得可闻! 🔊
模型上下文协议(MCP)服务器,使用OpenAI的TTS API将文本摘要转换为语音,并在所有主要平台(macOS、Windows、Linux)的后台播放。
🌟 概述
summary-mcp使LLM能够使用OpenAI最先进的文本到语音模型将任何文本摘要转换为听起来自然的语音。非常适合创建文档、文章或任何受益于听觉演示的内容的音频摘要。
🚀 主要特点
- 🎯 简单而专注:一个工具在一件事上做得特别好
- 🎤 多种声音:从10种不同的OpenAI声音中选择(合金、灰烬、民谣、珊瑚、回声、寓言、新星、玛瑙、圣人、微光)
- 🎨 客户指令:控制文本的发音方式
- 🔧 背景回播:音频在后台播放而不会被遮挡
- 🌍 交叉平台的:适用于macOS、Windows和Linux
- 💾 持久首选项:保存您最喜欢的语音和音调设置
- 🎯 多种工具:设置语音、设置音调和播放摘要
- 🧹 自动清理:临时文件会自动清理
- 🛡️ 类型安全:带有Pydantic验证的完整Python类型提示
- 📊 综合录井:故障排除的调试模式
- ⚡ 性能优化:高效的文件处理和清理
📋 先决条件
- python 3.8或更高
- OpenAI API密钥 可以访问TTS模型
- 音频播放器 (自动检测):
- macOS:内置 afplay (无需安装) - 视窗:内置Windows Media Player(无需安装) - Linux:其中之一: mpg123, sox (play), ffmpeg (ffplay), vlc (cvlc),或 alsa-utils (aplay)
📦 安装
git clone https://github.com/FiveOhhWon/summarize-mcp.git
cd summarize-mcp
pip install -e .🏃 配置
克劳德桌面
将此配置添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json\ Linux: ~/.config/Claude/claude_desktop_config.json
配置:
{
"mcpServers": {
"summarize": {
"command": "python",
"args": ["/absolute/path/to/summarize-mcp/src/summarize_mcp/server.py"],
"env": {
"OPENAI_API_KEY": "your-openai-api-key"
}
}
}
}环境变量
OPENAI_API_KEY(必需):您的OpenAI API密钥DEBUG(可选):设置为"true"用于详细日志记录
🛠️ 可用工具
play_summary
将文本转换为语音并在后台播放。除非被覆盖,否则使用保存的语音和音调首选项。
参数:
summary(必填):要转换为语音的文本voice(可选):要使用的语音-alloy,ash,ballad,coral,echo,fable,nova,onyx,sage,或shimmer(如果未指定,则使用已保存的首选项)instructions(可选):文本发音说明(如果未指定,则使用保存的音调)
例子:
{
"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
为所有未来的文本到语音转换设置默认语音。
参数:
voice(必填):要使用的声音-alloy,ash,ballad,coral,echo,fable,nova,onyx,sage,或shimmer
例子:
{
"voice": "nova"
}set_tone
为未来所有TTS请求中的文本发音设置默认音调/说明。
参数:
tone(必填):使用的语气/说明(例如,“缓慢而冷静地说话”,“热情而充满活力”)
例子:
{
"tone": "Speak in a warm, friendly manner with moderate pacing"
}📖 使用示例
基本概述
"Please summarize this article and play it as audio"法学硕士将:
- 生成内容摘要
- 使用
play_summary将其转换为语音的工具 - 音频将在后台播放,并保存首选项
设置默认语音
"Set the default voice to nova"这将保存“nova”作为您未来所有摘要的首选声音。
设置默认音调
"Set the tone to be warm and conversational with a slower pace"这将保存您对所有未来摘要的音调偏好。
自定义语音(一次)
"Summarize this document and play it using the 'sage' voice"这将仅在此摘要中使用“sage”,而不会更改您的默认值。
使用自定义说明(一次性)
"Create an audio summary of this text. Make it sound enthusiastic and energetic."这将仅使用此摘要的自定义说明。
🎯 语音选项
| 语音 | 描述 |
|---|---|
alloy | 中立和平衡 |
ash | 温暖而迷人 |
ballad | 富有表现力和戏剧性 |
coral | 清晰专业(默认) |
echo | 光滑反光 |
fable | 富有表现力和动画 |
nova | 友好乐观 |
onyx | 深刻而权威 |
sage | 明智而慎重 |
shimmer | 柔软而温柔 |
🧪 发展
# 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🏗️ 建筑
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🔧 技术细节
- 音频格式:MP3(OpenAI TTS输出格式)
- 临时文件:存储在系统临时目录中
- 文件清理:10秒后自动清理(可配置)
- 旧文件清除:启动时会清理超过1小时的文件
- 平台支持:
- macOS:使用内置 afplay - 视窗:在Windows Media Player中使用PowerShell - Linux:自动检测可用播放器(mpg123、sox、ffmpeg、vlc、alsa) - 后备方案:使用系统默认音频应用程序打开
- 状态管理:
- 首选项已保存到 ~/.summarize-mcp-state.json - 在会话之间保持语音和音调设置 - 启动时自动加载
- 错误处理:针对特定错误类型的全面错误处理
- 验证:使用Pydantic模型进行输入验证
🚨 故障排除
“未设置OPENAI_API_KEY环境变量”
在Claude Desktop配置中设置您的OpenAI API密钥。
“没有可用的音频播放器”
Linux用户:安装支持的音频播放器之一:
# 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:音频播放应该开箱即用。
音频无法播放
- 检查系统音量
- 确保您的系统上没有其他音频问题
- 使用启用调试日志记录
DEBUG=true - 检查日志是否有任何错误
📝 更新日志
v2.0.0(Python重写)
- 🐍 用Python完全重写以获得更好的跨平台支持
- 🔧 使用Python的asyncio改进异步处理
- 📦 使用pip简化安装
- 🛡️ Pydantic增强了类型安全性
- 🚀 更好的性能和可靠性
v1.2.0(持久首选项)
- 💾 为语音和音调偏好添加了持久状态管理
- 🎯 添加
set_voice设置默认语音的工具 - 🎯 添加
set_tone设置默认口语指令的工具 - 🎆 新增了对OpenAI新声音的支持:ash、民谣和sage
- 🔄
play_summary现在使用保存的首选项,除非被覆盖 - 📝 状态保存到
~/.summarize-mcp-state.json
v1.1.0(跨平台支持)
- 🌍 使用PowerShell/Windows Media Player添加了Windows支持
- 🐧 添加了Linux支持,可自动检测音频播放器
- 🔄 添加了系统默认音频播放器的回退功能
- 📝 多平台使用的更新文档
v1.0.0(初始版本)
- 🎉 初始版本
- ✨ 核心TTS功能与OpenAI集成
- ✨ 支持7种不同的声音
- ✨ 自定义语音指令
- ✨ macOS上的背景音频播放
- ✨ 自动文件清理
- ✨ TypeScript实现
- ✨ 全面的错误处理
💰 估计成本
该工具使用OpenAI gpt-4o-mini-tts 文本到语音转换模型。以下是定价明细:
| 型号 | 音频输出价格 | 估计成本 |
|---|---|---|
gpt-4o-mini-tts | 每100万代币12.00美元 | 每分钟0.015美元 音频 |
成本示例:
- 100字摘要 (约30秒):约0.0075美元
- 500字摘要 (约2.5分钟):约0.0375美元
- 1000字摘要 (约5分钟):约0.075美元
实际成本取决于:
- 总结的长度
- 说话速度(指令可能会影响这一点)
- 您使用该工具的频率
有关当前定价的详细信息,请参阅 OpenAI的定价页面.
🔮 路线图
- \[x\] 跨平台音频播放(Windows、Linux)
- \[x\] Python实现更好的跨平台支持
- \[\]其他TTS提供商(ElevenLabs、Amazon Polly)
- \[\]音频格式选项(WAV、OGG)
- \[\]播放控制(暂停、恢复、停止)
- \[\]多个摘要的队列管理
- \[\]音频文件缓存
- \[\]速度和俯仰控制
- \[\]支持高级语音控制的SSML
🤝 贡献
欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 建立在 模型上下文协议 Anthropic的规格
- 由...驱动 OpenAI的TTS API
- 特别感谢MCP社区的启发和支持
