Skip to main content
Glama
songsterr-mcp

songsterr-mcp

by jaegerpicker

songsterr-mcp

MCP server for fetching Songsterr tabs and transposing them between tunings and string counts — e.g. taking a song tabbed for 6-string C standard and re-fingering it, pitch-perfect, for a 7-string in B standard.

Status: working, pending live API verification. The transposition engine and the full Guitar Pro pipeline (parse → re-finger → ASCII / .gp5 export) are implemented and covered by tests, including an end-to-end GP5 round-trip. The Songsterr client uses a mix of documented-legacy and unofficial endpoints that still need verification against the live site (see below).

Tools

Tool

Purpose

songsterr_search_songs

Find songs by title/artist pattern

songsterr_get_tab

Download a song's Guitar Pro source (cached), list tracks + tunings

songsterr_transpose

Re-finger a track onto a new tuning/string count; ASCII or .gp5 out

songsterr_list_tunings

Enumerate tuning presets

Typical flow: search → get_tab (pick a track) → transpose with target_tuning="b_standard_7" → read the ASCII or open the written .gp5. semitone_shift changes actual key; 0 preserves the original pitch across the tuning change.

Related MCP server: musicbrainz-mcp-server

Install & run

pip install -e .
python -m songsterr_mcp.server        # stdio transport

Claude Desktop / Claude Code config:

{
  "mcpServers": {
    "songsterr": { "command": "python", "args": ["-m", "songsterr_mcp.server"] }
  }
}

Tests: pytest tests/

Architecture

src/songsterr_mcp/
├── server.py      # FastMCP tool definitions (thin; no business logic)
├── client.py      # Songsterr HTTP client + on-disk cache (~/.cache/songsterr_mcp)
├── gp_io.py       # pyguitarpro <-> engine model adapter; ALL string-number
│                  #   flipping (GP is high->low, engine is low->high) lives here
├── refinger.py    # the engine: pitch decode -> candidates -> beam search
├── tuning.py      # presets, note<->MIDI, tuning spec parsing
└── ascii_tab.py   # monospace tab rendering

The engine never touches Guitar Pro objects or HTTP — it operates on a neutral Beat/Note model, so it's independently testable and reusable (e.g. against alphaTex or MusicXML sources later). See docs/ALGORITHM.md for the full re-fingering algorithm, cost model, and known limitations.

Songsterr API caveats

  • Legacy REST endpoints (/a/ra/songs.json?pattern=) are publicly documented, keyless, and stable.

  • The modern endpoints (/api/songs, /api/meta/{id}/revisions, and the revision source URL pointing at the underlying Guitar Pro file) are unofficial — they power Songsterr's own player and can change without notice. client.py falls back to legacy where possible and fails with inspectable errors elsewhere.

  • Songsterr permits non-commercial API use; commercial use requires their approval. This project caches downloads and sends an identifying User-Agent — keep it that way.

License

GPL-3.0 — free software in the OSI/FSF sense, commercial use included.

Note the code license and the API terms are separate things: this code is GPL, but Songsterr's API itself permits only non-commercial use without their approval (see caveats above). Likewise, tab content fetched through this tool is copyrighted musical composition belonging to its rights holders; this tool is for personal practice use.

Available Tools

4 tools
songsterr_get_tabA
Read-only

Download a song's Guitar Pro source file (cached locally).

Returns JSON: {file, tracks: [{index, name, strings, tuning}]}. Pick a track index for songsterr_transpose.

Inputs: params (required). Returns: result

songsterr_list_tuningsA
Read-onlyIdempotent

List available tuning presets and their notes (low->high).

Inputs: no named parameters. Returns: result

songsterr_search_songsA
Read-only

Search Songsterr for songs by title/artist pattern.

Returns JSON: [{id, title, artist}] — pass id to songsterr_get_tab.

Inputs: params (required). Returns: result

songsterr_transposeA
Idempotent

Re-finger a track onto a new tuning/string count, preserving pitch.

Set semitone_shift to also change key. Returns ASCII tab, or the path of a written .gp5, plus any playability warnings.

Inputs: params (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool serves a distinct purpose: searching songs, retrieving tabs, listing tunings, and transposing. No functional overlap exists.

    Naming Consistency4/5

    All tools use the 'songsterr_' prefix with snake_case. Most follow verb_noun pattern, but 'transpose' lacks a noun, causing a minor inconsistency.

    Tool Count5/5

    Four tools appropriately cover the core tasks of a tablature service—searching, retrieving, transposing, and exploring tunings—without being too few or excessive.

    Completeness5/5

    The tools form a complete workflow: search for songs, retrieve a tab, optionally list tunings, and transpose. No obvious missing operations for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables users to search for guitar, bass, and drum tabs on Songsterr by song title, artist, or specific tab metadata. It retrieves song details and track lists, providing direct links to view the full tablature on the Songsterr website.
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Search artists, releases, recordings, works, and labels; traverse relationships; resolve ISRC/ISWC/barcode; fetch cover art via MCP. STDIO or Streamable HTTP.
      229 npm
      2
      Apache 2.0
    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      MCP server for vibe coding with music, enabling format conversion (LilyPond, MusicXML, MIDI, ABC, etc.), audio-to-sheet transcription, and transposition with robust fallback outputs.
      1
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Lets Claude create guitar and bass tablature as TuxGuitar-compatible .gp5 files, including tracks, tuning, measures, notes, and effects such as palm mute, tremolo picking, bends, and harmonics.
      MIT