What is MCP Server for the Discogs API, enabling music catalog operations and search functionality.?
This MCP server is built using FastMCP, a typescript framework for building MCP servers. It allows users to perform music catalog operations and search functionalities through the Discogs API. The server can be run locally or via Docker, and it requires a Discogs personal access token for operation.
Documentation
Discogs MCP Server
MCP Server for the Discogs API, enabling music catalog operations, search functionality, and more.
Quickstart
If you just want to get started immediately using this MCP Server with the Claude desktop app and don't care about development or running the server yourself, then make sure you have Node.js installed and your Discogs personal access token ready and skip straight to the Claude configuration section. Use the NPX method from that section.
This MCP server is built using FastMCP, a typescript framework for building MCP servers. For more information about MCP and how to use MCP servers, please refer to the FastMCP documentation and the official MCP documentation.
The Discogs API documentation is not perfect and some endpoints may not be fully documented or may have inconsistencies.
Due to the vast number of API endpoints and response types, it's not feasible to verify type safety for every possible response. Please report any type-related issues you encounter.
This MCP server allows for editing data in your Discogs collection. Please use with caution and verify your actions before executing them.
The Discogs API per_page default is 50, which can be too much data for some clients to process effectively, so within this project a discogs.config.defaultPerPage value has been set to 5. You can request more data in your prompts, but be aware that some clients may struggle with larger responses.
Prerequisites
Node.js (tested with Node.js 20.x.x, but 18.x.x should work as well)
Check your Node.js version with: node --version
Docker (optional, for running a local docker image without having to deal with Node or dependencies)
Setup
Clone the repository
Create a .env file in the root directory based on .env.example
Set the following required environment variables in your .env:
DISCOGS_PERSONAL_ACCESS_TOKEN: Your Discogs personal access token
To get your Discogs personal access token, go to your Discogs Settings > Developers page and find your token or generate a new one. DO NOT SHARE YOUR TOKEN. OAuth support will be added in a future release.
The other environment variables in .env.example are optional and have sensible defaults, so you don't need to set them unless you have specific requirements.
Running the Server Locally# Option 1: Local Development
Install dependencies:
pnpm install
Available commands:
pnpm run dev: Start the development server with hot reloading
pnpm run dev:stream: Start the development server with hot reloading in HTTP streaming mode
pnpm run build: Build the production version
pnpm run start: Run the production build
pnpm run inspect: Run the MCP Inspector (see Inspection section)
pnpm run format: Check code formatting (prettier)
pnpm run lint: Run linter (eslint)
pnpm run test: Run vitest
pnpm run test:coverage: Run vitest v8 coverage
pnpm run version:check: Checks that the package.json version and src/version.ts match
Option 2: Docker
Build the Docker image:
docker build -t discogs-mcp-server:latest .
Run the container:
docker run --env-file .env discogs-mcp-server:latest
For HTTP Streaming transport mode:
# The port should match what is in your .env file
docker run --env-file .env -p 3001:3001 discogs-mcp-server:latest stream
Inspection
Run the MCP Inspector to test your local MCP server:
pnpm run inspect
This will start the MCP Inspector at http://127.0.0.1:6274. Visit this URL in your browser to interact with your local MCP server.
More client examples will be added in the future. If you'd like configuration for a specific client, either
request it by opening a new issue or creating the pull request to edit this section of the README yourself.
Claude Desktop Configuration
Find your claude_desktop_config.json at Claude > Settings > Developer > Edit Config and depending on which option you'd like, add JUST ONE of the following:
Any changes to local code will require Claude to be restarted to take effect. Also, Claude requires human-in-the-loop interaction to allow an MCP tool to be run, so everytime a new tool is accessed Claude will ask for permission. You usually only have to do this once per tool per chat. If using the free version, long chats may result in more frequent errors trying to run tools as Claude limits the amount of context within a single chat.
LibreChat
In the librechat.yaml configuration file, add this under the mcpServers section:
Get to the Chat Settings. In the Program tab there will be a dropdown with a default of Install. Select Edit mcp.json. Add this under the mcpServers section:
After you Save, in the Program tab there should now be an mcp/discogs toggle to enable the server. Within every chat box there is an Integrations menu where you can also enable mcp servers.
TODO
OAuth support
Missing tools:
Inventory uploading
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.