使用说明
MML MCP服务器
MML(Music Macro Language)处理Model Context Protocol (MCP)服务器。
概要
此项目包括:MML文本分析MIDI转换为文件MIDI提供设备上的演奏功能MCP服务器。LLM中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。
机能
MCP服务器基本功能
- JSON-RPC over stdio基本MCP服务器
- MCP符合标准协议API端点
- 错误处理和记录
MML处理机能
- MML从…开始MIDI转换: MML打开文本MIDI转换为文件并保存
- MIDI演奏: MIDI打开文件MIDI用设备演奏
- MML演奏: MML直接演奏文本(内部MIDI转换)
- MML构文検证: MML检查语法准确性
- MIDI设备列表:可用MIDI显示设备
所需环境
- Python 3.10以上
- pip 在工作空间的边缘uv
- MIDI设备(使用演奏功能时)
安装
安装相关性
uv(建议)
# uvがインストールされていない場合は先にインストール
# curl -LsSf https://astral.sh/uv/install.sh | sh
# 依存関係のインストール
uv sync
pip中所述修改相应参数的值
# リポジトリをクローン
git clone <repository-url>
cd mcp-mml-server
# 依存関係をインストール
pip install -e .
使用方法
MCP启动服务器
uv(建议)
uv run python -m src.main
选项:
uv run python -m src.main --name "mml-server" --version "1.0.0" --description "MML Processing Server"
正常Python中所述修改相应参数的值
python -m src.main
选项:
python -m src.main --name "mml-server" --version "1.0.0" --description "MML Processing Server"
Cline/Cursor中的设置
Cline/Cursor等的AI在动态输入提示中单击MCP单击功能区上mcp_settings.json在文件中添加以下设置:
"mml-mcp-server": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/mcp-mml-server",
"python",
"-m",
"src.main"
],
"env": {},
"disabled": false,
"alwaysAllow": []
}
/path/to/mcp-mml-server将替换为此存储库的安装目录。
MML工具
1. MML从…开始MIDI转换为mml_to_midi)
MML打开文本MIDI来修改标记元素的显示属性。
参数:
mml_text(string): 转换MML文本output_path(string): 输出MIDI文件路径
例:
{
"mml_text": "O4L4CDEFGAB",
"output_path": "output.mid"
}
2. MIDI演奏 (play_midi)
MIDI打开文件MIDI用设备演奏。
参数:
midi_path(string): 演奏MIDI文件路径device_name(string, optional): 使用,使用MIDI设备名称
例:
{
"midi_path": "music.mid",
"device_name": "MIDI Device"
}
3. MML演奏 (play_mml)
MML直接演奏课文。
参数:
mml_text(string): 演奏MML文本device_name(string, optional): 使用,使用MIDI设备名称
例:
{
"mml_text": "O4L4CDEFGAB>C",
"device_name": "MIDI Device"
}
4. MML构文検证(validate_mml)
MML检查语法的准确性。
参数:
mml_text(string): 验证MML文本
例:
{
"mml_text": "O4L4CDEFGAB"
}
5. MIDI设备列表(list_midi_devices)
可用的MIDI获取设备列表。
参数: 的下界
MML记法
此服务器支持MML符号:
基本音符
C,D,E,F,G,A,B:德雷米法索拉西C#,D#,F#,G#,A#:锐化C-,D-,E-,G-,A-,B-:平面
音长指定
C4:4分音符C8:8分音符C2:2分音符C1:全音符C4.:附点4分音符的D
休符
R4: 4分休符R8: 8分休符
倍频程
O4:将倍频程设置为4>:提高一个倍频程<:降低一个倍频程
其他
L4:将默认音长设置为4分音符T120:速度为120BPM设置为
MML示例
# 基本的なスケール
O4L4CDEFGAB>C
# テンポとオクターブを指定した楽曲
T120O5L8CDEFGAB>C2
# 付点音符と休符を含む楽曲
O4L4C.D8EFG2R4AB>C
# シャープ・フラットを含む楽曲
O4L4CC#DD-EFF#GG#AA-B>C
开発
运行测试
# uvを使用する場合
uv run pytest
# pipを使用する場合
pytest
安装开发依赖关系
pip install -e ".[dev]"
添加自定义工具
要添加自己的工具:
- 创建工具函数
register_tools在函数中注册工具- 在主函数中调用注册函数
例:
def my_custom_tool(params):
# ツールの処理
return {
"content": [
{
"type": "text",
"text": "結果",
}
]
}
def register_my_tools(server):
server.register_tool(
name="my_tool",
description="My custom tool",
input_schema={
"type": "object",
"properties": {
"param1": {
"type": "string",
"description": "Parameter 1",
},
},
"required": ["param1"],
},
handler=my_custom_tool,
)
故障排除
MIDI未找到设备
- 在系统中MIDI确认设备是否已连接
list_midi_devices确定工具可用的设备- 虚拟MIDI考虑使用端口
MML语法错误
validate_mml使用工具检查语法- 支持MML确认标记
- 确认是否包含非法字符或符号
依赖关系错误
MIDI如果库依赖性导致错误:
macOS:
# Core MIDIが必要
# 通常は自動的にインストールされています
Linux:
# ALSA開発ライブラリが必要
sudo apt-get install libasound2-dev
# または
sudo yum install alsa-lib-devel
窗户:
# Windows MIDIが必要
# 通常は自動的に利用可能です
许可证
MIT许可证
貢献
欢迎普尔请求和伊修的报告。