这是一个用于操作Guitar Pro文件的消息控制协议(MCP)服务器。该服务器提供了一组工具,通过标准化接口来打开、修改和保存Guitar Pro文件。
注意:目前仅测试了Guitar Pro 5(.gp5)格式。对其他格式(.gp3, .gp4)的支持可能有限或未经测试。
pip install uv
# 创建虚拟环境
uv venv
# 激活虚拟环境
# 在Unix/macOS上:
source .venv/bin/activate
# 在Windows(cmd)上:
call .venv\Scripts\activate.bat
uv pip install .
你可以使用uv直接运行服务器:
uv --directory <项目路径> run -m src.run_mcp_server
例如,在Windows上:
uv --directory C:\path\to\guitar_pro_mcp2 run -m src.run_mcp_server
或者在安装后直接使用Python模块:
python -m src.run_mcp_server
pip install guitar-pro-mcp
git clone https://github.com/yourusername/guitar-pro-mcp.git
cd guitar-pro-mcp
# 开发模式安装所有依赖项
pip install -e ".[dev]"
# 或者不带开发依赖项安装
pip install -e .
python src/run_mcp_server.py
load_guitar_pro: 加载一个Guitar Pro文件
file_path(指向.gp5文件的路径)save_guitar_pro: 将当前歌曲保存为Guitar Pro文件
file_path(保存文件的路径)get_song_info: 获取当前加载歌曲的基本信息
get_song_statistics: 获取当前歌曲的详细统计信息
get_gp_tracks: 获取当前Guitar Pro歌曲中的轨道列表
get_track_notes: 获取特定轨道的所有音符
track_index(轨道索引)add_gp_track: 向Guitar Pro歌曲添加新的轨道
name(轨道名称)set_track_properties: 设置轨道属性
track_index: 轨道索引name: 新轨道名称(可选)instrument: 乐器ID(可选)volume: 音量级别(可选)pan: 声像位置(可选)add_gp_measure: 向Guitar Pro歌曲添加新的小节
set_gp_time_signature: 设置小节的时间签名
measure_index, numerator, denominatorset_gp_key_signature: 设置小节的关键签名
、参数:measure_index, key
set_gp_tempo: 设置小节的速度
measure_index, tempoadd_gp_note: 向特定轨道和小节添加音符
track_index: 轨道索引measure_index: 小节索引string: 弦号fret: 品位号duration: 音符时长(默认:4)voice_index: 声部索引(默认:0)beat_index: 拍子索引(默认:0)export_to_midi: 将当前歌曲导出为MIDI格式
file_pathexport_to_json: 将当前歌曲导出为JSON格式
file_pathimport_from_json: 从JSON格式导入歌曲
file_pathget_track_tab: 生成轨道的ASCII Tab表示
track_indexadd_repeat_group: 向歌曲添加重复组
start_measure: 起始小节索引end_measure: 结束小节索引repeat_type: 重复类型("normal", "alternate", "repeat_1st", "repeat_2nd")repeat_count: 重复次数(默认:2)endings: 结尾数字列表(可选)get_repeat_groups: 获取歌曲中的所有重复组
add_section: 向歌曲添加部分
start_measure: 起始小节索引end_measure: 结束小节索引name: 部分名称text: 可选部分文本color: 可选部分颜色作为RGB元组get_sections: 获取歌曲中的所有部分
add_coda: 向小节添加coda标记
measure_indexadd_double_bar: 向小节添加双竖线
measure_indexget_song_structure: 获取完整的歌曲结构
sections: 所有部分的列表repeat_groups: 所有重复组的列表markers: 所有标记(coda、双竖线等)的列表set_lyrics: 设置当前歌曲的歌词
lyrics(包含歌词的字符串)get_lyrics: 获取当前歌曲的歌词
set_page_setup: 设置当前歌曲的页面设置
page_setup(包含页面设置属性的字典)get_page_setup: 获取当前歌曲的页面设置
set_advanced_metadata: 设置当前歌曲的高级元数据
metadata(包含元数据属性的字典)get_advanced_metadata: 获取当前歌曲的高级元数据
add_chord: 向特定拍子添加和弦
track_index: 轨道索引measure_index: 小节索引beat_index: 拍子索引chord_data: 包含和弦属性的字典get_chord: 获取特定拍子的和弦
track_index: 轨道索引measure_index: 小节索引beat_index: 拍子索引Claude配置(使用uv run):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<文件夹路径>",
"run",
"-m",
"src.run_mcp_server"
]
}
}
}
Claude配置(直接使用):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "python",
"args": [
"<文件夹路径>\\src\\run_mcp_server.py"
]
}
}
}
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<文件夹路径>",
"run",
"-m",
"src.run_mcp_server"
]
}
}
}
实现使用PyGuitarPro库解析和操作Guitar Pro文件。MCP服务器提供了一个简单的API来访问PyGuitarPro库的功能。
本项目根据MIT许可证授权。