mcpField
T
TIDAL MCP

TIDAL MCP

本地服务
github.com游戏娱乐53 周前更新

关于 TIDAL MCP

TIDAL MCP 是供 AI 助手使用的本地 MCP 服务,可搜索、分析和整理 TIDAL 账户。它以 122 个类型化工具覆盖多种账户操作,并通过审批流程控制修改。

主要功能

  1. 01搜索曲库与编辑精选页面
  2. 02分析并比较播放列表
  3. 03浏览歌词、收藏和文件夹
  4. 04将播放列表及分析导出为 JSON
  5. 05预览并审批账户修改

适用场景

  1. 01查找与指定歌曲相关的曲目
  2. 02检查播放列表构成与排序
  3. 03准备待审批的播放列表修改

MCP 相关

它向兼容 stdio 的 MCP 客户端提供 122 个类型化工具和四个提示词。账户修改须经过预览、明确审批和令牌提交。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sickn33-tidal": {
"command": "npx",
"args": [
"-y",
"@sickn33/tidal-mcp"
],
"env": {
"TIDAL_MCP_ENABLE_WRITES": "<TIDAL_MCP_ENABLE_WRITES>",
"TIDAL_MCP_DATA_DIR": "<TIDAL_MCP_DATA_DIR>",
"TIDAL_MCP_EXPORT_DIR": "<TIDAL_MCP_EXPORT_DIR>"
}
}
}
}
启动命令npx -y @sickn33/tidal-mcp
需要配置的环境变量
TIDAL_MCP_ENABLE_WRITESSet to 1 to allow approval-gated TIDAL account mutations.
TIDAL_MCP_DATA_DIROptional private directory for the OAuth session and approval drafts.
TIDAL_MCP_EXPORT_DIROptional private directory where playlist exports are written.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@sickn33/tidal-mcp1.4.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

TIDAL MCP — 面向 AI 助手的完整、安全优先型 TIDAL 服务

抽象声波化为 MCP 工具网络

CI 网站 npm Python 3.11–3.13 MCP Python SDK 2.x 测试:语句和分支覆盖率均为 100% 许可证:MIT

TIDAL MCP 将 Codex、Claude Desktop、Claude Code、Cursor 及其他兼容 stdio 的 Model Context Protocol 客户端连接到 TIDAL 账户。搜索曲库、分析播放列表、发现音乐、读取歌词、管理收藏、整理文件夹,并通过 122 个类型化 MCP 工具安全地创建或编辑播放列表。

**定位:**在 2026 年 9 月 4 日的评审中,这是对当前 GitHub 生态进行可复现评审后发现的最完整公开 TIDAL MCP 实现。此说法基于已注册工具的覆盖范围、结构化架构、变更安全性和自动化测试证据,而非仅凭营销宣传。请参阅带日期的对比。

为什么要开发这个 TIDAL MCP

大多数 TIDAL 集成只提供少量搜索和播放列表命令。TIDAL MCP 旨在为 AI Agent 提供完整的本地控制界面,同时将凭据和审批保留在你的设备上。

  • **122 个可发现工具:**84 个读取工具、36 个变更预览工具,以及 2 个审批令牌提交工具。
  • **广泛覆盖账户功能:**曲库、编辑精选页面、推荐、歌词、收藏、播放列表、文件夹、混音、图片和播放元数据。
  • **安全写入:**默认关闭变更操作,始终需要先预览 → 明确批准 → 提交。
  • **私密身份验证:**OAuth 会话数据绝不会通过 MCP 工具响应传输。
  • **类型化且有界:**每项输入和输出都有架构、限制和 MCP 安全注解。
  • **经过验证的质量:**语句和分支测试覆盖率均为 100%,还通过真实 stdio 握手测试,并可选择执行经过身份验证的只读冒烟测试。

AI 助手可以用 TIDAL 做什么?

