Token导航 LogoToken导航

MCP Server · 音视频

ytm MCP

ytm-mcp是一个全功能的YouTube Music MCP服务器,可通过AI助手控制播放、浏览历史、下载歌曲和管理播放列表。

stdio官方级别未说明来源级核验工具 12
TypeScriptClaude语音音频CursorVS Code

快速开始

作者 / 组织
4shil
提供方
4shil

工具数量

12

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

ytm MCP 属于音视频类 MCP Server,公开资料标注 12 个工具,通过stdio 本地进程接入,适配 Claude、Cursor、VS Code,有可以直接复制的安装命令;接入前先确认权限范围。

分类

音视频

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install mutagen --break-system-packages

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 12 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

🎵 ytm-mcp

A full-featured YouTube Music MCP server — control playback, browse history, download songs, manage playlists, and more from any AI assistant.

______________________________________________________________________

什么是ytm-mcp?

ytm-mcp 是一个 模型上下文协议(MCP) 服务器,让AI助手完全控制YouTube音乐。将其连接到Claude、Cursor、VS Code或任何兼容MCP的工具,并用自然语言控制您的音乐。

"What were my last 12 songs?"
"Download all my recent history as opus files"
"Play Stars Ultra Slowed and like it"
"Skip to the next track and turn the volume to 70"
"Create a playlist called Night Drive from my history"

______________________________________________________________________

✨ 特性

类别你得到了什么
🎧 历史用标题、艺术家、专辑和网址抓取您的完整收听历史记录
🔍 搜索在YouTube音乐中搜索任何歌曲、艺术家或专辑
▶️ 回放播放、暂停、跳过、查找、音量、点赞、洗牌、重复
📥 下载通过带有嵌入式元数据和缩略图的yt-dlp将歌曲下载为Opus或MP3
📋 播放列表创建、编辑、导出本地播放列表为JSON或CSV
💾 数据库SQLite持久性——历史记录、下载、播放列表都缓存在本地

______________________________________________________________________

🛠 需求

  • Node.js 18+
  • yt-dlp --用于下载歌曲
  • Python诱变剂 --用于嵌入元数据: pip install mutagen
  • 铬或铬 --必须登录YouTube音乐

______________________________________________________________________

🚀 安装

# 1. Clone the repo
git clone https://github.com/4shil/ytm-mcp.git
cd ytm-mcp

# 2. Install dependencies
npm install

# 3. Build
npm run build

# 4. Configure
cp .env.example .env

查找您的Chrome个人资料路径

这是浏览器存储登录会话的文件夹。

平台路径
Linux(Chrome)~/.config/google-chrome/Default
Linux(Chromium)~/.config/chromium/Default
macOS(Chrome)~/Library/Application Support/Google/Chrome/Default
Windows(Chrome)%LOCALAPPDATA%\Google\Chrome\User Data\Default
⚠️ 该个人资料必须已登录到YouTube音乐。服务器不会处理登录,只需重用现有会话即可。

.env 配置

# Your Chrome/Chromium profile path (see table above)
BROWSER_PROFILE=/path/to/your/chrome-profile

# Where downloaded songs are saved
DOWNLOAD_DIR=./downloads

# SQLite database location
DB_PATH=./db/ytm.db

______________________________________________________________________

🔌 连接到您的AI工具

mcporter命令行界面

安装 麦波特 并注册ytm-mcp:

npm install -g mcporter
mcporter config add ytm-mcp --stdio "node /path/to/ytm-mcp/dist/index.js"

列出所有工具:

mcporter list ytm-mcp

直接从终端调用工具:

mcporter call ytm-mcp.get_history limit=12
mcporter call ytm-mcp.search_song query="Stars Ultra Slowed"
mcporter call ytm-mcp.download_song url="https://music.youtube.com/watch?v=4Z8LwuQ3zao"
mcporter call ytm-mcp.playback_control action=like
mcporter call ytm-mcp.get_current_song

______________________________________________________________________

克劳德桌面版

编辑 claude_desktop_config.json:

  • Linux: ~/.config/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ytm-mcp": {
      "command": "node",
      "args": ["/path/to/ytm-mcp/dist/index.js"],
      "env": {
        "BROWSER_PROFILE": "/path/to/your/chrome-profile"
      }
    }
  }
}

