mcpField
M
mcp-bideetmusique

mcp-bideetmusique

本地服务
github.com游戏娱乐0今天更新

关于 mcp-bideetmusique

mcp-bideetmusique 让 MCP 客户端探索 Bide & Musique 的法国冷门歌曲目录。它一次按一个字段搜索,并可读取唱片详情、艺人唱片目录、随机条目和近期新增内容。

主要功能

  1. 01按演唱者、标题、作者、歌词、厂牌或年份搜索
  2. 02读取唱片详情和现有歌词
  3. 03查看艺人资料及其唱片目录
  4. 04随机抽取歌曲
  5. 05列出近期编目的歌曲

适用场景

  1. 01按演唱者或标题查找歌曲
  2. 02查询歌曲的作者、厂牌和年份
  3. 03浏览某位艺人的目录
  4. 04探索随机歌曲或近期新增唱片

MCP 相关

向 MCP 客户端提供搜索、唱片和艺人查询、随机抽取及近期歌曲列表工具。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
npmmcp-bideetmusique2.1.0
mcpbmcp-bideetmusique-2.1.0.mcpb2.1.0

工具

5

收录的工具列表 · 更新于 今天

参数类型必填说明
pageinteger否要读取的结果页码。响应会注明网站返回的页码。
limitinteger否从该页返回的歌曲数上限。
querystring是要搜索的法语内容,例如 'Pierre Bachelet' 或 'vacances'。
search_typeenum是要搜索的轴:'performer' 表示唱片署名的艺人,'title' 表示歌曲名称,'writer' 表示作词或作曲者,'lyrics' 表示歌曲演唱的歌词,'label' 表示发行唱片的厂牌,'year' 表示唱片印制的年份。'year' 轴仅接受一个四位数年份,不接受其他内容:网站会忽略该轴上的其他词语,而不会据此筛选。performer | title | writer | lyrics | label | year

详细介绍

README 配图

mcp-bideetmusique

npm CI license MCP Registry Glama M8ven LobeHub 在 Cursor 中安装 在 VS Code 中安装

Bide & Musique 是一家法国网络电台,也是它播放的唱片收藏。这个收藏由运营电台的志愿者协会手工编目,主题是被遗忘的歌曲:失败之作、新奇唱片、电视主题曲,以及无人再版的单曲。唱片页面包含表演者、词曲作者、年份、唱片公司及其目录编号、封套、时长、电台自己的排行榜名次,以及听众转录的歌词。

此服务将聊天客户端连接到这个收藏。你可以一次按一个维度搜索,例如表演者、标题、作者、歌词、唱片公司或年份;查看一张唱片的完整信息;查看网站收录的艺人资料及其唱片目录;随机抽取一张唱片;还可以查看刚刚编目的内容。无需 API 密钥或账户。

法语版


安装

一键安装

在 Cursor 中安装 在 VS Code 中安装

Claude Code

claude mcp add bideetmusique -- npx -y mcp-bideetmusique

Claude Desktop、Cursor 以及任何使用标准配置格式的客户端

{
  "mcpServers": {
    "bideetmusique": {
      "command": "npx",
      "args": ["-y", "mcp-bideetmusique"]
    }
  }
}

需要 Node 24 或更高版本,无需设置环境变量。

使用 Docker
{
  "mcpServers": {
    "bideetmusique": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-bideetmusique:2.0.1"]
    }
  }
}

-i 会保持 stdin 打开,协议通过它传输;省略 -t,因为 TTY 会改写数据流。容器只需能够通过 HTTPS 向外连接到 www.bide-et-musique.com,除此之外不需要任何东西:无需卷、端口或凭据。

使用 Bundle,无需 npm

从最新发布版本下载 mcp-bideetmusique-2.0.1.mcpb 并打开。支持 MCP bundles 的客户端会自行安装,无需 npm,也无需编辑配置文件。Bundle 包含其依赖项,因此安装时不会下载任何内容。

可以询问的内容

  • « Bide & Musique 中有哪些 Jacques Dutronc 的作品? »
  • "哪些歌曲的歌词中提到了潜艇?"
  • "读一下那张唱片的信息:唱片公司、年份、创作者。"
  • "从收藏中随机播放一首给我听。"
  • "最近编目了哪些内容?"

通常的流程是先搜索,再查看唱片:每一行都包含一个 song_id,然后由 get_song 读取该唱片。

