MuseScore MCP Server
使用说明内容(Markdown格式)
-
项目简介
- 该仓库实现了一个基于 MCP(模型上下文协议)的 MuseScore 整合后端服务器。它通过一个 FMI(MuseScore)WebSocket 插件与 MuseScore 通信,向 LLM 客户端暴露一组控制乐谱的工具函数,支持导航、笔记与小节操作、歌词、时间签名等,并可执行批量序列操作。
-
主要功能点
- 将 MuseScore 的常用操作封装为 MCP 工具,涵盖导航、笔记与小节、歌词、乐谱信息、时间签名等。
- 使用 WebSocket 客户端与 MuseScore 的插件接口进行命令传输和响应获取。
- 通过一个可扩展的工具集(connection/navigation/notes_measures/sequences/staff_instruments/time_tempo)对外提供统一调用入口。
- 支持批量序列操作,方便将多步命令打包执行。
- 服务器端使用 FastMCP 处理 MCP 请求、路由工具调用并返回 MCP 客户端的响应。
-
安装步骤
- 安装 MuseScore 3.x/4.x 与 Python 3.8+。
- 安装依赖:fastmcp、websockets(通过 pip install fastmcp websockets)。
- 将 MuseScore 插件放置在 MuseScore 的插件目录并在 MuseScore 中启用 MuseScore API Server 插件。
- 在项目根目录创建并激活 Python 虚拟环境,然后运行服务器入口 server.py。
- 启动顺序建议:先启动 MuseScore 并打开乐谱,再启动 MuseScore 的 API Server 插件,最后启动 MCP 服务端。
-
服务器配置 说明 MCP 客户端需要知道如何启动并连接到此服务器。配置信息以 JSON 格式给出,包含服务器名称、启动命令及参数。示例(请用实际路径替换占位符,MCP 客户端不需要以下代码,仅用于理解配置结构): { "server_name": "MuseScoreMCP", "command": "/path/to/your/venv/bin/python", "args": [ "/path/to/your/project/server.py" ] }
注释:
- server_name:服务器在 MCP 客户端侧的标识名称,便于多服务器场景下的区分。
- command:启动服务器所使用的可执行程序路径,通常是 Python 解释器所在位置(虚拟环境中的 python)。
- args:启动服务器的参数列表,通常包含入口脚本的路径,如 server.py。
- 运行前请确保 MuseScore 已经通过插件启动并监听相应的 WebSocket 端口(默认端口 8765)。
- MCP 客户端无需关心具体实现细节,只需要知道如何启动并连接到此服务器即可。
-
基本使用方法
- 启动后,MCP 客户端通过标准 MCP JSON-RPC 请求调用公开的工具,例如导航、添加音符、设置时间签名等。
- 常用示例(由客户端调用工具名实现)包括:get_cursor_info、add_note、add_rest、set_time_signature、go_to_measure、add_lyrics 等。
- 如需执行复合操作,可使用 processSequence 将一组命令一次性发送给服务器,由 MuseScore 客户端逐步执行并返回结果。