Skip to main content

An MCP Server to interact with the discogs API, supports read operations (for the moment)

Project description

MCP Server Discogs

A Model Context Protocol (MCP) server for interacting with the Discogs API. This server allows searching the Discogs database and retrieving user information.

Konwn issues

  • searches can be very expensive, there is simply too much data coming back. Also search pagination is NOT used, the search currently looks only at the first page of results.

Features

  • Search Discogs: Search for releases, masters, artists, or labels using various filters
  • User Info: Retrieve authenticated user information including collection value statistics
  • MCP Integration: Use with Claude, GPT or other MCP-compatible AI assistants

Prerequisites

  • Python 3.13 or higher
  • Discogs API token (Get one here)
  • For MCP Inspector: Node.js (as a development dependency)
  • For Open WebUI integration: mcpo package

Installation

From Source

  1. Clone the repository:

    git clone https://gitlab.com/konstantinpae/mcp-server-discogs.git
    cd /path/to/mcp-server-discogs
    
  2. Create and activate a virtual environment:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install the package in development mode:

    uv sync
    

Usage

Basic Usage

  1. Set your Discogs API token as an environment variable:

    export DISCOGS_API_TOKEN="your_discogs_api_token"
    
  2. Run the MCP server:

    uvx --refresh /path/to/mcp-server-discogs
    

    Note: --refresh rebuilds the package on every start

Usage with Claud, Cline or anything supporting MCP

  1. Go to the settings file for your MCP server, it should look something like this
    {
       "mcpServers": {
          "mcp-server1": {...}, 
          "mcp-server2": {...},    
       }
    }
    
    Add the following, so it looks something like this
    {
       "mcpServers": {
          "mcp-server1": {...}, 
          "mcp-server2": {...},
          "discogs-mcp-server": {
             "disabled": false,
             "timeout": 300,
             "command": "uvx",
             "args": [
                "/path/to/mcp-server-discogs"
             ],
             "env": {
                "DISCOGS_API_TOKEN": "your_discogs_api_token"
             }
          }              
       }
    }
    
  2. You should now be able to use the MCP server from your client of choice.

Using with MCP Inspector

The MCP Inspector provides a UI for testing and inspecting the server's capabilities.

  1. Install the MCP Inspector (if not already installed):

    npm install -g @modelcontextprotocol/inspector
    
  2. Run the MCP server with Inspector:

    env DISCOGS_API_TOKEN="YOUR_API_TOKEN" npx @modelcontextprotocol/inspector uvx --refresh /path/to/mcp-server-discogs
    

Using with Open WebUI

Known Issue: mcpo only implements tools but not resources, so user-info will not work!

To integrate with Open WebUI, you'll need the (mcpo) package:

  1. In the repository, run:

    uvx mcpo --port 8000 --api-key "ANY API KEY" -- uvx /path/to/mcp-server-discogs
    

    Note: Set any API key here, you will need it for setup with Open Web UI

  2. Configure Open WebUI to use this MCP server (refer to Open WebUI documentation for specific steps)

Server Capabilities

Tools

search

Searches Discogs for a given search string and returns results.

Parameters:

  • query (required): The search string to be used in the search
  • type: The type of the query can be 'release', 'master', 'artist' or 'label'
  • title: Search by combined "Artist Name - Release Title" title field
  • release_title: Search release titles
  • credit: Search release credits
  • artist: Search artist names
  • anv: Search artist ANV
  • label: Search label names
  • genre: Search genres
  • style: Search styles
  • country: Search release country
  • year: Search release year
  • format: Search formats
  • catno: Search catalog number
  • barcode: Search barcodes
  • track: Search track titles
  • submitter: Search submitter username
  • contributor: Search contributor usernames

Resources

discogs-user-info

Returns all relevant information of the Discogs user currently authenticated.

URI: data://discogs/userinfo

Development

Development Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/mcp-server-discogs.git
    cd /path/to/repository
    
  2. Create and activate a virtual environment:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install development dependencies:

    uv pip install -e .
    uv pip install bandit mypy pytest pytest-cov ruff
    
  4. Install Node.js (required for MCP Inspector):

    # Using nvm (recommended)
    nvm install node
    # Or download from https://nodejs.org/
    

Running Tests

uv run pytest

Code Quality

The project uses several tools to maintain code quality:

  • ruff: For linting and formatting

    uv run ruff check 
    uv run ruff format 
    
  • mypy: For type checking

    uv run mypy . --follow-untyped-imports # we need this as the discogs client doesn't offer stubs
    
  • bandit: For security analysis

    uv run bandit -c pyproject.toml -r .
    

License

See the LICENSE file for details.

Acknowledgements

TODO

  • Unit Tests
  • More functionality
  • Optimization of the search function

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_discogs-0.2.0.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_discogs-0.2.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_discogs-0.2.0.tar.gz.

File metadata

  • Download URL: mcp_server_discogs-0.2.0.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for mcp_server_discogs-0.2.0.tar.gz
Algorithm Hash digest
SHA256 43f4ba8d722be73410469177c25eb154d81bc7370351b90ed60c2f21ef93dc4d
MD5 f1925d9cfd607f74f7a4a466110d74f2
BLAKE2b-256 1e7b8a014cd191e51a448dd6874aa740e537f1b9f52a0efc16ac23bd1671919c

See more details on using hashes here.

File details

Details for the file mcp_server_discogs-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_discogs-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f95df26c3361074f4310273b2b217e211b428ac0063cd65306670b0e40da65f0
MD5 63e53e1f6a528253fb949f057df13188
BLAKE2b-256 0407e9df77d3f65458a474372e8b036641430449b8142070486308cc697a44f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page