工具

工具功能
search_songs沿一个维度搜索收藏内容。
get_song完整读取一条记录,包括歌词。
get_artist读取一位艺术家及收藏中该艺术家的唱片。
get_random_song随机抽取一条记录。
list_new_songs读取收藏中刚刚编目的内容。
search_songs

沿一个指定的维度搜索:每个维度回答的问题都不同,在一个维度上得到的答案并不能说明其他维度的情况。某个名字作为表演者搜索不到,也可能是歌曲标题。

参数类型必填功能
query字符串,最多 200 个字符是在该维度上要查找的内容。
search_typeperformer、title、writer、lyrics、label 或 year是搜索所使用的维度。
page整数,1 到 200,默认值为 1否要读取的结果页。
limit整数,1 到 50,默认值为 20否返回的结果行数。
search_type查找内容
performer唱片上署名的艺术家
title歌曲名称
writer歌曲的创作者或作曲者
lyrics歌曲演唱的歌词
label唱片发行的唱片公司
year唱片上标注的年份

year 维度只接受一个四位数年份,不接受其他内容:输入其他词语时,网站会直接丢弃,而不是据此筛选。多个关键词会以 AND 方式组合,并且每个关键词都在词语内部匹配,因此每增加一个词,搜索范围就会缩小;无论网站自身的表单如何处理,引号中的短语都不会返回任何结果。

**返回内容:**包含 song_id 的结果行,可供 get_song 使用;以及 title、url 和 artist。total_matches 是网站显示的匹配总数,统计所有页面上的匹配歌曲,因此可能多于单页的结果行数。page_served 是网站实际返回的页面:如果请求的页码超过最后一页,网站会返回最后一页而不报错,因此应读取该值,而不要假定返回的是所请求的页码。网站没有显示 page_count 和 has_more_pages 时,它们的值为 null。

get_song

完整读取一条记录。

参数类型必填作用
song_idstring,最多 20 个字符是搜索结果行中包含的 ID。
include_lyricsboolean,默认值为 true否页面上有转录歌词时,返回这些歌词。

返回内容: title、artist、credited_performer、year、writers、 duration(包含记录上原样印出的文本及其 precision)、 labels(每个厂牌对应一个条目)、catalogue_reference、presentation、 sleeve_credits、image_url、作为 ISO 日期的 added_on、电台的排行榜名次、 favourites 和 comments。标题、艺人和时长始终会给出;其他信息在某些记录中缺失时会返回 null,而不会猜测;页面未显示计数器时,其值为未知,而不是零。lyrics.available 表示页面是否提供转录歌词,lyrics.text 则包含歌词内容以及记录歌词的 transcriber。

get_artist

读取馆藏中有关一位艺人的信息及其记录。

参数类型必填作用
artist_idstring,最多 20 个字符是记录中包含的艺人 ID。
limitinteger,1 到 200,默认值为 100否返回该艺人的记录数。

返回内容: name、aliases、surname、first_name、nationality、 birth_date、presentation、see_also、links 和 photo_url;页面未注明的内容会是 null 或空值。discography 包含该艺人的记录,每条记录都带有可用于 get_song 的 song_id、title、url、year 以及电台播放该记录的次数。discography_count 统计返回的记录数, songs_on_page 则统计页面上有多少条记录,因此可以看出唱片目录是否被截断。

get_random_song

从网站提供的 ID 范围内,随机抽取一条无人选择过的记录。适用于浏览馆藏,而非查询特定歌曲。

参数类型必填作用
include_lyricsboolean,默认值为 true否页面上有转录歌词时,返回这些歌词。

返回内容: get_song 返回的记录。

list_new_songs

读取馆藏最近编目的内容。

参数类型必填作用
limitinteger,1 到 50,默认值为 20否返回的行数。

返回内容: 各行包含 song_id、从信息流发布的行中读取的 title、artist_name、 listed_as、url 和 published_at。entries_in_feed 是信息流中的条目数量,这是一个固定值, 并不代表馆藏中的记录数量。

配置

所有变量均为可选项。在客户端配置的 env 块中设置。

