Discogs MCP 服务器
使用说明(简明版,方便快速上手):
- 项目简介
- 这是一个基于 Model Context Protocol (MCP) 的后端服务器,专门为 Discogs 收藏数据设计。它在 Cloudflare Workers 上实现,通过 MCP 标准的 JSON-RPC 形式为 LLM 客户端提供资源读取、工具执行和提示模板渲染等能力。核心内容包括:读取 Discogs 收藏、查询和获取发布信息、以及提供与 Discogs 账户相关的工具与提示。
- 服务器具备会话管理、鉴权(Discogs OAuth 1.0a)、缓存和结构化的资源/工具/模板注册等能力,能够通过不同传输方式与客户端进行交互(示例中通过 MCP 接口使用 JSON-RPC 形式通信)。
- 主要功能点
- MCP 核心端点与协议支持:实现 MCP 的 JSON-RPC 请求/响应处理、初始化握手、能力声明等基本流程。
- 资源、工具、提示的注册与暴露:提供 discogs://collection、discogs://release/{id} 等资源,以及 search_collection、get_release、get_collection_stats、get_recommendations 等工具,以及面向 Discogs 的提示模板。
- 认证与会话管理:使用 Discogs OAuth 1.0a 完成用户鉴权,支持基于会话令牌的后端访问控制。
- 数据缓存与缓存策略:对资源和查询结果使用 KV 存储进行缓存,提供缓存统计与失效策略,减少对外部 Discogs API 的请求次数。
- 集成测试友好:包含针对 MCP 客户端的集成测试用例,确保请求/响应格式与流程符合 MCP 规范。
- 安装步骤(简要)
- 准备环境:Node.js 18+,Cloudflare 账户,并配置 Discogs 开发者账号所需的 Consumer Key/Secret,以及用于签发会话的 JWT 秘钥。
- 安装依赖:在项目根目录执行安装命令,安装所需的依赖包。
- 配置环境变量/密钥:
- DISCOGS_CONSUMER_KEY(Discogs 接入 Key)
- DISCOGS_CONSUMER_SECRET(Discogs 接入 Secret)
- JWT_SECRET(用于生成/验证会话令牌)
- 本地开发与调试:
- 使用 Wrangler 在本地开发模式运行并调试,或将 Worker 部署到 Cloudflare。
- 部署与运维:
- 部署后通过 MCP 客户端(如 Claude、 Windsurf、Zed 等)按 MCP 远程连接要求接入服务器。
- 服务器配置(供 MCP 客户端使用参考)
说明:MCP 客户端需要知道服务器的启动命令和参数以建立连接。下面给出一个示例配置,具体命令请按实际环境部署调整。
{
"serverName": "discogs-mcp",
"command": "npx",
"args": ["-y", "mcp-remote", "https://discogs-mcp-prod.rian-db8.workers.dev/mcp"]
}
注解:
- serverName: 服务器在 MCP 客户端侧的标识名称,应与实现中使用的服务器名称保持一致(此仓库实现中名称为 discogs-mcp)。
- command/args: 客户端连接服务器所需的执行命令与参数,示例使用 npm/npx 方式通过 mcp-remote 将 MCP 服务暴露的 URL 连接到客户端。生产环境的 MCP 入口地址为 https://discogs-mcp-prod.rian-db8.workers.dev/mcp。
- 基本使用方法
- 部署并启动后,使用 MCP 客户端进行初始化握手,读取服务器能力与描述,并通过登录/鉴权后调用公开的工具、读取资源、获取提示等。
- 客户端可通过以下方式与服务器交互:初始化握手、发送工具调用请求、请求资源内容、获取或执行 Prompts。
- 如需进行测试与调试,可使用 MCP Inspector、Claude Desktop、 Windsurf 等客户端工具对接,验证响应格式和能力声明是否符合预期。