guitar-pro-mcp
Provides tools for manipulating Guitar Pro files, including loading, saving, editing tracks, measures, notes, chords, metadata, and exporting to MIDI and JSON formats.
Click on "Install 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., "@guitar-pro-mcpload song.gp5 and list all tracks"
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.
Guitar Pro MCP Server
A Message Control Protocol (MCP) server for manipulating Guitar Pro files. This server provides a set of tools for opening, modifying, and saving Guitar Pro files through a standardized interface.
Note: Currently, only Guitar Pro 5 (.gp5) format has been tested. Support for other formats (.gp3, .gp4) may be limited or untested.
Features
Load and save Guitar Pro files
Get song information (title, artist, tracks, etc.)
Extract notes from tracks
Create new songs and add tracks
Manipulate track properties
Export to MIDI format
Export/Import to/from JSON format
Requirements
Python 3.10 or higher
PyGuitarPro library
MCP server framework
MIDI support (mido library)
uv (recommended for package management)
Installation
Using uv (Recommended)
Install uv if you haven't already:
pip install uvCreate and activate a virtual environment:
# Create virtual environment
uv venv
# Activate virtual environment
# On Unix/macOS:
source .venv/bin/activate
# On Windows(cmd):
call .venv\Scripts\activate.batInstall the package:
uv pip install .Running the Server
You can run the server using uv directly:
uv --directory <project_path> run -m src.run_mcp_serverFor example, on Windows:
uv --directory C:\path\to\guitar_pro_mcp2 run -m src.run_mcp_serverOr using the Python module directly after installation:
python -m src.run_mcp_serverUsing pip
pip install guitar-pro-mcpFrom source
Clone the repository:
git clone https://github.com/yourusername/guitar-pro-mcp.git
cd guitar-pro-mcpInstall the package:
# Install in development mode with all dependencies
pip install -e ".[dev]"
# Or install without development dependencies
pip install -e .Connect to the server using an MCP client.
Usage(Direct)
Start the MCP server:
python src/run_mcp_server.pyConnect to the server using an MCP client.
Available MCP Tools
File Operations
load_guitar_pro: Load a Guitar Pro fileParameters:
file_path(path to the .gp5 file)Returns: Success/error message
save_guitar_pro: Save the current song to a Guitar Pro fileParameters:
file_path(path to save the file)Returns: Success/error message
Song Information
get_song_info: Get basic information about the currently loaded songReturns: Dictionary containing title, artist, album, copyright, subtitle, notice, and track count
get_song_statistics: Get detailed statistics about the current songReturns: Dictionary containing track counts, measure counts, note counts, and detailed track information
Track Operations
get_gp_tracks: Get a list of tracks in the current Guitar Pro songReturns: List of tracks with their name, index, strings, and instrument
get_track_notes: Get all notes from a specific trackParameters:
track_index(index of the track)Returns: List of notes with their properties (measure, beat, string, value, etc.)
add_gp_track: Add a new track to the Guitar Pro songParameters:
name(name of the track)Returns: Success message and track index
set_track_properties: Set properties of a trackParameters:
track_index: Index of the trackname: New track name (optional)instrument: Instrument ID (optional)volume: Volume level (optional)pan: Pan position (optional)
Returns: Success/error message
Measure Operations
add_gp_measure: Add a new measure to the Guitar Pro songReturns: Success message and measure index
set_gp_time_signature: Set the time signature for a measureParameters:
measure_index,numerator,denominatorReturns: Success/error message
set_gp_key_signature: Set the key signature for a measureParameters:
measure_index,keyReturns: Success/error message
set_gp_tempo: Set the tempo for a measureParameters:
measure_index,tempoReturns: Success/error message
Note Operations
add_gp_note: Add a note to a specific track and measureParameters:
track_index: Index of the trackmeasure_index: Index of the measurestring: String numberfret: Fret numberduration: Note duration (default: 4)voice_index: Voice index (default: 0)beat_index: Beat index (default: 0)
Returns: Success/error message
Export/Import Operations
export_to_midi: Export the current song to MIDI formatParameters:
file_pathReturns: Success/error message
export_to_json: Export the current song to JSON formatParameters:
file_pathReturns: Success/error message
import_from_json: Import a song from JSON formatParameters:
file_pathReturns: Success/error message
Tab Operations
get_track_tab: Generate ASCII tab representation of a trackParameters:
track_indexReturns: ASCII tab representation as string
Song Structure Management
add_repeat_group: Add a repeat group to the songParameters:
start_measure: Starting measure indexend_measure: Ending measure indexrepeat_type: Type of repeat ("normal", "alternate", "repeat_1st", "repeat_2nd")repeat_count: Number of times to repeat (default: 2)endings: List of ending numbers (optional)
Returns: Success/error message
get_repeat_groups: Get all repeat groups in the songReturns: List of repeat group objects with their properties
add_section: Add a section to the songParameters:
start_measure: Starting measure indexend_measure: Ending measure indexname: Section nametext: Optional section textcolor: Optional section color as RGB tuple
Returns: Success/error message
get_sections: Get all sections in the songReturns: List of section objects with their properties
add_coda: Add a coda marker to a measureParameters:
measure_indexReturns: Success/error message
add_double_bar: Add a double bar line to a measureParameters:
measure_indexReturns: Success/error message
get_song_structure: Get the complete song structureReturns: Dictionary containing:
sections: List of all sectionsrepeat_groups: List of all repeat groupsmarkers: List of all markers (codas, double bars, etc.)
Metadata and Lyrics
set_lyrics: Set the lyrics for the current songParameters:
lyrics(string containing the lyrics)Returns: Success/error message
get_lyrics: Get the lyrics of the current songReturns: The lyrics as a string
set_page_setup: Set the page setup for the current songParameters:
page_setup(dictionary containing page setup properties)Properties include: pageSize, pageMargin, scoreSizeProportion, headerAndFooter, title, subtitle, artist, album, words, music, wordsAndMusic, copyright, pageNumber
Returns: Success/error message
get_page_setup: Get the page setup of the current songReturns: Dictionary containing page setup properties
set_advanced_metadata: Set advanced metadata for the current songParameters:
metadata(dictionary containing metadata properties)Properties include: subtitle, words, music, tab, instructions, notice
Returns: Success/error message
get_advanced_metadata: Get advanced metadata of the current songReturns: Dictionary containing metadata properties
Chord Operations
add_chord: Add a chord to a specific beatParameters:
track_index: Index of the trackmeasure_index: Index of the measurebeat_index: Index of the beatchord_data: Dictionary containing chord properties
Chord properties include: name, root, type, extension, bass, tonality, fifth, ninth, eleventh, firstFret, strings, barres, fingerings
Returns: Success/error message
get_chord: Get the chord from a specific beatParameters:
track_index: Index of the trackmeasure_index: Index of the measurebeat_index: Index of the beat
Returns: Dictionary containing chord properties
Claude configuration (with uv run):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<path to folder>",
"run",
"-m",
"src.run_mcp_server"
]
}
}
}Claude configuration (direct usage):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "python",
"args": [
"<path to folder>\\src\\run_mcp_server.py"
]
}
}
}Claude configuration (with uv run):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<path to folder>",
"run",
"-m",
"src.run_mcp_server"
]
}
}
}Implementation Details
The implementation uses the PyGuitarPro library to parse and manipulate Guitar Pro files. The MCP server provides a simple API to access the functionality of the PyGuitarPro library.
License
This project is licensed under the MIT License.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wegitor/guitar-pro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server