重新启动克劳德桌面。您将在工具列表中看到ytm-mcp。 ✅

______________________________________________________________________

开爪

添加 ~/.openclaw/config.json:

{
  "mcp": {
    "servers": [
      {
        "name": "ytm-mcp",
        "command": "node",
        "args": ["/path/to/ytm-mcp/dist/index.js"],
        "env": {
          "BROWSER_PROFILE": "/path/to/your/chrome-profile"
        }
      }
    ]
  }
}

或者与mcporter合作:

mcporter add ytm-mcp --command "node /path/to/ytm-mcp/dist/index.js"

______________________________________________________________________

光标

创建或编辑 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "ytm-mcp": {
      "command": "node",
      "args": ["/path/to/ytm-mcp/dist/index.js"],
      "env": {
        "BROWSER_PROFILE": "/path/to/your/chrome-profile"
      }
    }
  }
}

______________________________________________________________________

反重力

创建 mcp.json 在Antigravity用户配置目录中:

  • Linux: ~/.config/Antigravity/User/mcp.json
  • macOS: ~/Library/Application Support/Antigravity/User/mcp.json
  • 窗户: %APPDATA%\Antigravity\User\mcp.json
{
  "servers": {
    "ytm-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/ytm-mcp/dist/index.js"],
      "env": {
        "BROWSER_PROFILE": "/path/to/your/chrome-profile"
      }
    }
  }
}

重新加载反重力(Ctrl+Shift+P → Developer: Reload Window). ✅

______________________________________________________________________

VS代码(GitHub副本)

创建 .vscode/mcp.json 在您的工作空间中:

{
  "servers": {
    "ytm-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/ytm-mcp/dist/index.js"],
      "env": {
        "BROWSER_PROFILE": "/path/to/your/chrome-profile"
      }
    }
  }
}

______________________________________________________________________

泽德

添加 ~/.config/zed/settings.json:

{
  "context_servers": {
    "ytm-mcp": {
      "command": {
        "path": "node",
        "args": ["/path/to/ytm-mcp/dist/index.js"],
        "env": {
          "BROWSER_PROFILE": "/path/to/your/chrome-profile"
        }
      }
    }
  }
}

______________________________________________________________________

Continue.dev

添加 ~/.continue/config.json:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "node",
          "args": ["/path/to/ytm-mcp/dist/index.js"],
          "env": {
            "BROWSER_PROFILE": "/path/to/your/chrome-profile"
          }
        }
      }
    ]
  }
}

______________________________________________________________________

任何MCP工具(通用)

ytm-mcp使用标准 stdio传输任何MCP兼容工具都可以连接:

Transport: stdio
Command:   node
Args:      ["/path/to/ytm-mcp/dist/index.js"]

______________________________________________________________________

🧰 工具参考

🎧 历史

get_history

删除您的YouTube音乐收听历史记录。

参数类型默认值说明
limit编号20要获取的歌曲数量
use_cache布尔值false返回缓存的数据库结果(无浏览器)
get_history(limit: 12)
get_history(limit: 50, use_cache: true)

______________________________________________________________________

🔍 搜索与下载

search_song

在YouTube音乐中搜索歌曲。

参数类型默认值说明
querystring必填歌曲、艺术家或专辑名称
limit编号5返回的最大结果
download_song

通过URL下载一首歌曲。

参数类型默认值说明
urlstring必填YouTube音乐URL
format字符串opusopus 或 mp3
titlestring--可选标题提示
download_history

批量下载您最近的收听历史记录。

参数类型默认值说明
limit编号12歌曲下载
format字符串opusopus 或 mp3
list_downloads

列出所有下载的文件及其大小和时间戳。

______________________________________________________________________

▶️ 回放

play_song

搜索并播放歌曲,或通过直接URL播放。

参数类型说明
querystring搜索查询(例如。 "INSONAMIA ZYZZCVNT")
urlstring直接YouTube音乐URL
playback_control

在一个工具中实现完全播放控制。

动作描述
play恢复播放
pause暂停播放
toggle切换播放/暂停
next下一曲目
previous上一曲目
shuffle切换洗牌
repeat循环重复模式
like喜欢当前歌曲❤️
dislike不喜欢当前歌曲
volume设置音量(volume: 80)
seek寻求秒数(seek: 45)
get_current_song

