Keyshift Chord Transposer
Server Details
Change keys and capo shapes
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
find_capo_options is clearly distinct, but show_chord_sheet and transpose_chords overlap substantially: both accept chord sheets, return transposed widgets/PDFs, and the sheet tool explicitly calls transpose_chords. The descriptions provide some boundary guidance, but an agent could easily choose either for transposition tasks.
All three tools follow a consistent snake_case verb_noun pattern: find_capo_options, show_chord_sheet, transpose_chords. The convention is predictable and easy to scan.
Three tools is a reasonable, focused set for a niche chord transposition server. One tool, show_chord_sheet, feels somewhat like a UI wrapper around transpose_chords rather than a fully independent operation.
The surface covers the core domain: capo suggestions, chord sheet display, and transposition with key/capo inputs, plus PDF output. Minor gaps exist around explicit key detection or saved/shared sheets, but the primary workflows are represented.
Available Tools
3 toolsfind_capo_optionsFind capo optionsARead-onlyIdempotentInspect
Use this when you want a capo chart or capo calculator for a sounding key or chord list. Returns frets 0 to 9, the shapes to play and easy open chord counts. Supply one key or 1 to 100 chord names, each up to 80 characters. Does not process audio, tablature or staff notation; ease counts chord names, not fingering variations.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Sounding key, for example D or Am. Give key or chords, not both. | |
| chords | No | Chord list of 1 to 100 names; for example ["D", "G", "A", "Bm"]. Give this instead of key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | |
| kind | Yes | |
| options | Yes | |
| chord_count | Yes | |
| shapes_truncated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, yet the description still adds substance: the output range 'frets 0 to 9', that it returns shapes and easy open chord counts, and the clarification that ease counts chord names rather than fingerings. That output-shape context goes beyond the annotations and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: trigger first, then output and input constraints, then exclusions and a caveat. No filler, and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description still tells the agent what kind of results to expect and the input cardinality limits. For a two-optional-parameter, no-required-input tool, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns one more by restating the key-vs-chords exclusivity as an operational rule and clarifying that the ease metric applies to chord names, which shapes how an agent should build the chords array. The 1-100 / 80-character limits merely repeat the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: 'capo chart or capo calculator for a sounding key or chord list', which is concrete and distinct from chord-sheet or transposition work. It never names the sibling tools, so differentiation is by domain inference rather than explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when you want a capo chart or capo calculator' gives a clear triggering condition, and 'Does not process audio, tablature or staff notation' sets a negative boundary. It stops short of naming show_chord_sheet or transpose_chords as the alternatives to pick instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_chord_sheetShow chord sheetARead-onlyIdempotentInspect
Use this when you want a live chord sheet with -1 and +1 semitone controls. Accepts 1 to 12,000 characters in chord-line or ChordPro format; controls call transpose_chords. Shows the original key and chord counts plus a Latin-only Courier PDF. Chord names only; does not process audio, tablature or staff notation. Key estimates can be wrong for songs that change key.
| Name | Required | Description | Default |
|---|---|---|---|
| sheet | Yes | Chord sheet of 1 to 12,000 characters, with chords above lyrics or inline; for example C G\nLanterns glow, or [Am]Lantern [F]garden. | |
| title | No | PDF title up to 80 Western Latin characters; for example Lantern Garden. | |
| from_key | No | Origin key; for example C or Am. Required with to_key; otherwise the header or first and last chords give a key estimate. | |
| spelling | No | Chord spelling; for example auto follows the target key, while sharps forces F# instead of Gb for consistent round trips. |
Output Schema
| Name | Required | Description |
|---|---|---|
| capo | Yes | |
| gaps | Yes | |
| kind | Yes | |
| mode | Yes | |
| notes | Yes | |
| in_key | Yes | |
| to_key | Yes | |
| from_key | Yes | |
| downloads | Yes | |
| semitones | Yes | |
| chord_count | Yes | |
| chords_used | Yes | |
| lyric_lines | Yes | |
| key_estimated | Yes | |
| unique_chord_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description discloses input limits, supported formats, that controls invoke transpose_chords, what the output includes (original key, chord counts, Latin-only Courier PDF), and an important limitation about key estimates for modulating songs. These details materially improve behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary use case and then efficiently layers in input formats, output contents, exclusions, and limitations. Every sentence carries useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations, a fully described input schema, and an output schema, the description supplies the remaining context an agent needs: format support, length limits, output characteristics, exclusions, and known key-estimation limitations. Nothing essential for correct invocation appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters already have documented semantics. The description adds context about chord sheet length and formats, but it does not specifically clarify title, from_key/to_key behavior, or spelling beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and behavior: a live chord sheet with -1/+1 semitone controls, accepting chord-line or ChordPro input. It also distinguishes the tool from transpose_chords by explaining that the controls call that sibling, so an agent can identify this as the presentation/PDF tool rather than the raw transposition tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use condition: 'Use this when you want a live chord sheet with -1 and +1 semitone controls.' It also provides useful exclusions such as no audio, tablature, or staff notation, though it does not explicitly say when to choose find_capo_options instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transpose_chordsTranspose chordsARead-onlyIdempotentInspect
Use this when you want to transpose chords or change the key of a song. Accepts a sheet up to 12,000 characters, chords above lyrics or ChordPro brackets; choose semitones -11 to +11, from_key with to_key, or capo_fret 0 to 9. Returns key change, chord mapping, widget sheet and a Latin-only Courier PDF. Chord names only; does not process audio, tablature or staff notation. Key estimates can be wrong for songs that change key.
| Name | Required | Description | Default |
|---|---|---|---|
| sheet | Yes | Chord sheet of 1 to 12,000 characters, with chords above lyrics or inline; for example C G\nLanterns glow, or [Am]Lantern [F]garden. | |
| title | No | PDF title up to 80 Western Latin characters; for example Lantern Garden. | |
| to_key | No | Target key paired with from_key; for example from_key C and to_key F. Use this instead of semitones or capo_fret. | |
| from_key | No | Origin key; for example C or Am. Required with to_key; otherwise the header or first and last chords give a key estimate. | |
| spelling | No | Chord spelling; for example auto follows the target key, while sharps forces F# instead of Gb for consistent round trips. | |
| capo_fret | No | Capo fret from 0 to 9; for example 2 returns shapes two semitones below the sounding key. Use this instead of semitones or to_key. | |
| semitones | No | Signed shift from -11 to +11; for example 2 moves up two semitones. Give one transposition choice. |
Output Schema
| Name | Required | Description |
|---|---|---|
| capo | Yes | |
| gaps | Yes | |
| kind | Yes | |
| mode | Yes | |
| notes | Yes | |
| in_key | Yes | |
| to_key | Yes | |
| from_key | Yes | |
| downloads | Yes | |
| semitones | Yes | |
| chord_count | Yes | |
| chords_used | Yes | |
| lyric_lines | Yes | |
| key_estimated | Yes | |
| unique_chord_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a safe read-only, idempotent operation, and the description adds substantive context beyond that: the 12,000-character input ceiling, accepted chord formats, the return payload (key change, chord mapping, widget sheet, Latin-only Courier PDF), and a reliability caveat that key estimates fail on key-changing songs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case, then constraints, then returns, then exclusions and the failure caveat — no filler sentences, and each clause carries a distinct constraint an agent would otherwise have to discover by trial.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter transform tool with a full schema and an output schema, the description covers the remaining gaps: input size, accepted notation styles, mutually exclusive transposition modes, unsupported inputs, and the known accuracy limitation. An agent can invoke it correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 applies; the description earns a bump by stating the mutual-exclusivity rule across semitones / from_key+to_key / capo_fret and restating the numeric ranges. It still leans on the schema for spelling behavior and title formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('transpose chords or change the key of a song') plus explicit scope boundaries — chord names only, no audio, tablature or staff notation. It does not name or contrast with the siblings find_capo_options and show_chord_sheet, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when you want to transpose chords or change the key of a song' gives a clear trigger condition, and the description spells out the three mutually exclusive transposition routes (semitones, from_key+to_key, capo_fret). It stops short of routing the agent to find_capo_options when only capo shapes are wanted, so it lacks explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
find_capo_options - First observed
show_chord_sheet - First observed
transpose_chords
Related MCP Connectors
Chords, scales, transposition, capo and tempo maths, with links to free interactive music tools.
Read-only music guides, chord transposition, piano chord spelling and guitar-tab pitch mapping.
Find and license original songs to record. Hear every song in many production styles.
Make songs, change one part's lyrics in the same voice, and reimagine songs in new styles.
Related MCP Servers
- AlicenseAqualityDmaintenanceFetch Songsterr tabs and transpose them between tunings and string counts, outputting ASCII or Guitar Pro files.4GPL 3.0
- FlicenseNot gradedqualityDmaintenanceEnables interactive exploration of guitar chord voicings through an MCP server that provides tools for showing, evaluating, and analyzing chord voicings, with a host-agnostic UI widget for inline fretboard rendering.1-
- AlicenseAqualityDmaintenanceBuilds piano-friendly iReal Pro chord charts with deterministic layout, harmonic analysis, and a standalone HTML export. Provides tools to create, preview, list, and delete charts, and serves them over LAN for easy import into iReal Pro.9MIT
- MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.