Guitar Pro Mcp について
Guitar Pro ファイルを開く、編集する、保存するためのツールを提供する MCP サーバーです。LLM を使ってギタースコアを編集・作曲したいミュージシャンや開発者に向けたものです。
主な機能
- 01Guitar Pro ファイルの読み込みと保存
- 02曲情報とノートの取得
- 03トラック、小節、ノートの追加
- 04テンポ、調号、拍子の設定
- 05MIDI と JSON 形式への書き出し
活用シーン
- 01LLM によるギタータブの編集や作曲
- 02Guitar Pro 譜面の MIDI ファイルへの書き出し
- 03JSON 形式での曲データの修正と再インポート
MCP 対応
MCP サーバーとして、Guitar Pro ファイルの読み書きと編集操作を MCP クライアント向けのツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Guitar Pro MCP サーバー
Guitar Pro ファイルを操作するための Message Control Protocol (MCP) サーバーです。このサーバーは、標準化されたインターフェースを通じて Guitar Pro ファイルを開く、変更する、保存するためのツール群を提供します。
注意: 現在、テスト済みなのは Guitar Pro 5 (.gp5) 形式のみです。その他の形式 (.gp3、.gp4) のサポートは限定的であるか、未テストの可能性があります。
機能
- Guitar Pro ファイルの読み込みと保存
- 曲の情報 (タイトル、アーティスト、トラックなど) の取得
- トラックからのノートの抽出
- 新しい曲の作成とトラックの追加
- トラックプロパティの操作
- MIDI 形式へのエクスポート
- JSON 形式へのエクスポート/JSON 形式からのインポート
要件
- Python 3.10 以上
- PyGuitarPro ライブラリ
- MCP サーバーフレームワーク
- MIDI サポート (mido ライブラリ)
- uv (パッケージ管理に推奨)
インストール
uv を使用する場合 (推奨)
- まだインストールしていない場合は uv をインストールします:
pip install uv
- 仮想環境を作成して有効化します:
# Create virtual environment
uv venv
# Activate virtual environment
# On Unix/macOS:
source .venv/bin/activate
# On Windows(cmd):
call .venv\Scripts\activate.bat
- パッケージをインストールします:
uv pip install .
サーバーの実行
uv を使用してサーバーを直接実行できます:
uv --directory <project_path> 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 を使用する場合
pip install guitar-pro-mcp
ソースから
- リポジトリをクローンします:
git clone https://github.com/yourusername/guitar-pro-mcp.git
cd guitar-pro-mcp
- パッケージをインストールします:
# Install in development mode with all dependencies
pip install -e ".[dev]"
# Or install without development dependencies
pip install -e .
- MCP クライアントを使用してサーバーに接続します。
使用方法 (直接実行)
- MCP サーバーを起動します:
python src/run_mcp_server.py
- MCP クライアントを使用してサーバーに接続します。
利用可能な MCP ツール
ファイル操作
-
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、denominator - 戻り値: 成功/エラーメッセージ
- パラメータ:
-
set_gp_key_signature: 小節の調号を設定します- パラメータ:
measure_index、key - 戻り値: 成功/エラーメッセージ
- パラメータ:
-
set_gp_tempo: 小節のテンポを設定します- パラメータ:
measure_index、tempo - 戻り値: 成功/エラーメッセージ
- パラメータ:
ノート操作
add_gp_note: 特定のトラックと小節にノートを追加します- パラメータ:
track_index: トラックのインデックスmeasure_index: 小節のインデックスstring: 弦番号fret: フレット番号duration: ノートの長さ (デフォルト: 4)voice_index: ボイスインデックス (デフォルト: 0)beat_index: ビートインデックス (デフォルト: 0)
- 戻り値: 成功/エラーメッセージ
- パラメータ:
エクスポート/インポート操作
-
export_to_midi: 現在の曲を MIDI 形式でエクスポートします- パラメータ:
file_path - 戻り値: 成功/エラーメッセージ
- パラメータ:
-
export_to_json: 現在の曲を JSON 形式でエクスポートします- パラメータ:
file_path - 戻り値: 成功/エラーメッセージ
- パラメータ:
-
import_from_json: JSON 形式から曲をインポートします- パラメータ:
file_path - 戻り値: 成功/エラーメッセージ
- パラメータ:
タブ操作
get_track_tab: トラックの ASCII タブ表現を生成します- パラメータ:
track_index - 戻り値: ASCII タブ表現(文字列)
- パラメータ:
曲構造の管理
-
add_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: 小節にコーダマーカーを追加します- パラメータ:
measure_index - 戻り値: 成功/エラーメッセージ
- パラメータ:
-
add_double_bar: 小節に複縦線を追加します- パラメータ:
measure_index - 戻り値: 成功/エラーメッセージ
- パラメータ:
-
get_song_structure: 曲の完全な構造を取得します- 戻り値: 以下を含む辞書:
sections: すべてのセクションのリストrepeat_groups: すべてのリピートグループのリストmarkers: すべてのマーカー(コーダ、複縦線など)のリスト
- 戻り値: 以下を含む辞書:
メタデータと歌詞
-
set_lyrics: 現在の曲の歌詞を設定します- パラメータ:
lyrics(歌詞を含む文字列) - 戻り値: 成功/エラーメッセージ
- パラメータ:
-
get_lyrics: 現在の曲の歌詞を取得します- 戻り値: 歌詞(文字列)
-
set_page_setup: 現在の曲のページ設定を設定します- パラメータ:
page_setup(ページ設定プロパティを含む辞書) - プロパティには以下が含まれます: pageSize、pageMargin、scoreSizeProportion、headerAndFooter、title、subtitle、artist、album、words、music、wordsAndMusic、copyright、pageNumber
- 戻り値: 成功/エラーメッセージ
- パラメータ:
-
get_page_setup: 現在の曲のページ設定を取得します- 戻り値: ページ設定プロパティを含む辞書
-
set_advanced_metadata: 現在の曲の詳細メタデータを設定します- パラメータ:
metadata(メタデータプロパティを含む辞書) - プロパティには以下が含まれます: subtitle、words、music、tab、instructions、notice
- 戻り値: 成功/エラーメッセージ
- パラメータ:
-
get_advanced_metadata: 現在の曲の詳細メタデータを取得します- 戻り値: メタデータプロパティを含む辞書
コード操作
-
add_chord: 特定の拍にコードを追加します- パラメータ:
track_index: トラックのインデックスmeasure_index: 小節のインデックスbeat_index: 拍のインデックスchord_data: コードプロパティを含む辞書
- コードプロパティには以下が含まれます: name、root、type、extension、bass、tonality、fifth、ninth、eleventh、firstFret、strings、barres、fingerings
- 戻り値: 成功/エラーメッセージ
- パラメータ:
-
get_chord: 特定の拍からコードを取得します- パラメータ:
track_index: トラックのインデックスmeasure_index: 小節のインデックスbeat_index: 拍のインデックス
- 戻り値: コードプロパティを含む辞書
- パラメータ:
Claude の設定(uv run を使用):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<path to folder>",
"run",
"-m",
"src.run_mcp_server"
]
}
}
}
Claude の設定(直接使用):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "python",
"args": [
"<path to folder>\\src\\run_mcp_server.py"
]
}
}
}
Claude の設定(uv run を使用):
{
"mcpServers": {
"guitar-pro-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<path to folder>",
"run",
"-m",
"src.run_mcp_server"
]
}
}
}
実装の詳細
実装では、PyGuitarPro ライブラリを使用して Guitar Pro ファイルを解析および操作します。MCP サーバーは、PyGuitarPro ライブラリの機能にアクセスするためのシンプルな API を提供します。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。