变量默认值作用
BIDE_USER_AGENT项目标识向网站标识你的应用,并提供可联系到相关人员的地址。
BIDE_MIN_INTERVAL_MS3000两次请求之间的间隔,范围为 2000 到 60000。
BIDE_TIMEOUT_MS20000单次请求的截止时间,范围为 1000 到 120000。
BIDE_MAX_RETRIES3暂时性故障后的重试次数,范围为 0 到 10。
BIDE_CACHE_TTL_MS900000页面在内存中的保留时间,范围为 0 到 86400000。
BIDE_CACHE_MAX_ENTRIES200内存中同时保留的页面数,范围为 0 到 10000。
BIDE_LOG_LEVELerrorsilent、error、info 或 debug,写入 stderr。

超出范围的值会回退到默认值,原因会写入 stderr。

错误

每种故障都会携带 6 种代码之一、错误消息,以及在有帮助时指出下一步操作的提示。

代码发生了什么应对方法
not_found网站已响应,但没有此记录。使用 search_songs 检查 ID。
invalid_input请求发出前,参数已被拒绝。阅读错误消息,其中会指出相关参数。
rate_limited网站要求此客户端降低请求频率。等待提示中所述的秒数,然后使用相同参数再次调用。记录仍然存在。
parse_failure页面已加载,但未找到预期内容。在问题跟踪器中报告。
network_error请求未能完成。稍后重试。
timeout请求超出截止时间。增大 BIDE_TIMEOUT_MS,或减少请求的行数。

作为库使用

读取网站的层独立发布,包含自身的请求节流、缓存和错误处理,且不绑定任何协议。

import { BideEtMusiqueClient } from "mcp-bideetmusique/client";

const client = new BideEtMusiqueClient();
const { data, cached } = await client.getSong("1234");
console.log(data.title, data.labels, cached);

search、getSong、getArtist 和 getNewSongs 均返回 { data, cached },并会抛出携带 6 种代码之一的错误。这里同样会确保两次请求之间至少间隔 2 秒。

请求频率与署名

请求会逐个发送,间隔至少三秒;无论如何配置服务,间隔下限均为两秒。Bide & Musique 由一个志愿者协会自筹经费运营,这种请求频率是对其收藏的应有尊重。User-Agent 始终以项目标识和可联系到真人的地址结尾。

每条结果都附有记录页面的地址。目录由该协会和参与建设的听众共同维护,转录内容也不例外。

此 MCP 服务是一个非官方项目,与 Bide & Musique 没有任何关联。

隐私

此服务不会收集你的任何信息,也不会向作者发送任何内容。它在你的机器上运行,只连接 www.bide-et-musique.com,不会连接其他任何地方;运行期间,回答仅保存在内存中,不会写入磁盘。 PRIVACY.md 说明了请求包含哪些内容,以及哪些设置会改变这些内容。

开发

npm install
npm run build:fixtures
npm test
npm run check

测试使用生成的固件运行,不会发起网络请求。实时测试套件 npm run test:live 会为每条路由发送一个请求,并且每晚针对网站本身运行。

贡献

Bug、问题和想法请提交到问题跟踪器。欢迎提交拉取请求;先创建问题有助于就更改方案达成共识。请参阅 CONTRIBUTING.md。

许可证

MIT,详见 LICENSE。目录归 Bide & Musique 以及参与建设的听众所有。


mcp-bideetmusique(法语)

英文版本

Bide & Musique 是一家法国网络电台及其播放的唱片收藏,由运营它的志愿者协会手工编目。它的主题是被遗忘的歌曲:冷门歌曲、奇趣唱片、电视主题曲,以及从未再版的 45 转唱片。唱片页面会列出演唱者、词曲作者、年份、厂牌及其目录编号、封面、时长、电台排行榜排名,以及听众转录的歌词。

此服务将对话客户端连接到这个收藏。你可以按单一条件搜索,例如演唱者、标题、作者、歌词、厂牌或年份;查看完整唱片条目;查看网站上有关某位艺人的内容及其唱片目录;随机抽取一张唱片;以及查看最近编目的内容。无需 API 密钥,也无需账户。

安装

一键安装

在 Cursor 中安装 在 VS Code 中安装

Claude Code

claude mcp add bideetmusique -- npx -y mcp-bideetmusique

Claude Desktop、Cursor,以及所有采用标准配置格式的客户端

{
  "mcpServers": {
    "bideetmusique": {
      "command": "npx",
      "args": ["-y", "mcp-bideetmusique"]
    }
  }
}

