discogs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCOGS_TOKEN | Yes | Personal access token from Discogs. Required. Treat it like a password; the server never logs it. | |
| MCP_AUTH_TOKEN | No | Bearer token for remote HTTP mode (--http). Required when using remote HTTP; when set, every request must send Authorization: Bearer <token>. | |
| DISCOGS_USERNAME | No | Your Discogs username. Optional; auto-detected via /oauth/identity. | |
| DISCOGS_CACHE_PATH | No | SQLite cache location. | ~/.discogs-mcp/cache.db |
| DISCOGS_ENABLE_LOCAL | No | Register the digital-library tools. Set to 1 to enable. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Search the Discogs database. Combine free-text |
| get_releaseB | Full detail for one release (a specific pressing): tracklist, credits, labels and catalog numbers, formats, identifiers (barcodes, matrix/runout etchings), notes, community have/want and rating. |
| get_masterC | A master release: the umbrella over every version/pressing of an album. |
| get_master_versionsA | List every version (pressing) of a master, with label, catno, country and year. |
| get_artistC | Artist profile, real name, aliases, name variations, groups and members. |
| get_artist_releasesC | An artist's discography (masters and releases, including appearances with roles). |
| get_labelC | Label profile including parent label and sublabels. |
| get_label_releasesC | Releases on a label, with catalog numbers. |
| whoamiA | The authenticated Discogs user: username, profile, collection/wantlist sizes. |
| get_user_listsC | A user's public lists (defaults to you). |
| get_listC | Items in a Discogs list, with each item's comment. |
| get_release_statsB | Marketplace snapshot for a release: lowest listed price and number for sale. |
| get_price_suggestionsA | Suggested sale price for each condition grade, based on Discogs sales history. Discogs only returns this for accounts with seller settings filled in; otherwise it returns a 403 and this tool explains that. |
| get_collection_valueB | Estimated collection value: minimum, median and maximum (based on sales history). |
| list_collection_foldersB | Collection folders with item counts. Folder 0 is "All", 1 is "Uncategorized". |
| get_collectionA | One page of the collection straight from Discogs (folder 0 = all). |
| find_in_collectionB | Every copy (instance) of a release in the collection, with folder, rating and fields. Returns an empty list if it is not owned. |
| get_collection_fieldsB | Custom collection fields (e.g. Media Condition, Sleeve Condition, Notes) and their allowed options. Use the ids with set_collection_field. |
| add_to_collectionA | Add a release to a collection folder (default 1 = Uncategorized; 0 is not allowed). |
| remove_from_collectionA | Remove one copy (instance) of a release from the collection. Destructive: needs dry_run=false AND confirm=true. Get instance ids from find_in_collection. |
| move_collection_itemA | Move a collection instance to another folder. Dry-run by default. |
| rate_collection_itemA | Set a 0–5 star rating on a collection instance (0 clears it). Dry-run by default. |
| set_collection_fieldA | Set a custom field (e.g. Media Condition) on a collection instance. For dropdown fields the value must be one of the options from get_collection_fields. Dry-run by default. |
| create_folderB | Create a collection folder. Dry-run by default. |
| rename_folderB | Rename a collection folder (not 0 or 1). Dry-run by default. |
| delete_folderA | Delete an empty collection folder (not 0 or 1). Destructive: needs dry_run=false AND confirm=true. Discogs refuses to delete folders that still contain items. |
| get_wantlistA | One page of the wantlist. For whole-wantlist questions, sync_collection and then
query the |
| add_to_wantlistA | Add a release to the wantlist, or update notes/rating if it's already there. |
| remove_from_wantlistA | Remove a release from the wantlist. Destructive: needs dry_run=false AND confirm=true. |
| sync_collectionA | Copy the collection, folders and wantlist into the local SQLite cache. |
| sync_release_detailsA | Fetch full release detail (tracklist, country) for cached releases that lack it. |
| sync_statusB | Last sync times, cache counts and progress of any background detail fetch. |
| query_collectionA | Run a read-only SQL SELECT against the local collection cache (max 500 rows). Use it to answer any question across the whole collection without API calls. Tables and views (SQLite):
|
| collection_summaryB | Collection overview from the cache: counts by genre, style, label, artist, decade, format and country, duplicate masters (same album owned more than once), and the last sync time. |
| export_collectionB | Write the cached collection to a CSV or JSON file (default ~/.discogs-mcp/collection.). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| identify_pressing | Identify exactly which pressing of a record you have. |
| crate_dig | Dig for records related to one you love, via label, artists and credits. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| collection_summary | Latest collection summary from the local cache (genres, styles, labels, decades, duplicates). |
TDQS
Scored across 35 tools
Most tools target a distinct resource+action, and descriptions actively disambiguate the riskiest overlaps (e.g. get_collection vs query_collection vs collection_summary vs find_in_collection, and get_release vs get_master vs get_master_versions). A few read paths (collection_summary, query_collection, get_collection) still crowd the same 'read my collection' purpose, but the guidance on when to use each keeps confusion low.
The dominant convention is a clean verb_noun pattern (add_to_collection, remove_from_wantlist, sync_release_details, get_artist_releases, delete_folder, create_folder). A handful of outliers (search, whoami, collection_summary, find_in_collection) break the pattern slightly but remain readable and intuitive.
At 35 tools this is heavy and sits above the comfortable 3-15 range, but the server covers several genuinely distinct domains: collection/folder CRUD, wantlist management, sync/cache, catalog lookup, and marketplace pricing. Nearly every tool has a defensible role, so the count is defensible yet still on the bulky side.
Coverage is broad and well-rounded: full CRUD for collection items and folders, wantlist add/remove/get, sync plus cached querying/export, and lookups for release, master, artist and label with marketplace stats. Only minor gaps exist (e.g. no first-class edit of existing wantlist/list entries beyond the add tool's upsert behavior, limited write surface for user lists).