Music Clipboard AI MuseScore MCP 服务端
使用说明
- 项目简介
- 本仓库提供一个基于 MCP(Model Context Protocol)的后端服务,用于 MuseScore 的自动化操作和数据交互。通过 MCP 规范,客户端(如大型语言模型/控制系统)可以读取分数信息、调用 MuseScore 相关工具、以及渲染/获取 Prompt 模板等上下文能力。服务器端负责会话管理、能力声明,以及通过 JSON-RPC 与客户端进行通信。
- 主要功能点
- MCP 服务端核心实现:实现 MCP 格式的请求解析与响应,注册并暴露多类工具供客户端调用。
- MuseScore 集成工具:包含与 MuseScore 相关的工具集,如读取/编辑分数、导航光标、音符与小节操作、导出 MIDI、导出分数等。
- 客户端适配与扩展:通过定义和注册工具模块(connections, navigation, notes_measures, staff_instruments, time_tempo, sequences, shell)的方式,方便将来扩展更多功能。
- 简易客户端耦合与运行:服务器端通过 MuseScore WebSocket 客户端与 MuseScore 的通信接口,执行具体指令并返回结果。
- 日志与错误处理:提供日志输出,便于调试 MCP 请求与 MuseScore 交互过程中的错误。
- 安装步骤
- 下载本仓库,确保本地 Python 环境已安装。
- 安装依赖(示例性步骤):在仓库根目录执行常规 Python 虚拟环境与依赖安装,确保 MuseScore 相关依赖可用。
- 启动 MCP 服务器(后续客户端连接的服务端):
- 使用前请确认 Python 解析路径可以找到仓库中 src 等模块。推荐方式为直接按仓库结构执行模块: python3 -m music_clipboard.integrations.musescore_mcp.mcp_server
- 服务器启动后,它会在后台监听 MCP 客户端的 JSON-RPC 调用,并通过 MuseScore 客户端与本地 MuseScore 实例交互。
- MCP 客户端配置与连接:按照下方的“服务器配置”示例,在你的 MCP 客户端中配置服务器信息(不需要在服务器端配置文件中填写客户端信息)。
- 服务器配置(MCP 客户端连接使用的配置示例) 下面的 JSON 配置用于 MCP 客户端连接到该 MuseScore MCP 服务端。请将 path 和环境信息替换为你的实际部署路径与环境。 { "server_name": "MuseScore MCP Server", "command": "python3", "args": ["-m", "music_clipboard.integrations.musescore_mcp.mcp_server"], "working_directory": "<你的仓库根目录>", "notes": "该服务器在启动时会自注册可用的 MCP 工具集,客户端通过 MCP 协议向服务器发起请求,服务器返回结果。确保 Python 解释器能够导入仓库中的模块结构,且 MuseScore 相关依赖可用。" }
- 基本使用方法
- 启动服务器后,MCP 客户端就可以向服务器发送读取资源、执行工具、获取 Prompt 等请求。
- 客户端可以通过指定的工具集合执行对 MuseScore 的操作,如读取分数信息、修改音符、导出 MIDI、导航光标等。
- 服务器会将请求转换为 MuseScore 客户端的操作并返回执行结果(包括状态、数据或错误信息)。
- 如遇到 MuseScore 相关依赖或网络/WebSocket 连接问题,请检查 MuseScore 实例是否正确运行、端口是否开放,以及本地环境的 Python 包依赖是否齐全。