关于 mcp-yoto
mcp-yoto 将 Yoto 媒体库和家庭设备连接到兼容 MCP 的 AI 应用,适合管理卡片和音频内容的家长。它可创建和编辑卡片、管理曲目与图标并查看已连接的播放器,但不提供远程控制。
主要功能
- 01列出个人及家庭卡片
- 02创建和编辑 MYO 卡片
- 03上传音频并添加曲目
- 04搜索和上传像素图标
- 05查看家庭播放器设备
- 06查看设备配置
适用场景
- 01用音频文件制作睡前卡片
- 02向现有卡片添加歌曲
- 03为章节挑选图标
- 04查看哪些家庭播放器在线
MCP 相关
通过远程 Streamable HTTP 和本地 stdio 服务提供 15 个 Yoto 工具。MCP 客户端可管理卡片、曲目和图标,并查看家庭设备;无法控制播放器。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp-yoto.danpillay87.workers.dev/mcpclaude mcp add --transport http danpillay87-mcp-yoto https://mcp-yoto.danpillay87.workers.dev/mcp{"mcpServers":{"danpillay87-mcp-yoto":{"type":"http","url":"https://mcp-yoto.danpillay87.workers.dev/mcp"}}}在 Cursor 中打开{"servers":{"danpillay87-mcp-yoto":{"type":"http","url":"https://mcp-yoto.danpillay87.workers.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"danpillay87-mcp-yoto":{"type":"http","url":"https://mcp-yoto.danpillay87.workers.dev/mcp"}}}{"mcpServers":{"danpillay87-mcp-yoto":{"serverUrl":"https://mcp-yoto.danpillay87.workers.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
mcp-yoto
适用于 Yoto — 将你的 Yoto 媒体库连接到 Claude 和 ChatGPT。
家长须知
连接后,你可以:
- 在 Claude 或 ChatGPT 中查看 Yoto 媒体库里的所有卡片(包括你自己的 MYO 卡片和家庭媒体库)。
- 请 AI 助手制作新卡片 — 将音频文件、故事或一组音轨变成 Yoto 上的卡片。
- 将音轨添加到你已制作的卡片中,无需打开 Yoto 应用。
- 搜索并为卡片和章节设置像素艺术图标。
- 查看家人的 Yoto 播放器 — 了解哪些设备已连接,但无法远程控制它们。
- 等待 Yoto 开放支持:询问播放器当前正在播放什么 — 加载了哪张卡片、电量、音量、夜灯和耳机状态。
你可以这样说
连接后,只需用日常语言提问:
- “用这三个文件制作一张睡前卡片,并为每条音轨配上月亮图标。”
- “显示我的 Yoto 媒体库里的所有卡片。”
- “把这首新歌添加到‘Car Songs’卡片。”
- “为第二章找一个恐龙像素艺术图标。”
- “我的孩子们的哪些 Yoto 播放器现在处于在线状态?”
登录方式
将一个链接粘贴到你的 AI 应用中。该链接会带你前往Yoto 自己的登录页面 — 你在那里登录,而不是在这里。我们绝不会看到你的密码。你的 Yoto 令牌会以加密形式存储,而密钥绝不会写入我们的存储 — 它使用你的 AI 应用自己的令牌进行封装;我们只保留该令牌的哈希,因此仅凭我们的数据库副本无法解密任何内容。需要坦诚说明两点:我们使用的开源库采用固定的封装方法,并非此服务独有的秘密,因此持有有效客户端令牌的人可以解密相应记录;而且,由于服务器由我们运行,原则上我们可以修改其代码,截取传输中的令牌。准确的说法是“存储的内容无法直接读取,我们没有常规手段读取它”,而不是“我们根本无法读取它”。你可以随时在 Yoto 账户设置中撤销访问权限,立即断开连接。完整、通俗的说明请参阅 PRIVACY.md。
🚧 正在重建(2026 年 9 月)。 命令行版本目前可用;适用于 claude.ai / ChatGPT 的“一键粘贴链接”版本将在约 2 周后上线。
开发者须知
连接
🚧 正在重建(2026 年 9 月)。 下方的
npx方式目前可用。适用于 claude.ai 和 ChatGPT 的“一键粘贴链接”方式将在网站地址上线后开放 — 预计于 2026 年 9 月。
claude.ai — 添加 Yoto 连接器(或前往 Settings → Connectors → Add custom connector,信息已预填)。
ChatGPT — Settings → Connectors → Advanced → Developer mode → Add connector → 粘贴 https://mcp-yoto.danpillay87.workers.dev/mcp。
Claude Code:
claude mcp add --transport http yoto https://mcp-yoto.danpillay87.workers.dev/mcp
高级用户 — 立即在本地运行:
npx -y mcp-yoto
- Cursor: 添加到 Cursor
- VS Code: 在 VS Code 中安装
工具
15 个工具,全部以 yoto_* 命名,每个工具都附带标题、描述、图标和全部四种 MCP 注解提示(只读 / 破坏性 / 幂等 / 开放世界):
| 工具 | 用途 | 关键输入 | 只读 |
|---|---|---|---|
yoto_status | 身份验证状态、权限范围、令牌存储类型(CLI)、API 可达性 | – | 是 |
yoto_sign_in | CLI:启动 loopback PKCE。远程:通过客户端的连接器设置登录 | openBrowser? | 否 |
yoto_sign_out | CLI:删除本地令牌。远程:说明如何在 Yoto 断开连接并撤销授权 | confirm | 破坏性 |
yoto_list_cards | 我的 MYO 卡片或家庭库 | source: myo|family、limit?、cursor? | 是 |
yoto_get_card | 包含章节 / 曲目的完整卡片 | cardId | 是 |
yoto_create_card | 新建 MYO 卡片,可选添加曲目和图标 | title、tracks[]?、iconRef? | 否 |
yoto_update_card | 重命名 / 重新排序 / 设置图标 | cardId、patch | 破坏性、幂等 |
yoto_delete_card | 删除 MYO 卡片 | cardId、confirm | 破坏性 |
yoto_upload_audio | 上传并转码 → yoto:#sha | CLI:audioFilePath · 远程:audioUrl(https,大小有限制,流式传输) | 否 |
yoto_add_track | 上传曲目并添加到卡片 | cardId、audioFilePath|audioUrl、trackTitle?、iconRef? | 否 |
yoto_search_icons | 搜索公开的 16×16 图标目录 | query?、tags?、limit? | 是 |
yoto_upload_icon | 上传自定义的 16×16 图标 | imagePath|imageUrl、title、autoConvert? | 否 |
yoto_list_devices | 家庭播放器(仅查看) | – | 是 |
yoto_get_device_config | 设备配置,包括右侧按钮快捷操作;403 → 友好的 FORBIDDEN_SCOPE | deviceId | 是 |
yoto_player_status | 实时状态:卡片、电池、电量、夜灯、耳机(尚不可用 — 正等待 Yoto 支持);使用了一个标记为弃用的 Yoto 端点(目前尚未公布替代方案) | deviceId?、refresh? | 是 |
架构
一个 Cloudflare Worker 在 Cloudflare 自带的 @cloudflare/workers-oauth-provider 后运行官方 MCP TypeScript SDK v2(无状态 Streamable HTTP)。该 OAuth 提供程序是远程 MCP 身份验证的参考实现,因此本项目只需编写 Yoto 专用的上游处理程序,而不必自行实现 OAuth 服务端。同一核心(Yoto 客户端 + 工具定义)也为 npx mcp-yoto 提供支持,这是一个本地 stdio 服务,可直接用于 Claude Code、Cursor 或任何基于 stdio 的 MCP 客户端。请求的权限范围为 profile offline_access user:content:view user:content:manage user:icons:manage family:library:view family:devices:view — 特意不包含 family:devices:control 或 family:devices:manage,因此本应用仍符合 Yoto Verified 收录资格。(yoto_player_status 工具仍已注册所需的 family:device-status:view 也未请求:Yoto 拒绝了包含此权限范围的实时登录尝试,因此目前第三方应用完全无法获得该权限。)
路线图
| 时间 | 内容 |
|---|---|
| 9 月 14 日当周 | 搭建框架 + 发布这篇项目介绍(你正在阅读) |
| 9 月 14 日当周 | Yoto 客户端 + 15 个工具,针对模拟 API 完成测试 |
| 9 月 14 日当周 | npx mcp-yoto — 本地登录端到端正常运行 |
| 9 月 21 日当周 | 远程连接器:Cloudflare Worker + Yoto OAuth,上线供 claude.ai / ChatGPT 使用 |
| 9 月 21 日当周 | 安全审查、真实客户端验证、提交 Yoto Verified 申请 |
先例项目
这不是第一个 Yoto MCP 服务。bperkinspdx/yoto-mcp-server 是本项目的源头;本项目从它分叉并在其基础上重建。tmcinerney/yoto-mcp 是 npm 上另一个独立的 Yoto MCP 服务,单独构建。
隐私与安全
- PRIVACY.md — 我们能看到和不能看到的内容,使用通俗易懂的语言说明。
- SECURITY.md — 如何报告漏洞,以及令牌存储的设计方式。
许可证
MIT — 详见 LICENSE。部分内容最初衍生自 bperkinspdx/yoto-mcp-server(MIT)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。