Skip to main content
Glama

Key Finder

key_finder
Read-only

Detects the musical key of a track and its Camelot code. Input: one file with a public HTTPS download_url. Returns the measurements as JSON, not a file. The server downloads the file from download_url, keeps it in ihateaudio's Cloudflare R2 storage while the job runs, and processes it with the ihateaudio.com tool page in a headless browser on Cloudflare. The input is deleted when the job ends.

Input Schema

NameRequiredDescriptionDefault
filesYesOne input media file.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=false, and the description goes well beyond them: it discloses the download pipeline, temporary retention in Cloudflare R2 during the job, headless-browser processing via the ihateaudio.com tool page, and deletion of the input when the job ends. This is exactly the behavioral context an agent cannot infer from structured fields.

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

Conciseness4/5

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

Four compact sentences, front-loaded with the core purpose before input and pipeline details. Every sentence carries information, though the R2/Cloudflare implementation detail is somewhat heavier than needed for tool selection.

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 covers purpose, input contract, processing behavior, data retention and the fact that JSON (not a file) is returned, which compensates for the absent output schema. It is slightly incomplete in that it says only 'the measurements' are returned without naming the fields an agent would receive.

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% for the single nested parameter, so the schema already explains download_url, file_id, file_name and mime_type. The description only restates the HTTPS download_url requirement and adds no format or syntax detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: detecting a track's musical key and Camelot code. The purpose is unambiguous and clearly distinct from siblings like bpm_detector, but it never names or contrasts with any alternative tool, so it stops short of explicit sibling differentiation.

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

Usage Guidelines3/5

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

The description gives an input precondition (one file with a public HTTPS download_url), which implies how and when the tool is usable, but it offers no explicit when-to-use/when-not guidance or routing against the many sibling analysis tools.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources