Skip to main content
Glama
hlights33
by hlights33

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DISCOGS_TOKENYesPersonal access token from Discogs. Required. Treat it like a password; the server never logs it.
MCP_AUTH_TOKENNoBearer token for remote HTTP mode (--http). Required when using remote HTTP; when set, every request must send Authorization: Bearer <token>.
DISCOGS_USERNAMENoYour Discogs username. Optional; auto-detected via /oauth/identity.
DISCOGS_CACHE_PATHNoSQLite cache location.~/.discogs-mcp/cache.db
DISCOGS_ENABLE_LOCALNoRegister 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
searchA

Search the Discogs database. Combine free-text query with field filters.

    Use barcode or catno to pin down a specific pressing. `year` accepts a year or
    range like "1990-1995". Returns a compact list; fetch details with get_release /
    get_master / get_artist / get_label.
    
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.

    Filter by format (e.g. "Vinyl"), country, year (`released`) or label. Use it for
    "which pressing is this?" then confirm with get_release identifiers.
    
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.

    `currency` is an ISO code such as USD, EUR, GBP (defaults to your account currency).
    
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).

    For questions across the whole collection, prefer the cache tools
    (query_collection, collection_summary): they avoid paging through the API.
    
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).

    Dry-run by default: returns a preview. Call again with dry_run=false to apply.
    
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 wants view with query_collection.

add_to_wantlistA

Add a release to the wantlist, or update notes/rating if it's already there.

    Dry-run by default: returns a preview. Call again with dry_run=false to apply.
    
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.

    Incremental (default) fetches only items added since the last sync. full=true
    re-reads everything and also catches removals, folder moves and edits. Run this
    before using query_collection or collection_summary. Tracklists and countries
    come from sync_release_details.
    
sync_release_detailsA

Fetch full release detail (tracklist, country) for cached releases that lack it.

    Costs one API request per release (Discogs allows 60/min), so by default it runs in
    the background and returns immediately; check progress with sync_status. It is
    resumable: re-running continues where it stopped. Leaves headroom in the rate limit
    for other tools.
    
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 (view): instance_id, folder_id, folder, rating, date_added, fields, release_id, master_id, artist, title, year, labels, catnos, format, formats, genres, styles, country

  • wants (view): release_id, rating, notes, date_added, master_id, artist, title, year, labels, catnos, format, formats, genres, styles, country

  • releases: id, master_id, artist, title, year, labels, catnos, format, formats, genres, styles, country, details_fetched_at

  • release_labels: release_id, label_id, name, catno (one row per label on a release)

  • collection_items: instance_id, release_id, folder_id, rating, date_added, fields

  • item_fields: instance_id, field_id, name, value (e.g. name='Media Condition')

  • folders: id, name, count

  • tracks: release_id, position, title, artists, duration, seq (needs sync_release_details)

  • sync_meta: key, value labels, catnos, genres and styles are JSON arrays: use json_each, e.g. SELECT s.value AS style, COUNT(*) FROM collection, json_each(collection.styles) s GROUP BY 1 fields is a JSON object: json_extract(fields, '$."Media Condition"'). country and tracks are only populated after sync_release_details.

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

NameDescription
identify_pressingIdentify exactly which pressing of a record you have.
crate_digDig for records related to one you love, via label, artists and credits.

Resources

Contextual data attached and managed by the client

NameDescription
collection_summaryLatest collection summary from the local cache (genres, styles, labels, decades, duplicates).

TDQS

B3.3/5.0

Scored across 35 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness4/5

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).

Maintenance

ActivityMaintained
ResponsivenessNo issues