需要 Node 24 或更高版本,无需设置任何环境变量。

使用 Docker
{
  "mcpServers": {
    "bideetmusique": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-bideetmusique:2.0.1"]
    }
  }
}

-i 会保持标准输入处于打开状态,它是协议的通信通道;省略 -t 是因为 TTY 会重写数据流。容器需要能够通过 HTTPS 访问 www.bide-et-musique.com,除此之外不需要任何东西:无需卷、无需端口,也无需凭据。

打包,无需 npm

下载 最新版本中的 mcp-bideetmusique-2.0.1.mcpb 并打开它。支持 MCP bundle 的客户端会自行安装,无需 npm,也无需修改配置文件。bundle 包含其依赖项,因此安装时不会下载任何内容。

可以询问什么

  • “Bide & Musique 收录了哪些 Jacques Dutronc 的作品?”
  • “哪些歌曲的歌词提到了潜水艇?”
  • “给我读一下这张唱片的信息:厂牌、年份、创作者。”
  • “从收藏中随便选一首给我听。”
  • “最近编目了什么?”

通常的流程是从搜索到查看唱片信息:搜索结果中的一行带有 song_id,然后用 get_song 读取。

工具

工具功能
search_songs根据一个搜索维度查找收藏内容。
get_song读取完整的唱片信息,包括歌词。
get_artist读取艺人信息及收藏中收录的其唱片。
get_random_song随机选取一张尚未有人选过的唱片。
list_new_songs读取收藏中最近编目的内容。
search_songs

按一个搜索维度查找,并且必须指定该维度:每个维度回答的问题都不同,在一个维度上找到的内容并不能说明其他维度的情况。作为表演者未能找到结果的名称,也完全可能是歌曲标题。

参数类型必填功能
query字符串,最多 200 个字符是要在该维度上查找的内容。
search_typeperformer、title、writer、lyrics、label 或 year是搜索维度。
page整数,1 到 200,默认值为 1否要返回的结果页。
limit整数,1 到 50,默认值为 20否返回的结果行数。
search_type查找内容
performer唱片标注的艺人
title歌曲名称
writer歌曲的词曲作者
lyrics歌曲中演唱的歌词
label发行歌曲的厂牌
year唱片上印制的年份

year 维度只接受四位数年份,不接受其他内容:网站会忽略其他词语,而不会据此筛选。多个关键词按“与”组合,并且每个关键词都会在词语内部进行匹配,因此每增加一个词,搜索范围都会缩小;无论网站表单提供什么选项,带引号的短语都不会返回结果。

返回内容: 带有 song_id 的结果行,可交由 get_song 使用;title;url;以及 artist。total_matches 是网站显示的总数,统计所有页面上匹配的歌曲,因此可能多于单页的结果行数。page_served 是网站实际返回的页面,因为对于超出末页的页码,网站会返回末页而不报错:请读取此值,而不要假定返回的是请求的页码。如果网站没有显示 page_count 和 has_more_pages,这两个字段的值会是 null。

get_song

读取完整的唱片条目。

参数类型必填作用
song_id字符串,最多 20 个字符是条目上的标识符。
include_lyrics布尔值,默认 true否页面上有转录歌词时,是否一并返回。

返回内容: title、artist、credited_performer、year、writers、 duration(包含条目上原样印出的文本及其 precision)、labels(每个唱片公司对应一项)、catalogue_reference、presentation、 sleeve_credits、image_url、ISO 日期格式的 added_on、电台排行榜名次、 favourites 和 comments。标题、艺人和时长始终有值;其他信息在部分条目中缺失时会返回 null,而不是猜测。页面未显示的计数视为未知,而不是 null。lyrics.available 表示页面是否有转录歌词, lyrics.text 包含歌词以及记录歌词的 transcriber。

get_artist

读取收藏中关于某位艺人的信息,以及收藏中该艺人的唱片。

参数类型必填作用
artist_id字符串,最多 20 个字符是艺人条目上的标识符。
limit整数,1 到 200,默认 100否返回该艺人的唱片数量。

返回内容: name、aliases、surname、first_name、nationality、 birth_date、presentation、see_also、links 和 photo_url;页面未提供信息时,对应值为 null 或空。discography 包含该艺人的唱片,每条唱片均含有可用于调用 get_song 的 song_id、title、url、year 和电台播放次数。 discography_count 统计返回的唱片数量,songs_on_page 统计页面上的唱片数量,因此可以看出唱片目录是否被截断。