自然地提出请求:

  • “分析我完整的健身播放列表:艺人集中度、年代、重复曲目、时长和排序。”
  • “找出与这三首歌曲相关的 20 首曲目,排除我的播放列表中已有的内容,并限制每位艺人最多两首曲目。”
  • “比较一位艺人的专辑、EP、单曲、参与作品、热门曲目、简介和相关艺人。”
  • “显示我收藏的专辑和播放列表,然后概述我的收藏分布情况。”
  • “根据这些推荐准备一个新播放列表,并在执行任何操作前向我展示具体变更。”
  • “将这些播放列表移到一个文件夹中,但在更改我的账户前先征求确认。”

请参阅实际工作流和提示词示例。

工具覆盖范围

功能工具数示例
身份验证、搜索、推荐3状态、多类型搜索、确定性的多种子推荐
目录、编辑内容、发现54曲目、专辑、艺人、视频、歌词、流派、Home、Explore、For You
收藏、播放列表、文件夹22收藏项、计数、播放列表项目、自有/公开播放列表、文件夹、混音
派生分析3完整播放列表收藏、播放列表摘要、播放列表比较
本地导出2将播放列表导出为 JSON 或 M3U,将摘要或比较结果导出为 JSON
精确变更预览36播放列表 CRUD、项目移动、可见性、收藏项、文件夹
审批令牌提交2通用提交和兼容的播放列表创建别名

表中合计为已注册的 122 个工具。此外还注册了 4 个 MCP 提示词(playlist-from-description、playlist review、discovery digest、library audit);提示词用于指导如何使用这些工具,因此不计入工具数量。

所有列表操作都有数量限制并支持分页。每个结果都使用公开字段允许列表,确保 OAuth 令牌、请求客户端和内部会话数据不会进入模型上下文。完整映射见 API_COVERAGE.md。

快速开始

要求
  • macOS 或 Linux;已在 macOS 上使用真实账户进行测试
  • Node.js 18 或更高版本
  • Python 3.11–3.13
  • uv
  • TIDAL 账户
1. 安装并进行身份验证
npx -y @sickn33/tidal-mcp auth

打开设备授权 URL,在 TIDAL 中批准访问,然后返回终端。会话存储在操作系统的私有应用数据目录中,而非代码仓库中。

随时检查或移除会话:

npx -y @sickn33/tidal-mcp auth --status
npx -y @sickn33/tidal-mcp auth --logout --yes

如需从源代码安装以进行开发:

git clone https://github.com/sickn33/tidal-mcp.git
cd tidal-mcp
uv sync
uv run tidal-auth
2. 连接 MCP 客户端

直接使用 npm;该软件包通过 uvx 在本地启动固定版本的 Python 实现:

{
  "mcpServers": {
    "tidal": {
      "command": "npx",
      "args": [
        "-y",
        "@sickn33/tidal-mcp"
      ]
    }
  }
}

重启或重新连接 MCP 客户端,然后询问:“检查我的 TIDAL 身份验证状态。”

启用安全账户写入

除非 MCP 进程收到以下内容,否则会禁用远程写入:

"env": {
  "TIDAL_MCP_ENABLE_WRITES": "1"
}

启用此标志并不会让变更自动执行。每项变更仍须经过以下三个明确步骤:

  1. 名为 tidal_preview_* 的工具会将确切参数和目标元数据记录到私有的短时本地草稿中。
  2. 助手向用户展示该预览。
  3. 只有在获得批准后,tidal_commit_action 才会接受一次性令牌,并严格执行记录的操作。

成功的令牌重放会返回已存储的结果。令牌过期后会安全失败。为减少重复操作,结果不明确的失败写入会被锁定。破坏性预览会明确标注。

