musicbrainz
🎵 A comprehensive Model Context Protocol (MCP) server for querying the MusicBrainz database. Built with FastMCP framework, featuring 10 MCP tools, async architecture, comprehensive testing, and production-ready deployment.
claude mcp add --transport stdio usercourses63-musicbrainz-mcp-server python -m musicbrainz_mcp.main \ --env DEBUG="true|false to enable debug logging" \ --env CACHE_ENABLED="true|false to enable/disable caching" \ --env CACHE_DEFAULT_TTL="Cache TTL in seconds (default: 300)" \ --env MUSICBRAINZ_TIMEOUT="Request timeout in seconds (default: 10.0)" \ --env MUSICBRAINZ_RATE_LIMIT="Requests per second (default: 1.0)" \ --env MUSICBRAINZ_USER_AGENT="Required: Your app/user agent string, e.g. YourApp/1.0.0"
How to use
MusicBrainz MCP Server exposes a set of MCP tools that query the MusicBrainz database for artists, releases, recordings, and related metadata. The server supports ten tools, including search_artist, search_release, search_recording, search_release_group, get_artist_details, get_release_details, get_recording_details, browse_artist_releases, browse_artist_recordings, and lookup_by_mbid. Clients can perform standardized MCP calls to fetch structured metadata in a consistent format, with optional parameters controlling queries, limits, and included details. Typical usage involves configuring a client with the server address, selecting a tool, and passing a params payload such as search terms, MBIDs, and desired inclusions. The server handles API requests to MusicBrainz, applies rate limiting and caching, and returns responses in the MCP schema compatible with the FastMCP framework.
How to install
Prerequisites:
- Python 3.8 or newer
- Internet connection for MusicBrainz API access
Step-by-step installation:
- Clone the repository
git clone <repository-url>
cd MusicBrainzMcp
- Create and activate a virtual environment
python -m venv venv
# On macOS/Linux
source venv/bin/activate
# On Windows
venv\Scripts\activate
- Install dependencies in editable mode
pip install -e .
- Run the server
python -m musicbrainz_mcp.main
The server will start and listen for MCP client connections.
Additional notes
Notes and tips:
- Environment variables control API behavior and caching. Set MUSICBRAINZ_USER_AGENT to a descriptive identifier, and adjust rate_limit and timeout to suit your usage pattern.
- If caching is enabled, ensure TTLs are appropriate for your workload; large TTLs can improve throughput but may serve stale data.
- The deployment section provides Docker, Systemd, and cloud deployment guidance for production setups.
- Tests exist with 101 total tests; run pytest to validate behavior during development. Ensure the virtual environment is active when running tests or the server.
- If you plan to use Smithery.ai, configure user agent, rate limit, and timeout per the README recommendations for best results.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP