discorg-mcp
discogs-mcp server allows you to interact with the Discogs API to manage your music collection, wantlist, and marketplace activities, as well as search the extensive Discogs catalog.
Identity: Retrieve the authenticated user’s Discogs identity.
Catalog Search & Details: Search releases, masters, artists, or labels using free‑text and structured filters (artist, title, label, genre, style, year, format, country, barcode). Get full details for a release, master, master versions, artist, artist releases, label, and label releases.
Collection Management: List collection folders, browse items (with sorting/pagination), add/remove releases, update ratings and notes, and get the estimated total value (min/median/max) of your collection.
Wantlist Management: View your wantlist, add releases (with optional notes and rating), and remove releases.
Marketplace: Get marketplace stats (copies for sale, lowest price), price suggestions per condition grade, listing details, and a seller’s inventory (defaults to your own). Create, update, and delete your own listings.
Order Management: List orders (with optional status filtering), get order details, update order status/shipping/instructions, view order messages, and post new messages (optionally changing order status).
Integrates with the Discogs API, providing tools to search the catalog, manage collections and wantlists, and interact with marketplace listings and orders.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@discorg-mcp search for the album Unknown Pleasures by Joy Division"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
discogs-mcp
A Model Context Protocol server for Discogs. Search the
catalog, manage your collection and wantlist, and work the marketplace — straight from Claude or any other MCP
client. No hosting required: it runs locally via npx and talks to Discogs' own API directly.
Features
Area | Tools |
Identity |
|
Catalog |
|
Collection |
|
Wantlist |
|
Marketplace |
|
Orders |
|
Related MCP server: MusicBrainz MCP Server
Quick start — personal access token (recommended)
The simplest setup: no app registration, no OAuth flow, just one token.
Go to discogs.com/settings/developers and click Generate new token under Personal access tokens.
Add discogs-mcp to your MCP client with that token.
Claude Code
claude mcp add discogs -e DISCOGS_PERSONAL_TOKEN=your_token -- npx -y discogs-mcpClaude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"discogs": {
"command": "npx",
"args": ["-y", "discogs-mcp"],
"env": {
"DISCOGS_PERSONAL_TOKEN": "your_token"
}
}
}
}Restart your client and the discogs_* tools will appear.
Alternative — OAuth app (for multi-user or CI setups)
If you need to authenticate as a different Discogs user than the token owner, or want to use OAuth 1.0a app credentials instead:
Register a free application at discogs.com/settings/developers — any name works; grab the Consumer Key and Consumer Secret.
Run the login flow to authorize and save an access token:
export DISCOGS_CONSUMER_KEY=your_consumer_key
export DISCOGS_CONSUMER_SECRET=your_consumer_secret
npx discogs-mcp loginThis opens your browser to Discogs' authorization page and saves the access token to
~/.config/discogs-mcp/credentials.json (mode 0600). You only need to do this once.
Then add to your MCP client with the consumer credentials so the server can sign requests:
# Claude Code
claude mcp add discogs -e DISCOGS_CONSUMER_KEY=your_key -e DISCOGS_CONSUMER_SECRET=your_secret -- npx -y discogs-mcpRemote server (Cloudflare Worker)
Want to add Discogs as a custom connector in Claude instead of running it locally?
The worker/ directory is a read-only remote MCP server (Streamable HTTP)
you can deploy to Cloudflare Workers in a few clicks — no npx process on your machine.
See worker/README.md for the one-time setup.
Environment variables
Variable | Required | Purpose |
| One of these two auth methods | Personal access token from discogs.com/settings/developers. Simplest option — no app or login step needed. |
| One of these two auth methods | OAuth app credentials. Required when using the |
| No | Inject an OAuth access token directly (skips the on-disk credential file — useful for CI). Both must be set together, alongside the consumer key/secret. |
| No | Skip the automatic username lookup on startup. Optional speed-up when the username is already known. |
| No | Overrides the |
| No | Overrides where |
Security notes
The access token/secret saved by
loginare only as sensitive as your Discogs account — they grant the same access you approved (collection, wantlist, marketplace, orders). The file is written with0600permissions.You can revoke access at any time from your Discogs account under Settings → Developers, then delete
~/.config/discogs-mcp/credentials.jsonlocally.Tools that create, modify, or delete marketplace listings/orders are real, live actions — most MCP clients ask for confirmation before running a tool call, but treat those tools as if they were.
See SECURITY.md for how to report a vulnerability.
Development
git clone https://github.com/Spiegelberg/discogs-mcp.git
cd discogs-mcp
npm install
npm run dev # run the server against source with tsx
npm run lint
npm run typecheck
npm test
npm run build # bundle to dist/See CONTRIBUTING.md for more.
Publishing / distribution checklist
Automated by this repo:
npm run buildproduces a workingdist/index.jsbin.CI (
.github/workflows/ci.yml) lints, typechecks, tests, and builds on every push/PR.Pushing a
vX.Y.Ztag runs.github/workflows/publish.yml, which publishes to npm with provenance.server.jsonis ready to submit to the open MCP Registry via themcp-publisherCLI, andpackage.json'smcpNamefield matches it.
Still manual, and outside what code in this repo can do:
Create/own the
discogs-mcpnpm package and add anNPM_TOKENrepo secret so the publish workflow can run.Run
mcp-publisher(or open a PR against the MCP Registry) to list it there.If you want it in Anthropic's curated in-product connector directory, that's a separate outreach/review process with Anthropic — not something a GitHub Action can trigger.
License
Available Tools
30 toolsdiscogs_add_order_messageDiscogs: add order messageA
Post a message to a marketplace order's message thread, optionally also changing its status.
Inputs: order_id (required), status, message.
discogs_add_to_collectionDiscogs: add release to collectionB
Add a release to a collection folder.
Inputs: release_id (required), folder_id.
discogs_add_to_wantlistDiscogs: add release to wantlistB
Add a release to the authenticated user's wantlist, optionally with notes and a rating.
Inputs: release_id (required), notes, rating.
discogs_create_listingDiscogs: create marketplace listingA
List a release for sale on the Discogs marketplace. This creates a real, publicly visible listing — confirm details with the user before calling.
Inputs: price (required), condition (required), release_id (required), status, +5 more.
discogs_delete_listingDiscogs: delete marketplace listingA
Remove a marketplace listing. This is irreversible — confirm with the user before calling.
Inputs: listing_id (required).
discogs_get_artistDiscogs: get artistARead-only
Fetch profile details for an artist by Discogs artist ID.
Inputs: artist_id (required).
discogs_get_artist_releasesDiscogs: list artist releasesBRead-only
List releases and masters credited to an artist.
Inputs: artist_id (required), page, sort, per_page, +1 more.
discogs_get_collection_itemsDiscogs: list collection itemsARead-only
List the releases in a collection folder, with sort and pagination options.
Inputs: page, sort, per_page, folder_id, +1 more.
discogs_get_collection_valueDiscogs: get collection valueARead-only
Get the estimated minimum, median, and maximum marketplace value of the user's whole collection.
Inputs: no named parameters.
discogs_get_labelDiscogs: get labelBRead-only
Fetch profile details for a record label by Discogs label ID.
Inputs: label_id (required).
discogs_get_label_releasesDiscogs: list label releasesARead-only
List releases put out on a record label.
Inputs: label_id (required), page, per_page.
discogs_get_listingDiscogs: get marketplace listingARead-only
Fetch a single marketplace listing by its listing ID.
Inputs: listing_id (required), currency.
discogs_get_marketplace_statsDiscogs: get marketplace stats for a releaseBRead-only
Get the number of copies for sale and the lowest current price for a release.
Inputs: release_id (required), currency.
discogs_get_masterDiscogs: get master releaseARead-only
Fetch details for a master release (the abstract release grouping all its pressings/versions).
Inputs: master_id (required).
discogs_get_master_versionsDiscogs: list master versionsARead-only
List all known pressings/versions of a master release.
Inputs: master_id (required), page, per_page.
discogs_get_orderDiscogs: get marketplace orderBRead-only
Fetch details for a single marketplace order.
Inputs: order_id (required).
discogs_get_price_suggestionsDiscogs: get price suggestions for a releaseARead-only
Get Discogs' suggested price per condition grade for a release, based on recent marketplace sales. Requires the authenticated user to have marketplace seller settings configured.
Inputs: release_id (required).
discogs_get_releaseDiscogs: get releaseARead-only
Fetch full details for a single release by its Discogs release ID.
Inputs: release_id (required), currency.
discogs_get_seller_inventoryDiscogs: get seller inventoryBRead-only
List the marketplace listings for a given Discogs username (defaults to the authenticated user).
Inputs: page, sort, status, per_page, +2 more.
discogs_get_wantlistDiscogs: get wantlistARead-only
List releases on the authenticated user's wantlist.
Inputs: page, per_page.
discogs_list_collection_foldersDiscogs: list collection foldersARead-only
List the authenticated user's collection folders (e.g. "All", "Uncategorized", custom folders).
Inputs: no named parameters.
discogs_list_order_messagesDiscogs: list order messagesARead-only
List the message/status-change history for a marketplace order.
Inputs: order_id (required).
discogs_list_ordersDiscogs: list marketplace ordersARead-only
List the authenticated user's marketplace orders (as a seller), with optional status filter.
Inputs: page, sort, status, per_page, +1 more.
discogs_remove_from_collectionDiscogs: remove release from collectionA
Remove a specific instance of a release from a collection folder. Requires the instance_id returned by discogs_get_collection_items for that copy (a release can appear multiple times in a folder).
Inputs: folder_id (required), release_id (required), instance_id (required).
discogs_remove_from_wantlistDiscogs: remove release from wantlistB
Remove a release from the authenticated user's wantlist.
Inputs: release_id (required).
discogs_searchDiscogs: search the catalogARead-only
Search the Discogs database for releases, masters, artists, or labels. Supports free-text queries plus structured filters (artist, title, label, genre, style, year, format, country, barcode).
Inputs: page, type, year, catno, +10 more.
discogs_update_collection_itemDiscogs: update collection itemB
Update the personal rating and/or notes fields on a specific collection item instance.
Inputs: folder_id (required), release_id (required), instance_id (required), notes, +1 more.
discogs_update_listingDiscogs: update marketplace listingA
Update an existing marketplace listing (price, condition, comments, status, etc).
Inputs: listing_id (required), release_id (required), price, status, +5 more.
discogs_update_orderDiscogs: update marketplace orderA
Update a marketplace order's status, shipping price, or additional instructions. Changing status notifies the buyer — confirm with the user before calling.
Inputs: order_id (required), status, shipping, additional_instructions.
discogs_whoamiDiscogs: who am IA
Return the Discogs identity (username, id, resource_url) of the currently authenticated user.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 30 tools
Each tool targets a distinct resource/action, and descriptions clearly clarify differences (e.g., release vs master, collection vs wantlist). The only mild overlap is between update_order and add_order_message, both of which can change order status, but their primary purposes differ.
Most tools follow a verb_noun pattern (get_release, create_listing, add_to_collection), but discogs_whoami and get_seller_inventory deviate slightly from the dominant verb_noun consistency.
With 30 tools, the set is on the heavy side, but each tool covers a distinct part of the Discogs API (database, collection, wantlist, marketplace, orders). While above the typical well-scoped range, the count is justified by the API's breadth, though it remains high.
The tool surface covers the main CRUD operations for collection, wantlist, listings, and orders, plus robust search and lookup. Missing operations like moving a collection item between folders or updating a wantlist item can be worked around (remove/add), so no critical dead ends.
Maintenance
Related MCP Connectors
MCP server for the Émile wine cellar — list, add, recommend, scan and search 100k+ wines.
MusicBrainz MCP — wraps MusicBrainz Web Service v2 (free, no auth)
MCP server for Russian books search, details, and recommendation candidates.
The official Planning Center MCP server for interacting with your ministry's data.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Plex Media Server, focused on media discovery, search, library management, and playback control.2535 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for querying the MusicBrainz database, providing tools to search for artists, releases, recordings, and browse music metadata.4MIT
- AlicenseNot gradedqualityBmaintenanceA powerful Model Context Protocol (MCP) server that enables AI assistants to interact with your personal Discogs music collection.10 npm18MIT
- AlicenseAqualityAmaintenanceAn MCP server that provides live access to MusicBrainz metadata and Cover Art Archive images, with optional OAuth-based submission of tags, ratings, and collection edits.9243 npmMIT