Skip to main content
Glama

Server Details

Match singers to songs by vocal range: score fit, karaoke difficulty, and voice type.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: profile creation, song search, single-song fit check, individual recommendations, and group recommendations. Even though check_song_fit and recommend_songs both assess fit, the former is for a specific song while the latter ranks the entire catalog, so no ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: check_song_fit, get_vocal_profile, group_song_fit, recommend_songs, and search_songs. The naming is uniformly snake_case with action-first verbs, making the function of each tool predictable.

Tool Count5/5

Five tools is ideal for this domain, covering the core workflows without unnecessary bloat. Each tool serves a distinct need, and the count feels well-scoped for a music matching service.

Completeness5/5

The tool set covers the full lifecycle: creating a vocal profile, searching the catalog, checking a specific song, recommending songs for an individual, and finding songs for a group. There are no obvious dead ends or missing operations for the stated purpose.

Available Tools

5 tools
check_song_fitScore one song for a voiceA
Read-onlyIdempotent
Inspect

Score 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe catalog slug of the song, from search_songs.
rangeLowYesLowest comfortable note, as a note name like "D3" or a raw MIDI number.
rangeHighYesHighest comfortable note, as a note name like "C5" or a raw MIDI number.
voiceTypeNoOptional voice type hint (soprano, mezzo, alto, tenor, baritone, bass). Inferred from the range when omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoCanonical HumMatch page for the song.
slugYesCatalog slug; the identifier check_song_fit takes.
yearNo
genreNo
titleYes
artistYes
reasonNoPlain-language verdict.
lowNoteNoLowest note of the song as a MIDI number.
highNoteNoHighest note of the song as a MIDI number.
whyItFitsNo
fitDetailsNoLabels behind the scores.
matchScoreYesOverall suitability for this voice, 0-100.
lowNoteNameNoSame as lowNote, as a note name like "G2".
rangeSourceNoProvenance tag for the range, e.g. "estimated_curated_seed".
riskWarningNo
highNoteNameNoSame as highNote, as a note name like "C#5".
suggestedKeyNoTransposition advice, e.g. "Try a lower key".
vocalFitScoreNoHow well the song range sits inside the singer range, 0-100.
likelyVoiceFitNo
tessituraScoreNoHow comfortable the song sits where the voice spends most time, 0-100.
difficultyScoreNoKaraoke difficulty, 0-100. Higher is harder.
rangeConfidenceYesHow the range was established, strongest first. "manual_research" was researched against sheet music or a score and is the most trustworthy tier. "estimated" was derived from published sources rather than measured, so present those scores as guidance rather than fact. "high" and "low" are legacy confidence labels. "unknown" means no range data.
voiceTypeFitScoreNoFit against the voice type lane, 0-100. Can be high while matchScore is low when the range still exceeds the singer.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context beyond these by explaining that the tool not only scores but also 'explain why it fits or does not, including a suggested key to transpose to.' This describes the output behavior without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the core purpose, and each sentence contributes necessary information: what it does, when to use it, and a prerequisite. No wasted words or redundant restating of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, the presence of rich annotations, a complete input schema with 100% descriptions, and an output schema, the description fully covers the necessary context. It tells the agent exactly when and how to invoke the tool, and the schema/output schema cover the technical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds valuable semantic context for the slug parameter by noting it comes from search_songs. This extra guidance helps the agent understand the parameter's provenance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Score a specific catalog song against a singer's range and explain why it fits or does not.' It distinguishes itself from siblings like recommend_songs and group_song_fit by focusing on a single song evaluation, and directly mentions the search_songs prerequisite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: 'Call this when someone asks whether they can sing a particular song.' It also gives a clear instruction to resolve the song via search_songs first. While it doesn't explicitly state when not to use it or name alternatives, the context is unambiguous and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vocal_profileBuild a vocal profileA
Read-onlyIdempotent
Inspect

Turn 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeLowYesLowest comfortable note, as a note name like "D3" or a raw MIDI number.
rangeHighYesHighest comfortable note, as a note name like "C5" or a raw MIDI number.
voiceTypeNoOptional voice type hint (soprano, mezzo, alto, tenor, baritone, bass). Inferred from the range when omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
vocalIdYesHuman-readable profile label, e.g. "Tenor - Balanced tone".
rangeLowYesLowest comfortable note as MIDI.
rangeHighYesHighest comfortable note as MIDI.
toneLabelNo
voiceTypeYes
humProfileNoUnderlying measurements. Timbre fields stay null until an actual hum recording has been analyzed.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly and idempotent, and the description adds context by noting the profile is 'normalized' and 'persistent', and that it is reusable. This clarifies that the tool transforms input into a stable, shareable profile, complementing the annotation-level safety information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff: first sentence defines the function, second provides usage timing. It is front-loaded with the core purpose and ends with actionable guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a complete input schema, an output schema, and comprehensive annotations, the description does not need to explain return values. It adds the essential workflow context and is fully self-contained for an agent to decide when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all three parameters with detailed descriptions (e.g., 'Lowest comfortable note, as a note name like "D3" or a raw MIDI number'). The description does not add parameter-specific meaning beyond the schema, which is acceptable given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: 'Turn a singer's vocal range into a normalized HumMatch vocal profile' and identifies the output components (Vocal ID, voice type, tone label). It clearly differentiates this tool from sibling tools, which focus on song fitting and recommendations, by being a profile-building prerequisite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use: 'Call this first when you know someone's range and want a profile to reuse across the other HumMatch tools.' This provides both a trigger condition and a contrast with alternative tools, establishing this as the initial step in a workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

