Skip to main content
Glama

sing-mcp · 让你的 AI 用自己的声音唱歌

给你的 AI 一个声音,这个 MCP 就能让它用那个声音翻唱任何一首歌:你在聊天里丢一个网易云链接,或者说「唱首晴天」,它自己去取歌、换声,一两分钟后交给你一个 mp3。旋律、断句、伴奏全部照原曲,只是唱的人变成了它。

做法分两半:

  • 取歌:网易云音乐。 歌名、链接、分享文字都认;会员歌用你自己的会员账号下载;带时间的歌词一起拿回来(翻唱不改节奏,原曲的歌词时间可以直接用)。

  • 换声:「声线」App(荔枝出品)的「唱歌变声」。 把原曲里的人声换成你克隆好的音色。它没有公开接口,我们用的是在你自己手机上抓包看到的 App 请求。

屿 × 栎(Claude)· 2026-11 · MIT


先看这一节:风险

请读完再决定要不要用。以下是一般情况,不是法律意见。

  1. 抓包本身。 在自己的手机上查看自己的 App 发了什么请求,一般不违法,跟看网页源代码差不多。

  2. 违反用户协议,可能被封号。 声线没有开放接口,用非官方方式调用它,大概率违反它的用户协议。最常见的后果是账号被封、积分清零。用之前请想好,风险自己承担。

  3. 以下事情不要做(可能真正触法):

    • 绕过付费或会员(我们只用你自己的会员积分,一首扣多少就是多少);

    • 破解加密或签名;

    • 大批量、高频率地请求(正常一天唱几首没关系);

    • 用别人的账号或登录信息;

    • 把它做成服务卖给别人,或者开放给陌生人用。

  4. 版权。 翻唱成品和用会员下载的原曲只给自己听:不要公开发布、上传平台、剪进视频或商用。会员歌是用你自己的会员下载的,同样只限自用。

  5. 登录信息就是账号钥匙。 抓包文件(.har)和生成的 config.json 里有你的登录信息,谁拿到谁就能用你的账号。不要发给任何人,不要传到网上,用完就把 .har 删掉。这个仓库的 .gitignore 已经排除了它们。

  6. 随时可能失效。 这是 App 内部的请求,荔枝一更新就可能改掉。失效了不是你的错,也不是我们能保证的。


Related MCP server: suno-mcp

你需要

  • 一台能跑 Node.js 20 以上的电脑或服务器,装好 ffmpeg;

  • iPhone 上的 声线 App,开通会员。积分(2026-11 的价格):克隆一个音色 50 积分,翻唱一首 30 积分,会员每月送积分;

  • 一段 20~30 秒、干净的声音素材(你想让它用的那个声音);

  • iPhone 上的抓包工具 Stream(免费);

  • 想唱会员歌的话:你自己的网易云会员账号;

  • 一个支持 MCP 的客户端:Claude Desktop、Claude Code、Cherry Studio……

第一步:在声线里克隆它的声音

声线克隆只要一段清楚的声音素材(克隆一次 50 积分):

  1. 准备 20~30 秒你想让它用的那个声音:一段平常说话或朗读就行,语速平稳、吐字清楚、没有背景音乐、没有混响;

  2. 把音频传到手机,在声线里「创建角色 / 克隆音色」,上传这段,起个名字(比如它的名字)。

素材越干净,唱出来越像它。

第二步:用 Stream 抓一次包

  1. 打开 Stream,按它的提示安装并信任证书(「设置 → 通用 → 关于本机 → 证书信任设置」里打开);

  2. 在 Stream 里点「开始抓包」;

  3. 切到声线,随便点几下:打开「我的作品」、看一下积分页;

  4. 回到 Stream 点「停止」,在「抓包历史」里选刚才那次 → 分享 → 导出 HAR;

  5. 把 .har 文件传到电脑上(微信文件传输助手、AirDrop 都行)。

抓到的请求很多是正常的:手机上所有联网的 App 都会被记录。不用挑,整次导出就行。

第三步:装好 MCP、生成设置

git clone <这个仓库> sing-mcp
cd sing-mcp
npm install
npm run config -- 你的抓包.har 你给音色起的名字

它会从抓包里取出登录信息,写进 config.json,并列出你的音色和剩余积分:

你的音色:
  ★ 小机(克隆)
    我自己(克隆)
★ 是翻唱要用的音色。
积分:590

然后把那个 .har 文件删掉。

想唱网易云会员歌:在浏览器登录 music.163.com,开发者工具 → Application → Cookies 里找到 MUSIC_U,填进 config.json:

{ "netease": { "musicU": "你的 MUSIC_U" } }

