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 syncpip中所述修改相应参数的值
# リポジトリをクローン
git clone
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>:提高一个倍频程- `C
テンポとオクターブを指定した楽曲
T120O5L8CDEFGAB>C2
付点音符と休符を含む楽曲
O4L4C.D8EFG2R4AB>C
シャープ・フラットを含む楽曲
O4L4CC#DD-EFF#GG#AA-B>C
## 开発
### 运行测试
uvを使用する場合
uv run pytest
pipを使用する場合
pytest
### 安装开发依赖关系
pip install -e ".[dev]"
### 添加自定义工具
要添加自己的工具:
1. 创建工具函数
1. `register_tools`在函数中注册工具
1. 在主函数中调用注册函数
**例:**
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未找到设备
1. 在系统中MIDI确认设备是否已连接
1. `list_midi_devices`确定工具可用的设备
1. 虚拟MIDI考虑使用端口
### MML语法错误
1. `validate_mml`使用工具检查语法
1. 支持MML确认标记
1. 确认是否包含非法字符或符号
### 依赖关系错误
MIDI如果库依赖性导致错误:
**macOS:**
Core MIDIが必要
通常は自動的にインストールされています
**Linux:**
ALSA開発ライブラリが必要
sudo apt-get install libasound2-dev
または
sudo yum install alsa-lib-devel
**窗户:**
Windows MIDIが必要
通常は自動的に利用可能です
## 许可证
MIT许可证
## 貢献
欢迎普尔请求和伊修的报告。
## 相关链接
- [模型上下文协议(MCP)](https://modelcontextprotocol.io/)
- [Music21文档](https://web.mit.edu/music21/)
- [MIDO文件](https://mido.readthedocs.io/)