Integrate Music Data with Discogs API
MCP server for the Discogs API - search and manage a music catalog and collection, built on FastMCP, authenticated with a personal access token.
Why it matters
Connect to the Discogs music database to perform catalog operations, search for music, and manage your collection. This asset provides a bridge between your applications and the vast Discogs music data.
Outcomes
What it gets done
Access and query the Discogs music database.
Search for artists, releases, and labels.
Manage and edit your personal music collection.
Integrate with various MCP clients like Claude and LibreChat.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-discogs | bash Capabilities
Tools your agent gets
Search for music releases in the Discogs catalog by title, artist, or other criteria.
Search for artists in the Discogs music database.
Search for record labels in the Discogs catalog.
Retrieve detailed information about a specific music release from Discogs.
Retrieve detailed information about a specific artist from Discogs.
Retrieve detailed information about a specific record label from Discogs.
Retrieve the user's music collection from Discogs.
Add a release to the user's Discogs collection.
Overview
Discogs MCP Server
An MCP server, built on the FastMCP framework, for the Discogs API: music catalog search and collection operations, including editing data in a user's Discogs collection, authenticated with a personal access token. Use it when an AI assistant needs to search Discogs' music catalog or read and edit a personal Discogs collection. Use collection-editing tools carefully since changes are applied live to a real account.
What it does
An MCP server, built on the FastMCP TypeScript framework, that gives an AI assistant access to the Discogs API for music catalog operations and search. Its full tool list lives in a separate reference document rather than the main README, but the project is explicit that it covers both catalog search and editing data in a user's own Discogs collection, meaning it is not a read-only integration.
When to use - and when NOT to
Use it to search Discogs' catalog of releases, artists, and labels, or to view and manage a personal Discogs collection through an AI assistant. Because collection-editing tools can change real data in a live Discogs account, the project's own caveats say to use them with caution and verify actions before executing them - this is not a sandbox. Discogs' API defaults to 50 items per page, which the project reduces to a default of 5 within its own config to keep responses manageable for AI clients; more can be requested explicitly in a prompt, but larger responses may still strain some clients. OAuth support and an inventory-uploading tool are both listed as not yet implemented, so workflows depending on either are not currently supported.
Capabilities
The server exposes Discogs catalog search and collection management as MCP tools, with the full, current list maintained in the project's TOOLS.md rather than duplicated in the README. It supports both a standard stdio transport and an HTTP streaming mode, runs via the MCP Inspector for local testing at http://127.0.0.1:6274, and is authenticated entirely through a single Discogs personal access token rather than a full OAuth flow.
How to install
Requires Node.js and a Discogs personal access token from Discogs Settings, Developers.
{
"mcpServers": {
"discogs": {
"command": "npx",
"args": [
"-y",
"discogs-mcp-server"
],
"env": {
"DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Add this to Claude Desktop's config, or the equivalent block for LibreChat or LM Studio. Docker and local-development options are also documented for running the server directly.
Who it's for
Record collectors and music-catalog developers who want an AI assistant to search Discogs and manage their personal collection conversationally, understanding that collection edits are live and should be double-checked before running. Claude requires human-in-the-loop approval the first time each tool is used in a chat, which adds a natural checkpoint before any collection-editing action actually runs, though the free tier of Claude may hit that permission prompt more often as a long chat's context fills up. The project is licensed under MIT.
Source README
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.
Table of Contents
- Acknowledgements
- Available Tools
- Caveats
- Prerequisites
- Setup
- Running the Server
- Inspection
- MCP Clients
- TODO
- License
Available Tools
Check out the list of available tools: TOOLS.md
Caveats
- 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_pagedefault is50, which can be too much data for some clients to process effectively, so within this project adiscogs.config.defaultPerPagevalue has been set to5. 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, but18.x.xshould work as well)- Check your Node.js version with:
node --version
- Check your Node.js version with:
- Docker (optional, for running a local docker image without having to deal with Node or dependencies)
Setup
- Clone the repository
- Create a
.envfile 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.
SERVER_HOST: The host address to bind the server to (default:0.0.0.0). Set to0.0.0.0to allow connections from outside the container/machine, or127.0.0.1to restrict to localhost only.
Running the Server Locally
Option 1: Local Development
Install dependencies:
pnpm installAvailable commands:
pnpm run dev: Start the development server with hot reloadingpnpm run dev:stream: Start the development server with hot reloading in HTTP streaming modepnpm run build: Build the production versionpnpm run start: Run the production buildpnpm 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 vitestpnpm run test:coverage: Run vitest v8 coveragepnpm 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:latestFor HTTP Streaming transport mode:
# 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
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.
For more information about the MCP Inspector, visit the official documentation.
MCP Clients
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:
NPX
Running it straight from the npm registry.
{
"mcpServers": {
"discogs": {
"command": "npx",
"args": [
"-y",
"discogs-mcp-server"
],
"env": {
"DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Local Node
Dependencies should have been installed before you use this method (pnpm install).
{
"mcpServers": {
"discogs": {
"command": "npx",
"args": [
"tsx",
"/PATH/TO/YOUR/PROJECT/FOLDER/src/index.ts"
],
"env": {
"DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Docker
The docker image should have been built before using this method.
{
"mcpServers": {
"discogs": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--env-file",
"/PATH/TO/YOUR/PROJECT/FOLDER/.env",
"discogs-mcp-server:latest"
]
}
}
}
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:
discogs:
type: stdio
command: npx
args: ["-y", "discogs-mcp-server"]
env:
DISCOGS_PERSONAL_ACCESS_TOKEN: YOUR_TOKEN_GOES_HERE
LM Studio
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:
"discogs": {
"command": "npx",
"args": [
"-y",
"discogs-mcp-server"
],
"env": {
"DISCOGS_PERSONAL_ACCESS_TOKEN": "YOUR_TOKEN_GOES_HERE"
}
}
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
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.