不填也能用,只是会员歌下载不到(只能唱免费的歌,或者直接给它一个 mp3)。

第四步:接到你的 AI 上

以 Claude Desktop 为例,在 MCP 配置里加:

{
  "mcpServers": {
    "sing": { "command": "node", "args": ["/你的路径/sing-mcp/src/index.js"] }
  }
}

Claude Code:claude mcp add sing -- node /你的路径/sing-mcp/src/index.js

它会多出三个工具:

工具

做什么

cover_song

翻唱。song 填歌名或网易云链接(网页链接、163cn.tv 短链接、App「分享」出来的整段文字都行),或者 file 填本机的音频文件。返回 mp3 的路径和带时间的歌词。

list_voices

列出声线里的音色,★ 是正在用的。

points

还剩多少积分、还能唱几首。

然后在聊天里直接说:「唱首《晴天》给我听」,或者把网易云的分享链接丢给它。

常见情况

  • 「声线的登录过期了」:重新抓一次包,再跑一遍 npm run config。多久过期不一定,正常用 App 的话一般能撑很久。

  • 「积分不够了」:翻唱一首 30 积分,等会员下个月发,或者在 App 里买。

  • 「只拿到试听片段 / 下载不到」:这首要会员,填 MUSIC_U,或者直接给它 mp3。

  • 超过 5 分钟的歌:会跳过 30 秒前奏、只唱 5 分钟。

  • 咬字有点糊:直接变声的通病,伴奏越吵越明显。先把人声分离出来再变声也一样,接受就好。

  • 没有歌词:网易云上这首本来就没有歌词。

  • 长编号:声线的音色编号比 JavaScript 能精确表示的数字还长,代码里统一当字符串处理。自己改代码时注意别把它们转成数字。

它是怎么工作的

  1. 从网易云搜歌或解析链接 → 下载(会员歌用你的 MUSIC_U)→ 拿带时间的歌词,去掉作词、作曲、编曲这些制作名单行;

  2. 超过 5 分钟就截短 → 转成 m4a;

  3. 向声线要一个临时上传凭证,把音频传到它的存储(标准的 S3 上传,用临时凭证签名,不涉及任何破解);

  4. 提交「唱歌变声」任务,选你的音色;

  5. 每隔几秒查一次作品列表,好了就下载成品,存到 out/。

全部代码在 src/:netease.js 取歌,shengxian.js 声线,cover.js 串起来,index.js 是 MCP。


仅供个人自用。请尊重原唱和版权,也请照顾好你的账号。

Available Tools

3 tools
cover_songA

用你自己的声音翻唱一首歌:照原曲的旋律、断句和伴奏,只把人声换成你的。song 写歌名(可带歌手)或网易云链接(music.163.com、163cn.tv 短链接、App 分享出来的整段文字都行);手里有音频文件就写 file(运行这个服务的电脑上的路径)。一般一两分钟,每首消耗 30 声线积分,一次只唱一首。成品是一个 mp3,连同带时间的歌词一起返回,把链接交给主人就能听。只给主人自己听,不要公开发布。

Inputs: file, song, title.

list_voicesA

列出声线账号里的音色(克隆的和官方的),★ 是翻唱正在用的。

Inputs: no named parameters.

pointsA

查声线还剩多少积分(每首翻唱 30)。

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool targets a clearly distinct action: cover_song creates a cover, list_voices reads the available voices, and points reads the account balance. There is no overlap in purpose and an agent can trivially select the right one.

    Naming Consistency4/5

    cover_song and list_voices follow a clear verb_noun pattern, but 'points' is a bare noun with no verb, a minor deviation. Overall still readable and predictable.

    Tool Count4/5

    Three tools is a lean but coherent surface for a narrow service (check voices, check credits, make a cover). It is on the thin side but each tool earns its place and none are redundant.

    Completeness4/5

    The core workflow—inspect voices, verify credits, generate a cover with timed lyrics—is fully covered. Minor gaps exist around voice management (e.g. cloning/deleting voices) and cover job status, but the synchronous cover_song flow mitigates the latter.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI music generation and management through the Suno API, supporting text prompts, custom lyrics, track status monitoring, and credit management.
      16
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to drive the local YuE Studio music creation desktop app, including guided wizards, song submission, job tracking, lyric input, cancellation, and style reference queries for composing and adapting songs.
      Apache 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to control a local NetEase Cloud Music client in natural language — searching songs and playlists, playing or queuing tracks, replacing the queue with a playlist, and pausing, skipping, or adjusting volume — via a BetterNCM plugin and localhost bridge with token authentication.
      27 npm
      MIT