group_song_fitFind songs a group can sing togetherA
Read-onlyIdempotent
Inspect

Given 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
profilesYesTwo or more singers, each with a rangeLow and rangeHigh.

Output Schema

ParametersJSON Schema
NameRequiredDescription
songsYes
sharedRangeYesThe overlap every supplied singer can reach. Null bounds mean no shared range exists.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds context about the task but does not disclose behavioral details like handling of non-overlapping ranges or note format assumptions. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core function and then enriched with use-case examples. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficiently complete for a read-only analysis tool with an output schema. It explains the input, purpose, and when to use it. Minor missing details around edge cases (e.g., no overlap) are not critical given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter descriptions, including the structure of profiles with rangeLow/rangeHigh. The description simply restates 'two or more singers' ranges' without adding new semantic details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: finding the shared vocal range and songs within it for two or more singers. It also distinguishes itself from siblings by focusing on group compatibility rather than individual song checks or recommendations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage contexts (karaoke, duets, choir, worship team) and suggests when to call it ('what can we all sing' question). It lacks explicit exclusions or alternative tool names, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_songsFind songs that fit a voiceA
Read-onlyIdempotent
Inspect

Rank 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many songs to return per bucket (default 12, max 50).
rangeLowYesLowest comfortable note, as a note name like "D3" or a raw MIDI number.
rangeHighYesHighest comfortable note, as a note name like "C5" or a raw MIDI number.
voiceTypeNoOptional voice type hint (soprano, mezzo, alto, tenor, baritone, bass). Inferred from the range when omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchesYesRanked best matches overall.
vocalIdYes
easyWinsNoComfortable and easy to sing.
rangeLowNo
rangeHighNo
voiceTypeYes
bestSafePicksNoLowest-risk choices.
groupFriendlyNoWork well with other singers.
confidenceTierNo
riskyPicksToAvoidNoScored, but they exceed the comfortable range.
popularCrowdPleasersNoWell-known songs that still fit.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as safe, so the bar is lower. The description adds behavioral context: 'scored for range fit, karaoke difficulty, and voice-type suitability' and the output structure with named buckets. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: purpose, when-to-use, and return structure. Every sentence adds value, is front-loaded, and avoids redundancy with the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, an output schema exists (so return values are covered), and the description explains the key behavior, use cases, and output buckets. It is complete for an agent to understand when and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add significant syntax or domain meaning beyond the schema—'range' and 'voice-type' are mentioned but not expanded with new parameter-specific details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Rank') and resource ('the HumMatch catalog') and clearly states the outcome: 'return the songs they can actually sing, scored for range fit, karaoke difficulty, and voice-type suitability.' It also distinguishes from siblings by emphasizing 'one singer' versus group-oriented tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit call scenarios: 'when someone asks what they should sing, what suits their voice or range, or wants karaoke song suggestions.' It does not mention when-not-to-use or alternatives, but the context is clear and sufficient for correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_songsSearch the song catalogA
Read-onlyIdempotent
Inspect

Search 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch text: a song title, an artist, or both.
limitNoMaximum results (default 20, max 50).
rangeLowNoOptional. Lowest note of the singer, to score and rank the results by fit.
rangeHighNoOptional. Highest note of the singer, to score and rank the results by fit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
queryYes
songsYesResults. Scored fields are present only when rangeLow and rangeHigh were supplied.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint annotations, the description discloses that providing rangeLow/rangeHigh scores every result and ranks by fit, and that it resolves songs to catalog slugs. This adds behavioral context not captured in annotations, though it could mention behavior when no results are found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a purpose: purpose, use cases, and parameter behavior. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return format is covered. The description explains use cases, relation to check_song_fit, ranking behavior, and parameter usage, making it complete for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema fully describes all 4 parameters, and the description adds semantic context: q searches title or artist, rangeLow/rangeHigh are used for scoring/ranking results. Limit is self-explanatory, so the description provides meaningful value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Search HumMatch by song title or artist' – a specific verb and resource. It further distinguishes from siblings by noting check_song_fit needs the catalog slug from this tool and that it can look up a song's measured vocal range.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to resolve a song someone named into the catalog slug that check_song_fit needs' explicitly gives when-to-use context, and the rangeLow/rangeHigh guidance explains when to enrich the search. This clearly positions the tool relative to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables music search, metadata retrieval, local audio analysis (tempo, key, energy), recommendations, song recognition, and classical work resolution via Spotify, Last.fm, AudD, MusicBrainz, and Songkick APIs.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables musical analysis of MIDI and musicXML files using music21, providing tools for key detection, harmony, melody, rhythm, form analysis, counterpoint checking, and motif extraction.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to generate, inspect, and micro-tune OpenUtau .ustx project files and DiffSinger neural expression curves.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources