Token导航 LogoToken导航TokenDH.com
ytm MCP logo
音视频stdio官方级别未说明来源级核验

ytm MCP

MCP Server

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

工具数

12

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude语音音频ClaudeCursorVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

4shil

提供方

4shil

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mutagen --break-system-packages

详细介绍

🎵 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+PDeveloper: 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字符串opusopusmp3
titlestring--可选标题提示

download_history

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

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

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字符串privatepublicprivate

add_to_playlist

参数类型说明
playlist_idstring目标播放列表ID
songsarray数组 { song_title, song_url, artist }

list_playlists

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

export_playlist

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

______________________________________________________________________

🗺 路线图

这些工具计划在未来发布。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小时

目录标签

目录标签

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

支持客户端

ClaudeCursorVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP