HumMatch
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Match singers to songs by vocal range: score fit, karaoke difficulty, and voice type.
| Author | me.hummatch |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2862 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"HumMatch": {
"url": "https://hummatch.me/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (5)
get_vocal_profileread-onlyTurn a singer's vocal range into a normalized HumMatch vocal profile: a persistent Vocal ID, voice type, and tone label. Call this first when you know someone's range and want a profile to reuse across the other HumMatch tools.
Parameters:
rangeLow(required) — string — Lowest comfortable note, as a note name like "D3" or a raw MIDI number.rangeHigh(required) — string — Highest comfortable note, as a note name like "C5" or a raw MIDI number.voiceType— string — Optional voice type hint (soprano, mezzo, alto, tenor, baritone, bass). Inferred from the range when omitted.
Hints: read-only yes · destructive no · idempotent yes · open-world no
recommend_songsread-onlyRank the HumMatch catalog for one singer and return the songs they can actually sing, scored for range fit, karaoke difficulty, and voice-type suitability. Call this when someone asks what they should sing, what suits their voice or range, or wants karaoke song suggestions. Returns a ranked list plus named buckets (safest picks, easy wins, crowd pleasers, songs to avoid).
Parameters:
rangeLow(required) — string — Lowest comfortable note, as a note name like "D3" or a raw MIDI number.rangeHigh(required) — string — Highest comfortable note, as a note name like "C5" or a raw MIDI number.limit— integer — How many songs to return per bucket (default 12, max 50).voiceType— string — Optional voice type hint (soprano, mezzo, alto, tenor, baritone, bass). Inferred from the range when omitted.
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_songsread-onlySearch HumMatch by song title or artist. Use this to resolve a song someone named into the catalog slug that check_song_fit needs, or to look up a song's measured vocal range. Pass rangeLow/rangeHigh as well to score every result against that voice and get the hits ranked by fit.
Parameters:
q(required) — string — Search text: a song title, an artist, or both.limit— integer — Maximum results (default 20, max 50).rangeLow— string — Optional. Lowest note of the singer, to score and rank the results by fit.rangeHigh— string — Optional. Highest note of the singer, to score and rank the results by fit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
check_song_fitread-onlyScore a specific catalog song against a singer's range and explain why it fits or does not, including a suggested key to transpose to. Call this when someone asks whether they can sing a particular song. Resolve the song with search_songs first to get its slug.
Parameters:
slug(required) — string — The catalog slug of the song, from search_songs.rangeLow(required) — string — Lowest comfortable note, as a note name like "D3" or a raw MIDI number.rangeHigh(required) — string — Highest comfortable note, as a note name like "C5" or a raw MIDI number.voiceType— string — Optional voice type hint (soprano, mezzo, alto, tenor, baritone, bass). Inferred from the range when omitted.
Hints: read-only yes · destructive no · idempotent yes · open-world no
group_song_fitread-onlyGiven two or more singers' ranges, find the vocal range they share and the songs that sit inside it. Call this for karaoke night with friends, a duet, a choir or worship team, or any "what can we all sing" question.
Parameters:
profiles(required) — array — Two or more singers, each with a rangeLow and rangeHigh.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.