songsterr-mcp
Supports reading and writing Guitar Pro (.gp5) files, enabling fetching, transposing, and exporting guitar tablatures in Guitar Pro format.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@songsterr-mcp search for 'Nothing Else Matters' and transpose to open G tuning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Find songs by title/artist pattern |
| Download a song's Guitar Pro source (cached), list tracks + tunings |
| Re-finger a track onto a new tuning/string count; ASCII or .gp5 out |
| 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 transportClaude 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 renderingThe 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 revisionsourceURL pointing at the underlying Guitar Pro file) are unofficial — they power Songsterr's own player and can change without notice.client.pyfalls 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 toolssongsterr_get_tabARead-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_tuningsARead-onlyIdempotent
List available tuning presets and their notes (low->high).
Inputs: no named parameters. Returns: result
songsterr_search_songsARead-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_transposeAIdempotent
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
Scored across 4 tools
Each tool serves a distinct purpose: searching songs, retrieving tabs, listing tunings, and transposing. No functional overlap exists.
All tools use the 'songsterr_' prefix with snake_case. Most follow verb_noun pattern, but 'transpose' lacks a noun, causing a minor inconsistency.
Four tools appropriately cover the core tasks of a tablature service—searching, retrieving, transposing, and exploring tunings—without being too few or excessive.
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
Related MCP Connectors
Write, edit, transpose and play guitar tabs and staff notation in Cesure.
Read-only music guides, chord transposition, piano chord spelling and guitar-tab pitch mapping.
Transpose chords, spell piano chords, turn guitar tab into piano notes and find music guides.
Guitar chords from frets, chord shapes, transposing, capo, scales, song keys and practice plans.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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.-
- AlicenseNot gradedqualityBmaintenanceSearch artists, releases, recordings, works, and labels; traverse relationships; resolve ISRC/ISWC/barcode; fetch cover art via MCP. STDIO or Streamable HTTP.229 npm2Apache 2.0
- -licenseNot gradedqualityNot gradedmaintenanceMCP 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-
- AlicenseNot gradedqualityBmaintenanceLets 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