炖菜
StewReads是一个本地MCP服务器,可以将人工智能对话转换为干净、格式良好的电子书。一切都在你的机器上运行,不需要帐户,也不需要云后端。从您的聊天中生成EPUB文件,并将其直接发送到Kindle或任何电子邮件地址。适用于Claude Desktop和其他MCP兼容客户端。
网站与本地套餐
StewReads的官方网站是 stewreads.com这个PyPI包, stewreads-mcp,是本地第一个MCP版本,适合那些想在自己的机器上从Claude Desktop运行电子书生成的人。安装此软件包不会连接到StewReads云后端。
特性
- 本地第一台无登录或云后端的MCP服务器
- 本地stdio MCP服务器(无后端调用)
- 从降价生成EPUB
- 将生成的电子书保存到配置的本地目录
- 通过内置的Gmail SMTP(应用程序密码)通过电子邮件发送生成的EPUB文件
- 通过ElevenLabs TTS生成可选MP3有声读物
用例
- 与克劳德一起学习一个新话题,并将讨论变成一本精美的电子书,供以后阅读。
- 在飞行前生成一本重点电子书,并在电子阅读器上离线阅读。
- 将长时间的计划或研究聊天变成一个干净的文档,您可以随时重新访问。
- 通过辅导或面试准备对话创建Kindle准备的学习笔记。
- 通过电子邮件与朋友或队友保存和分享人工智能生成的解释。
需求
- Python 3.10+
- uv用于回购开发
从PyPI安装
安装已发布的软件包:
pip install stewreads-mcpmacOS安装:
brew install uv来自Repo的设置
从该存储库克隆并安装:
git clone git@github.com:ankitvg/stewreads-local.git
cd stewreads-local
uv sync这包括pandoc via pypandoc-binary,因此不需要单独安装pandoc。
更新依赖关系
uv sync配置
创建 ~/.config/stewreads/config.toml:
[paths]
output_dir = "/Users/you/Projects/generated_books"
[email]
from_email = "you@gmail.com"
default_to_email = "kindle-or-reader@example.com"重要信息(Kindle用户): 为了使Kindle交付正常工作,您必须添加您的 from_email 致你的 批准的个人文档电子邮件列表 在您的亚马逊帐户设置中。否则,亚马逊将出于安全考虑阻止传入的电子书。可选环境覆盖:
STEWREADS_CONFIG_PATH(配置文件的路径)STEWREADS_OUTPUT_DIR(覆盖配置的输出目录)STEWREADS_FROM_EMAIL(覆盖发件人电子邮件)STEWREADS_DEFAULT_TO_EMAIL(覆盖默认收件人电子邮件)
发送电子邮件所需的密码:
STEWREADS_GMAIL_APP_PASSWORD(Gmail应用程序密码)
有声读物环境变量(仅在以下情况下使用 save_ebook(..., create_audio=true)):
ELEVENLABS_API_KEY(需要生成MP3文件)ELEVENLABS_VOICE_ID(可选语音覆盖)
有声读物默认值:
- 声音:瑞秋(
21m00Tcm4TlvDq8ikWAM) - 型号:
eleven_multilingual_v2 - 输出格式:
mp3_44100_128
运行MCP服务器
uv run stewreads-mcp克劳德桌面(Mac)示例
添加到克劳德桌面 claude_desktop_config.json MCP配置:
{
"mcpServers": {
"stewreads": {
"command": "uv",
"args": [
"--directory",
"/Users/you/Projects/stewreads-local",
"run",
"stewreads-mcp"
],
"env": {
"STEWREADS_CONFIG_PATH": "/Users/you/.config/stewreads/config.toml",
"STEWREADS_GMAIL_APP_PASSWORD": "your-16-char-app-password",
"ELEVENLABS_API_KEY": "your-elevenlabs-api-key",
"ELEVENLABS_VOICE_ID": "21m00Tcm4TlvDq8ikWAM"
}
}
}
}暴露的MCP工具
get_stew_prompt()get_stew_config()get_email_status()save_stew_config(output_dir)save_ebook(markdown, title, filename?, original_prompt?, create_audio?)email_ebook(to_email?, ebook_path?, subject?, body?)
异步有声读物行为
当你打电话的时候 save_ebook(..., create_audio=true):
- EPUB保存首先完成,Claude可以立即返回该结果。
- MP3生成在后台继续,并可能在响应后仍在运行。
- 回应包括
audio_status="generating"和一个audio_path您可以检查输出目录。
第一次克劳德流
- 呼叫
get_stew_config(). - 如果
configured是false,询问用户首选的输出目录并调用save_stew_config(output_dir=...). - 呼叫
save_ebook(...)设置配置后。 - 呼叫
get_email_status()在发送之前。 - 呼叫
email_ebook(...)发送最新的EPUB(或指定ebook_path).
测试(本地开发)
运行测试:
uv run --with pytest python -m pytest -q tests可选皮棉检查:
uv run --with ruff ruff check src tests开发外壳安全
运行多步shell命令时,您可能会看到 set -euo pipefail:
-e:命令失败时停止。-u:在未设置的变量上失败。-o pipefail:如果管道中的任何命令失败,则失败。
