mcpField
D
Discogs MCP Server

Discogs MCP Server

本地服务
github.com/cswkim游戏娱乐1315 天前更新

关于 Discogs MCP Server

Discogs MCP Server 是基于 FastMCP 构建的 MCP 服务,用于连接 Discogs API,面向需要查询和管理音乐目录的用户与开发者。它通过个人访问令牌访问 Discogs 数据,并提供 npx、本地 Node、Docker 等多种运行方式。

主要功能

  1. 01访问 Discogs API 的音乐目录
  2. 02搜索与目录相关的数据
  3. 03支持 stdio 与 HTTP 流式传输模式
  4. 04可编辑 Discogs 收藏数据
  5. 05默认每页返回 5 条结果

适用场景

  1. 01在 Claude Desktop 中查询音乐专辑与收藏信息
  2. 02在 LibreChat 或 LM Studio 中启用 Discogs 工具
  3. 03通过 MCP Inspector 测试本地服务

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 Discogs 相关工具,工具列表见 TOOLS.md。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"discogs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

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

安装包
ocibuild

工具

还没有获取到工具列表

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

详细介绍

License GitHub Release GitHub Actions Workflow Status NPM Downloads Sponsor

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
  • Docker(可选,用于运行本地 Docker 镜像,无需处理 Node 或依赖项)

设置

  1. 克隆仓库
  2. 根据 .env.example 在根目录中创建 .env 文件
  3. 在 .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:本地开发
  1. 安装依赖:

    pnpm install
    
  2. 可用命令:

    • 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:运行 vitest
    • pnpm run test:coverage:运行 vitest v8 覆盖率测试
    • pnpm run version:check:检查 package.json 版本与 src/version.ts 是否一致
选项 2:Docker
  1. 构建 Docker 镜像:

    docker build -t discogs-mcp-server:latest .
    
  2. 运行容器:

    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 文件。

评论

支持 Markdown

第一次接触 MCP?

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

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