获取当前播放状态。

▶️ Stars (Ultra Slowed) — SCXR SOUL ❤️
⏱ 0:42 / 1:46 | 🔊 80%

______________________________________________________________________

📋 播放列表

create_playlist
参数类型默认值说明
namestring必填播放列表名称
visibility字符串privatepublic 或 private
add_to_playlist
参数类型说明
playlist_idstring目标播放列表ID
songsarray数组 { song_title, song_url, artist }
list_playlists

列出所有已保存的播放列表。

export_playlist
参数类型默认值说明
playlist_idstring必需要导出的播放列表
format字符串jsonjson 或 csv

______________________________________________________________________

🗺 路线图

这些工具计划在未来发布。PR欢迎!

工具说明
get_queue查看当前播放队列
add_to_queue在不中断播放的情况下将歌曲添加到队列中
clear_queue清除当前队列
get_lyrics获取当前歌曲或任何歌曲的歌词
get_recommendations根据收听历史获取AI推荐的歌曲
get_artist_info获取艺术家简介、热门歌曲和唱片
get_album浏览相册并列出所有曲目
get_trending按地区获取热门歌曲和排行榜
remove_from_history从历史记录中删除特定歌曲
download_playlist一次下载整个播放列表
set_sleep_timerN分钟后自动暂停播放
smart_playlist根据情绪、流派或历史自动生成播放列表

______________________________________________________________________

📁 项目结构

ytm-mcp/
├── src/
│   ├── index.ts          # MCP server entry point & tool handlers
│   ├── db.ts             # SQLite database setup & migrations
│   ├── browser/          # Playwright browser control
│   ├── history/          # YouTube Music history scraper
│   ├── downloader/       # yt-dlp search & download
│   ├── tools/            # Playback controls
│   ├── playlist/         # Playlist CRUD
│   └── api/              # YouTube Data API (optional)
├── downloads/            # Downloaded songs (gitignored)
├── db/                   # SQLite database (gitignored)
├── dist/                 # Compiled JS output
├── .env.example          # Environment variable template
└── README.md

______________________________________________________________________

❓ 故障排除

历史记录返回为空\ → 确保 BROWSER_PROFILE 指向已登录YouTube音乐的个人资料。在Chrome/Chromium中打开它,然后先手动登录。

下载失败,出现诱变剂错误

pip install mutagen --break-system-packages

播放控制不起作用\ → YouTube音乐必须在浏览器中打开。跑 play_song 首先打开它。

chromium 未找到\ → 安装它: sudo apt install chromium 或调整 BROWSER_PROFILE 指向Chrome。

构建错误

rm -rf dist node_modules
npm install
npm run build

______________________________________________________________________

🤝 贡献

  1. 分叉回购
  2. 创建要素分支: git checkout -b feat/my-tool
  3. 提交您的更改: git commit -m 'feat: add get_queue tool'
  4. 推送并打开PR

看 路线图 关于接下来要构建什么的想法。

______________________________________________________________________

📄 许可证

MIT© 4小时

工具与能力

工具数量

12

资源数量

0

提示词数量

0

能力标签

音乐控制TypeScript本地部署AI集成播放列表管理歌曲下载历史记录浏览

支持客户端

ClaudeCursorVS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

语音转文字

把会议录音转成文字,再整理要点。

文字转语音

把文案转成配音,调整语速和音色。

视频素材处理

提取字幕、剪出片段、生成封面。

选择建议

值得选的地方

  • 工具数量 12 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor、VS Code,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在音视频场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
ytm MCP

MCP World · 本页

12stdio有1 个2026-05-17
Youtube E0eb3510

MCP World

0stdio有1 个2026-05-17
Ableton MCP B7b69a6a

MCP World

16stdio有2 个2026-05-17
Voicemode MCP

MCP World

0stdio有3 个2026-05-17
Short Video Maker MCP

MCP World

0stdio有3 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

ytm MCP 怎么安装?

公开资料给出的安装命令是 pip install mutagen --break-system-packages,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

ytm MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

ytm MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

ytm MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

ytm MCP 支持哪些客户端?

公开资料标注支持 Claude、Cursor、VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP