Koskamo

Keyshift Chord Transposer MCP

An entertainment tool for guitar and ukulele that allows agents to transpose chord names with lyrics, explore capo shapes, and generate monospaced Unicode PDF chord sheets using semitone controls or key pairs.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Keyshift Chord Transposer MCP logo, by ZovoCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Zovo
MCP endpoint (Streamable HTTP)
https://chord-transposer.zovo.one/mcp
Vendor documentation

What you can do with it

  • Transpose chord names with lyrics in place
  • Explore capo shapes for specific keys
  • Generate monospaced Unicode PDF chord sheets

Source and maintenance

Community listingRegistry 1.0.0

Protocol and capabilities

Server
chord-transposer 2.0.1
MCP protocol
2025-06-18
Tools
3 advertised
Resources
1 advertised
Resource templates
1 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Use transpose_chords for a shift, named key pair or capo fret; find_capo_options for frets 0 to 9; show_chord_sheet for an interactive sheet. Full lyrics and sheets are only in widget meta and the stateless sealed PDF link. Key estimates can be wrong for songs that change key. The monospaced PDF prints Latin, Greek, Cyrillic, Vietnamese, Chinese, Japanese and Korean lyrics; right-to-left scripts and emoji get a note instead of a PDF.

Tools

3 advertised

transpose_chords — Transpose chords
Advertised by the server during the last successful anonymous check.
Advertised read-only

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 monospaced PDF. Chord names only; does not process audio, tablature or staff notation. Key estimates can be wrong for songs that change key.

transpose_chords input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "sheet"
  ],
  "properties": {
    "sheet": {
      "type": "string",
      "description": "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": {
      "type": "string",
      "maxLength": 80,
      "description": "PDF title up to 80 characters; for example Lantern Garden."
    },
    "to_key": {
      "type": "string",
      "maxLength": 24,
      "description": "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": {
      "type": "string",
      "maxLength": 24,
      "description": "Origin key; for example C or Am. Required with to_key; otherwise the header or first and last chords give a key estimate."
    },
    "spelling": {
      "enum": [
        "auto",
        "sharps",
        "flats"
      ],
      "type": "string",
      "description": "Chord spelling; for example auto follows the target key, while sharps forces F# instead of Gb for consistent round trips."
    },
    "capo_fret": {
      "type": "integer",
      "maximum": 9,
      "minimum": 0,
      "description": "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": {
      "type": "integer",
      "maximum": 11,
      "minimum": -11,
      "description": "Signed shift from -11 to +11; for example 2 moves up two semitones. Give one transposition choice."
    }
  }
}
transpose_chords output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "kind",
    "from_key",
    "to_key",
    "mode",
    "key_estimated",
    "semitones",
    "chord_count",
    "unique_chord_count",
    "lyric_lines",
    "chords_used",
    "capo",
    "gaps",
    "in_key",
    "notes",
    "downloads"
  ],
  "properties": {
    "capo": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "fret",
            "shape_key",
            "sounding_key"
          ],
          "properties": {
            "fret": {
              "type": "number"
            },
            "shape_key": {
              "type": "string"
            },
            "sounding_key": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "kind": {
      "type": "string",
      "const": "transposed_sheet"
    },
    "mode": {
      "enum": [
        "major",
        "minor"
      ],
      "type": "string"
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "in_key": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "to_key": {
      "type": "string"
    },
    "from_key": {
      "type": "string"
    },
    "downloads": {
      "type": "object",
      "properties": {
        "pdf": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "semitones": {
      "type": "number"
    },
    "chord_count": {
      "type": "number"
    },
    "chords_used": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "original",
          "transposed"
        ],
        "properties": {
          "original": {
            "type": "string"
          },
          "transposed": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "lyric_lines": {
      "type": "number"
    },
    "key_estimated": {
      "type": "boolean"
    },
    "unique_chord_count": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
transpose_chords annotations
{
  "title": "Transpose chords",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_capo_options — Find capo options
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

find_capo_options input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "key": {
      "type": "string",
      "maxLength": 24,
      "description": "Sounding key, for example D or Am. Give key or chords, not both."
    },
    "chords": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 80
      },
      "maxItems": 100,
      "description": "Chord list of 1 to 100 names; for example [\"D\", \"G\", \"A\", \"Bm\"]. Give this instead of key."
    }
  }
}
find_capo_options output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "kind",
    "key",
    "chord_count",
    "options",
    "shapes_truncated"
  ],
  "properties": {
    "key": {
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "type": "string",
      "const": "capo_options"
    },
    "options": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "fret",
          "shape_key",
          "shapes",
          "easy_open_count"
        ],
        "properties": {
          "fret": {
            "type": "number"
          },
          "shapes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "shape_key": {
            "type": [
              "string",
              "null"
            ]
          },
          "easy_open_count": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "chord_count": {
      "type": "number"
    },
    "shapes_truncated": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
find_capo_options annotations
{
  "title": "Find capo options",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
show_chord_sheet — Show chord sheet
Advertised by the server during the last successful anonymous check.
Advertised read-only

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 monospaced PDF. Chord names only; does not process audio, tablature or staff notation. Key estimates can be wrong for songs that change key.

show_chord_sheet input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "sheet"
  ],
  "properties": {
    "sheet": {
      "type": "string",
      "description": "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": {
      "type": "string",
      "maxLength": 80,
      "description": "PDF title up to 80 characters; for example Lantern Garden."
    },
    "from_key": {
      "type": "string",
      "maxLength": 24,
      "description": "Origin key; for example C or Am. Required with to_key; otherwise the header or first and last chords give a key estimate."
    },
    "spelling": {
      "enum": [
        "auto",
        "sharps",
        "flats"
      ],
      "type": "string",
      "description": "Chord spelling; for example auto follows the target key, while sharps forces F# instead of Gb for consistent round trips."
    }
  }
}
show_chord_sheet output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "kind",
    "from_key",
    "to_key",
    "mode",
    "key_estimated",
    "semitones",
    "chord_count",
    "unique_chord_count",
    "lyric_lines",
    "chords_used",
    "capo",
    "gaps",
    "in_key",
    "notes",
    "downloads"
  ],
  "properties": {
    "capo": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "fret",
            "shape_key",
            "sounding_key"
          ],
          "properties": {
            "fret": {
              "type": "number"
            },
            "shape_key": {
              "type": "string"
            },
            "sounding_key": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "gaps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "kind": {
      "type": "string",
      "const": "transposed_sheet"
    },
    "mode": {
      "enum": [
        "major",
        "minor"
      ],
      "type": "string"
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "in_key": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "to_key": {
      "type": "string"
    },
    "from_key": {
      "type": "string"
    },
    "downloads": {
      "type": "object",
      "properties": {
        "pdf": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "semitones": {
      "type": "number"
    },
    "chord_count": {
      "type": "number"
    },
    "chords_used": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "original",
          "transposed"
        ],
        "properties": {
          "original": {
            "type": "string"
          },
          "transposed": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "lyric_lines": {
      "type": "number"
    },
    "key_estimated": {
      "type": "boolean"
    },
    "unique_chord_count": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
show_chord_sheet annotations
{
  "title": "Show chord sheet",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

chord-transposer-widget — Keyshift Chord Transposer view

Advertised by the server during the last successful anonymous check.

Interactive view for Keyshift Chord Transposer.

chord-transposer-widget URI
ui://widget/chord-transposer-v3-2.0.1-ba02838c5dd2312e74e4c30111ca18a2432b39c612d749da231a93c9efad9220.html

MIME type: text/html;profile=mcp-app

chord-transposer-widget-legacy — Keyshift Chord Transposer view (previous versions)

Advertised by the server during the last successful anonymous check.

chord-transposer-widget-legacy URI template
ui://widget/chord-transposer-{version}.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
886 ms
95th percentile latency
886 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 886 ms · metadata changed · 3 tool(s), 1 resource(s), 1 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http keyshift-chord-transposer-mcp https://chord-transposer.zovo.one/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add keyshift-chord-transposer-mcp --url https://chord-transposer.zovo.one/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable keyshift-chord-transposer-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "keyshift-chord-transposer-mcp": {
      "url": "https://chord-transposer.zovo.one/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "keyshift-chord-transposer-mcp": {
      "type": "streamableHttp",
      "url": "https://chord-transposer.zovo.one/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start keyshift-chord-transposer-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "keyshift-chord-transposer-mcp": {
      "type": "http",
      "url": "https://chord-transposer.zovo.one/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http keyshift-chord-transposer-mcp https://chord-transposer.zovo.one/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "keyshift-chord-transposer-mcp": {
      "url": "https://chord-transposer.zovo.one/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "keyshift-chord-transposer-mcp": {
      "serverUrl": "https://chord-transposer.zovo.one/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Keyshift Chord Transposer MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.