discogs-mcp
A Model Context Protocol server for Discogs. Search thecatalog, manage your collection and wantlist, and work the marketplace — straight from Claude or any other MCPclient. No hosting required: it runs locally via npx and talks to Discogs' own OAuth 1.0a API directly.
Features
| Area | Tools |
|---|---|
| Identity | discogs_whoami |
| Catalog | discogs_search, discogs_get_release, discogs_get_master, discogs_get_master_versions, discogs_get_artist, discogs_get_artist_releases, discogs_get_label, discogs_get_label_releases |
| Collection | discogs_list_collection_folders, discogs_get_collection_items, discogs_add_to_collection, discogs_remove_from_collection, discogs_update_collection_item, discogs_get_collection_value |
| Wantlist | discogs_get_wantlist, discogs_add_to_wantlist, discogs_remove_from_wantlist |
| Marketplace | discogs_get_marketplace_stats, discogs_get_price_suggestions, discogs_get_listing, discogs_get_seller_inventory, discogs_create_listing, discogs_update_listing, discogs_delete_listing |
| Orders | discogs_list_orders, discogs_get_order, discogs_update_order, discogs_list_order_messages, discogs_add_order_message |
Prerequisites
- Node.js 18+.
- A free Discogs application — discogs-mcp doesn't ship with a shared API key, so each user registers theirown at discogs.com/settings/developers. Any name/descriptionworks; you just need the Consumer Key and Consumer Secret it gives you.
Install & authorize
export DISCOGS_CONSUMER_KEY=your_consumer_key
export DISCOGS_CONSUMER_SECRET=your_consumer_secret
npx discogs-mcp login
This opens your browser to Discogs' authorization page and, once you approve, saves an access token to~/.config/discogs-mcp/credentials.json (mode 0600). You only need to do this once — the MCP server itself readsthose saved credentials on startup. See Environment variables if you'd rather inject atoken directly (e.g. in CI) instead of running the interactive flow.
Add it to your MCP client
The consumer key/secret need to be available to the server process too (it re-signs every API request with them),so pass them through your client's env config.
Claude Code
claude mcp add discogs -e DISCOGS_CONSUMER_KEY=your_consumer_key -e DISCOGS_CONSUMER_SECRET=your_consumer_secret -- npx -y discogs-mcp
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"discogs": {
"command": "npx",
"args": ["-y", "discogs-mcp"],
"env": {
"DISCOGS_CONSUMER_KEY": "your_consumer_key",
"DISCOGS_CONSUMER_SECRET": "your_consumer_secret"
}
}
}
}
Restart your client and the discogs_* tools should show up.
Environment variables
| Variable | Required | Purpose |
|---|---|---|
DISCOGS_CONSUMER_KEY / DISCOGS_CONSUMER_SECRET |
Yes | Your registered Discogs application's credentials. Used both by login and to sign every API request. |
DISCOGS_USER_AGENT |
No | Overrides the User-Agent header Discogs requires of API clients. Defaults to discogs-mcp/<version> +<repo url>. |
DISCOGS_ACCESS_TOKEN / DISCOGS_ACCESS_TOKEN_SECRET |
No | Skip the on-disk credential file and inject an access token directly (useful for CI/containers). Both must be set together. |
DISCOGS_USERNAME |
No | Only needed alongside the two vars above if the token's identity lookup should be skipped. |
DISCOGS_MCP_CREDENTIALS_PATH |
No | Overrides where login reads/writes credentials. Defaults to ~/.config/discogs-mcp/credentials.json. |
Security notes
- The access token/secret saved by
loginare only as sensitive as your Discogs account — they grant the sameaccess 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 askfor 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 withprovenance. server.jsonis ready to submit to the open MCP Registryvia 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/reviewprocess with Anthropic — not something a GitHub Action can trigger.
License
MIT