支持的 TIDAL 操作

  • **搜索和查询:**曲目、专辑、艺人、播放列表、视频、混音、用户、条形码、ISRC。
  • **曲目信息:**详情、电台、电台混音、歌词、播放元数据、临时账户范围 URL。
  • **艺人和专辑:**唱片目录、EP 和单曲、客串作品、简介、评论、相关艺人、相似专辑、音质规格、封面图片和编辑页面。
  • **发现:**Home、Explore、For You、流派、情绪、混音、视频、高清音质和本地流派中心。
  • **编辑内容导航:**读取页面分类中的项目和链接,展开“显示更多/查看全部”部分,并打开页面链接以继续浏览首屏之后的内容。
  • **收藏:**收藏曲目、专辑、艺人、播放列表、视频、混音、文件夹和计数。
  • **播放列表:**元数据、曲目、混合项目、计数、图片、创建/编辑/删除/清空/合并、可见性,以及添加/移除/重新排序操作。
  • **文件夹:**检查、创建、重命名、删除和移动收藏树中的项目。

该服务有意不下载媒体、绕过 DRM、公开原始 OAuth 方法,也不提供不受限制的私有端点代理。

配置

变量默认值含义
TIDAL_MCP_ENABLE_WRITES0允许使用审批令牌提交列入允许列表的账户变更
TIDAL_MCP_DATA_DIROS 应用程序数据目录会话和草稿根目录
TIDAL_MCP_SESSION_FILE<data-dir>/session.json覆盖 OAuth 会话路径
TIDAL_MCP_DRAFT_TTL_SECONDS900审批有效期,介于 60 到 3600 秒之间
TIDAL_MCP_EXPORT_DIR<data-dir>/exportstidal_export_playlist 的写入位置;会以私有权限创建

在支持 POSIX 权限的系统上,新的私有目录使用 0700 模式,敏感文件使用 0600 模式。不会擅自改写现有自定义父目录的权限。

已验证的质量

uv sync --all-groups
uv run ruff format --check .
uv run ruff check .
uv run pytest --cov=tidal_mcp --cov-report=term-missing
uv run python scripts/smoke_stdio.py
uv build

覆盖率门槛为语句和分支均达到 100%。测试通过 MCP 架构和固定版本的 tidalapi 适配器,覆盖每条已注册的读取和变更路由,且不会连接 TIDAL。stdio 冒烟测试会启动打包后的协议进程,并验证全部 122 个工具架构。

正式版本通过 GitHub Actions 使用 npm Trusted Publishing 发布,不使用长期有效的 npm 写入令牌。npm 会自动附加来源证明,同一发布工作流还会通过 GitHub OIDC 将匹配的元数据发布到官方 MCP Registry。

可选的已认证冒烟测试仅执行具有代表性的读取操作:

uv run python scripts/smoke_live_read_only.py

发布维护者可以通过相同的 MCP 客户端路径测试确切的公开 npm 软件包:

uv run python scripts/smoke_live_read_only.py \
  --command npx \
  --server-arg=-y \
  --server-arg=@sickn33/[email protected]

确定性的评估套件和带日期的竞品矩阵让质量声明可供查验。

架构与兼容性

TIDAL 提供开发者 API,但开发者凭据需单独申请,且官方接口未涵盖所有消费者账户工作流。因此,此本地服务固定使用 tidalapi 0.8.11,这是一个围绕 TIDAL 消费者端点构建的非官方适配器,可广泛支持设备登录。TIDAL 的变更可能需要维护;固定版本的依赖和在线冒烟测试会将此风险明确呈现。

该服务通过 stdio 使用 MCP Python SDK。阻塞式上游调用会在异步协议事件循环之外运行。它不会启动 Flask 侧车服务,也不会将身份验证信息存储在临时目录中。

文档

项目状态

1.4.0 版本新增了将播放列表摘要或比较结果导出为 JSON 的功能,并通过每次调用只解析一次播放列表,降低了每个播放列表工具的网络开销。

许可证、归属和商标声明

MIT。本仓库保留了 yuhuacheng/tidal-mcp 的历史记录和许可证;请参阅 NOTICE.md。

TIDAL 是其各自所有者的商标。本项目是一个独立的非官方社区项目,与 TIDAL 无关,未获得 TIDAL 背书或赞助。项目未附带任何 TIDAL 徽标或专辑封面。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。