音乐目录协议服务器

Discogs MCP服务器是一个基于Discogs API的音乐目录操作和搜索功能的协议服务器,适用于音乐数据管理和客户端集成。

  • by cswkim
  • TypeScript
  • 本地部署
  • 131 星标
  • 更新于
在 GitHub 查看 cswkim/discogs-mcp-server

使用说明

断开MCP服务器

用于Discogs API的MCP服务器,支持音乐目录操作、搜索功能等。

快速入门

如果您只想立即开始使用此MCP服务器 克劳德 桌面应用程序,不关心开发或自己运行服务器,然后确保你有 Node.js 已安装,您的Discogs个人访问令牌已准备就绪,直接跳到 Claude配置部分.使用 NPX 该部分的方法。

目录

致谢

此MCP服务器是使用 FastMCP,一个用于构建MCP服务器的打字框架。有关MCP以及如何使用MCP服务器的更多信息,请参阅 FastMCP文档 和那个 MCP官方文件.

可用工具

查看可用工具列表: TOOLS.md

注意事项

  • 这 不符合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 根目录中的文件基于 .env.example
  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检查器(参见 检查 部分)
    • pnpm run format:检查代码格式(更漂亮)
    • pnpm run lint:运行linter(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检查器以测试本地MCP服务器:

pnpm run inspect

这将在以下时间启动MCP检查器 http://127.0.0.1:6274。在浏览器中访问此URL以与本地MCP服务器交互。

有关MCP检查器的更多信息,请访问 官方文件.

MCP客户端

未来将添加更多客户端示例。如果你想为特定的客户端进行配置,可以 通过打开一个新问题或创建pull请求来编辑README的这一部分。

Claude桌面配置

找到你的 claude_desktop_config.json 在 Claude > Settings > Developer > Edit Config 根据您想要的选项,添加 只有一个 以下内容:

NPX

直接从npm注册表运行它。

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "-y",
        "discogs-mcp-server"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

本地节点

在使用此方法之前,应该已经安装了依赖项(pnpm install).

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "tsx",
        "/PATH/TO/YOUR/PROJECT/FOLDER/src/index.ts"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

码头工人

在使用此方法之前,应该已经构建了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 工作室

进入聊天室 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文件。