关于 Discogs MCP Server
Discogs MCP Server 是基于 FastMCP 构建的 MCP 服务,用于连接 Discogs API,面向需要查询和管理音乐目录的用户与开发者。它通过个人访问令牌访问 Discogs 数据,并提供 npx、本地 Node、Docker 等多种运行方式。
主要功能
- 01访问 Discogs API 的音乐目录
- 02搜索与目录相关的数据
- 03支持 stdio 与 HTTP 流式传输模式
- 04可编辑 Discogs 收藏数据
- 05默认每页返回 5 条结果
适用场景
- 01在 Claude Desktop 中查询音乐专辑与收藏信息
- 02在 LibreChat 或 LM Studio 中启用 Discogs 工具
- 03通过 MCP Inspector 测试本地服务
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 Discogs 相关工具,工具列表见 TOOLS.md。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Discogs MCP 服务
面向 Discogs API 的 MCP 服务,支持音乐目录操作、搜索功能等。
快速入门
如果您只想立即开始使用此 MCP 服务,并将其用于 Claude 桌面应用,而不关心开发或自行运行服务,请确保已安装 Node.js 并准备好 Discogs 个人访问令牌,然后直接跳到 Claude 配置部分。请使用该部分中的 NPX 方法。
目录
致谢
此 MCP 服务使用 FastMCP 构建,这是一个用于构建 MCP 服务的 TypeScript 框架。有关 MCP 及如何使用 MCP 服务的更多信息,请参阅 FastMCP 文档和 MCP 官方文档。
可用工具
查看可用工具列表:TOOLS.md
注意事项
- Discogs API 文档并不完善,部分端点可能没有完整文档说明,也可能存在不一致之处。
- 由于 API 端点和响应类型数量庞大,无法验证所有可能响应的类型安全性。请报告您遇到的任何类型相关问题。
- 此 MCP 服务允许编辑 Discogs 收藏集中的数据。请谨慎使用,并在执行操作前确认无误。
- Discogs API 的
per_page默认值为50,对于某些客户端来说,数据量可能过大,难以有效处理。因此,本项目将discogs.config.defaultPerPage的值设为5。您可以在提示词中请求更多数据,但请注意,某些客户端可能难以处理较大的响应。
前提条件
- Node.js(已使用 Node.js
20.x.x测试,但18.x.x应该也能正常运行)- 使用以下命令检查 Node.js 版本:
node --version
- 使用以下命令检查 Node.js 版本:
- Docker(可选,用于运行本地 Docker 镜像,无需处理 Node 或依赖项)
设置
- 克隆仓库
- 根据
.env.example在根目录中创建.env文件 - 在
.env中设置以下必需的环境变量:DISCOGS_PERSONAL_ACCESS_TOKEN:你的 Discogs 个人访问令牌
要获取 Discogs 个人访问令牌,请前往你的 Discogs 设置 > 开发者页面,找到你的令牌或生成一个新令牌。请勿分享你的令牌。未来版本将添加 OAuth 支持。
.env.example 中的其他环境变量均为可选项,并且设有合理的默认值,因此除非有特定需求,否则无需设置。
SERVER_HOST:服务器绑定的主机地址(默认值:0.0.0.0)。设置为0.0.0.0可允许来自容器或计算机外部的连接;设置为127.0.0.1则仅允许本地主机连接。
在本地运行服务
选项 1:本地开发
-
安装依赖:
pnpm install -
可用命令:
pnpm run dev:启动支持热重载的开发服务pnpm run dev:stream:以 HTTP 流式传输模式启动支持热重载的开发服务pnpm run build:构建生产版本pnpm run start:运行生产构建pnpm run inspect:运行 MCP Inspector(参见检查部分)pnpm run format:检查代码格式(prettier)pnpm run lint:运行代码检查工具(eslint)pnpm run test:运行 vitestpnpm run test:coverage:运行 vitest v8 覆盖率测试pnpm run version:check:检查 package.json 版本与 src/version.ts 是否一致
选项 2:Docker
-
构建 Docker 镜像:
docker build -t discogs-mcp-server:latest . -
运行容器:
docker run --env-file .env discogs-mcp-server:latest对于 HTTP 流式传输模式:
# The port should match what is in your .env file # By default, the server listens on 0.0.0.0, allowing connections from outside the container docker run --env-file .env -p 3001:3001 discogs-mcp-server:latest stream
检查
运行 MCP Inspector,测试本地 MCP 服务:
pnpm run inspect
这将在 http://127.0.0.1:6274 启动 MCP Inspector。在浏览器中访问此 URL,即可与本地 MCP 服务交互。
有关 MCP Inspector 的详细信息,请参阅官方文档。
MCP 客户端
今后会添加更多客户端示例。如果你希望获得特定客户端的配置,可以提交新问题,或创建拉取请求自行编辑 README 的此部分。
Claude Desktop 配置
在 Claude > Settings > Developer > Edit Config 中找到 claude_desktop_config.json,然后根据需要添加以下配置中的一项:
NPX
直接从 npm 注册表运行。
{
"mcpServers": {
"discogs": {
"command": "npx",
"args": [
"-y",
"discogs-mcp-server"
],
"env": {
"DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
本地 Node
使用此方法前应已安装依赖(pnpm install)。
{
"mcpServers": {
"discogs": {
"command": "npx",
"args": [
"tsx",
"/PATH/TO/YOUR/PROJECT/FOLDER/src/index.ts"
],
"env": {
"DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Docker
使用此方法前应已构建 Docker 镜像。
{
"mcpServers": {
"discogs": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--env-file",
"/PATH/TO/YOUR/PROJECT/FOLDER/.env",
"discogs-mcp-server:latest"
]
}
}
}
本地代码有任何更改,都需要重启 Claude 才能生效。此外,Claude 需要经过人工确认才能运行 MCP 工具,因此每次访问新工具时,Claude 都会请求许可。通常每个聊天中每个工具只需确认一次。如果使用免费版,长时间聊天可能会更频繁地出现工具运行错误,因为 Claude 会限制单次聊天中的上下文量。
LibreChat
在 librechat.yaml 配置文件的 mcpServers 部分中添加以下内容:
discogs:
type: stdio
command: npx
args: ["-y", "discogs-mcp-server"]
env:
DISCOGS_PERSONAL_ACCESS_TOKEN: YOUR_TOKEN_GOES_HERE
LM Studio
打开聊天的 Settings。在 Program 选项卡中会有一个默认值为 Install 的下拉菜单。选择 Edit mcp.json,然后在 mcpServers 部分中添加以下内容:
"discogs": {
"command": "npx",
"args": [
"-y",
"discogs-mcp-server"
],
"env": {
"DISCOGS_PERSONAL_ACCESS_TOKEN": "YOUR_TOKEN_GOES_HERE"
}
}
保存后,Program 选项卡中应会出现 mcp/discogs 开关,可用于启用服务。每个聊天框中都有一个 Integrations 菜单,也可以在其中启用 MCP 服务。
待办事项
- OAuth 支持
- 缺少的工具:
- 上传库存
许可证
此 MCP 服务采用 MIT 许可证。您可以自由使用、修改和分发此软件,但须遵守 MIT 许可证的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。