mcp-audio-analysis
[](https://mseep.ai/app/hugohow-mcp-music-analysis)
# MCP Music Analysis
[](https://smithery.ai/server/@hugohow/mcp-music-analysis)
This repository contains a **Model Context Provider (MCP)** that uses MCP and [librosa](https://librosa.org/) for audio analysis on audio in local, youtube link, or audio link.
## Usage with Claude Desktop
<div style="display: flex; gap: 1rem;">
<img src="public/screen.png" alt="alt text" width="40%">
<img src="public/screen1.png" alt="alt text" width="40%">
</div>
## Installation
### Installing via Smithery
To install Music Analysis for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@hugohow/mcp-music-analysis):
```bash
npx -y @smithery/cli install @hugohow/mcp-music-analysis --client claude
```
### Manual Installation
```bash
# Clone repository
git clone git@github.com:hugohow/mcp-music-analysis.git
cd mcp-music-analysis
# Create virtual environment and install
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
```
### Usage with Claude Desktop
#### Locate Configuration File
The configuration file location depends on your operating system:
- **macOS**:
```
~/Library/Application\ Support/Claude/claude_desktop_config.json
```
- **Windows**:
```
%APPDATA%\Claude\claude_desktop_config.json
```
- **Linux**:
```
~/.config/Claude/claude_desktop_config.json
```
Add the following to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"music-analysis": {
"command": "uvx",
"args": ["-n", "mcp-music-analysis"]
}
}
}
```
## Example Prompts
Here are some sample prompts you might use in a conversational or chat-based context once the server is running. The MCP will understand these requests and execute the relevant tools:
```
Can you analyze the beat of /Users/hugohow-choong/Desktop/sample-6s.mp3?
Could you give me the duration of https://download.samplelib.com/mp3/sample-15s.mp3 ?
Please compute the MFCC for this file: /path/to/another_audio.mp3
What are the spectral centroid values for /path/to/music.wav?
I'd like to know the onset times for https://www.youtube.com/watch?v=8HFiFd9vx1c
```
## To-Do List
- [x] Add URL to audio file download
- [x] Add YouTube to audio file transformation
- [ ] Experiment with multiple Python environments (testing)
- [ ] Improve installation guide
- [ ] Integrate Whisper for lyrics
- [ ] Implement a Docker solution
## Author
Hugo How-Choong
TDQS
Scored across 8 tools
Most tools have distinct purposes in audio analysis (e.g., beat tracking vs. chroma vs. MFCC), but download_from_url and download_from_youtube overlap significantly in function—both download audio files from different sources with similar descriptions. The core analysis tools are well-differentiated, but the download tools could cause confusion.
The naming is mixed: some tools use descriptive verb_noun patterns (beat_track, get_duration), while others are single verbs (load, tempo) or noun phrases (chroma_cqt, mfcc). There's no consistent convention across all tools, though most names are readable and hint at their function.
With 8 tools, the count is reasonable for an audio analysis server, covering key operations like loading, downloading, and various analysis features. It's slightly lean but not incomplete, as it includes essential functions without being overwhelming.
The server covers basic audio analysis tasks (loading, downloading, duration, tempo, spectral features), but there are notable gaps: no tools for editing, filtering, or exporting audio, and no way to visualize results. The analysis tools are focused on computation but lack broader workflow support.