get_random_song

从网站提供的标识符中随机抽取一张唱片,无人选择。没有指定具体歌曲时,可用它浏览收藏。

参数类型必填作用
include_lyrics布尔值,默认 true否页面上有转录歌词时,是否一并返回。

返回内容: get_song 返回的唱片条目。

list_new_songs

读取收藏最近编目的内容。

参数类型必填作用
limit整数,1 到 50,默认 20否返回的条目数。

返回内容: 多条记录,包含 song_id、从信息流发布的条目上读取的 title、artist_name、listed_as、url 和 published_at。entries_in_feed 是信息流中的条目数,这是一个固定值,与收藏中的唱片数量无关。

配置

每个变量都是可选的。请将它们放在客户端配置的 env 块中。

变量默认值作用
BIDE_USER_AGENT项目身份标识向网站标识您的应用,并提供可联系到负责人的地址。
BIDE_MIN_INTERVAL_MS3000两次请求之间的间隔,范围为 2000 到 60000。
BIDE_TIMEOUT_MS20000请求超时时间,范围为 1000 到 120000。
BIDE_MAX_RETRIES3临时失败后的重试次数,范围为 0 到 10。
BIDE_CACHE_TTL_MS900000页面在内存中的保留时长,范围为 0 到 86400000。
BIDE_CACHE_MAX_ENTRIES200同时保留在内存中的页面数量,范围为 0 到 10000。
BIDE_LOG_LEVELerrorsilent、error、info 或 debug,日志写入错误输出流。

超出范围的值会回退为默认值,原因会写入错误输出流。

错误

每次失败都会带有以下六种代码之一和一条消息,并在有帮助时提供下一步操作建议。

代码发生了什么怎么做
not_found网站已响应,但没有这条记录。使用 search_songs 检查标识符。
invalid_input请求发出前,参数已被拒绝。阅读消息,其中会指出相应参数。
rate_limited网站要求此客户端降低请求频率。等待所示秒数,然后使用相同参数重新调用。记录仍然存在。
parse_failure页面已加载,但缺少预期内容。在问题跟踪页报告此问题。
network_error请求未能完成。稍后重试。
timeout请求超时。增大 BIDE_TIMEOUT_MS,或请求更少的行。

作为库使用

读取网站的这一层单独发布,包含请求频率控制、缓存和错误处理,不绑定任何协议。

import { BideEtMusiqueClient } from "mcp-bideetmusique/client";

const client = new BideEtMusiqueClient();
const { data, cached } = await client.getSong("1234");
console.log(data.title, data.labels, cached);

search、getSong、getArtist 和 getNewSongs 各自返回 { data, cached },并会抛出带有六种代码之一的错误。这里同样保证两次请求之间至少间隔两秒。

请求频率与署名

请求会逐个发出,彼此至少间隔三秒;无论如何配置,两次请求之间的间隔都不会少于两秒。Bide & Musique 由一个志愿者协会自筹资源运营,这样的请求频率是对该收藏的应有尊重。User-Agent 始终以项目身份标识和可联系到负责人的地址结尾。

每条结果都附有记录页面的地址。该目录由协会和参与构建它的听众创作,包括其中的转录内容。

此 MCP 是一个非官方项目,与 Bide & Musique 没有关联。

隐私

此服务不会收集您的任何信息,也不会向其作者发送任何信息。它在您的机器上运行,只连接 www.bide-et-musique.com,在运行期间将响应保存在内存中,不会向磁盘写入任何内容。PRIVACY.md 说明了请求会携带哪些信息,以及哪些设置会改变这一点。

开发

npm install
npm run build:fixtures
npm test
npm run check

测试使用生成的 fixtures 运行,不会发出任何请求。 实时测试套件 npm run test:live 会为每个路由发出一个请求,并且每晚都会针对网站本身运行。

贡献

问题、疑问和想法都可以提交到问题跟踪。欢迎提交修改建议;先创建工单有助于就修改方案达成一致。请参阅 CONTRIBUTING.md。

许可证

MIT,详见 LICENSE。目录归 Bide & Musique 以及创建它的听众所有。

评论

支持 Markdown

第一次接触 MCP?

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

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