关于 MusicXML Renderer
MusicXML Renderer 是面向乐谱阅读和打印的 MCP 服务,可将 MusicXML 渲染为多页 PDF,或单页 PNG、SVG。它使用 Verovio 进行排版和制谱,无需外部工具或图形界面。
主要功能
- 01将完整乐谱渲染为多页 PDF
- 02将单页渲染为 PNG 或 SVG
- 03按小节范围渲染
- 04支持文件路径或内嵌 MusicXML
- 05查询能力并检查运行状态
适用场景
- 01生成用于打印的乐谱 PDF
- 02导出乐谱页面为 PNG 或 SVG
- 03只渲染指定小节供查看
MCP 相关
作为 MCP 服务,它向客户端提供 PDF 和图像渲染、能力查询及健康检查工具。客户端可通过文件路径或内嵌内容提交 MusicXML,并指定输出格式与路径。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| musicxml | string | 是 | 作为字符串提供的 MusicXML 文档 |
| output_path | string | 否 | PDF 文件的写入路径(如未指定则自动生成) |
详细介绍
render-mcp
可将 MusicXML 乐谱渲染为 PDF 或 PNG 图像的 MCP 服务。
功能
接收 MusicXML 文档,并生成适合打印的 PDF 或适合屏幕显示的 PNG 图像。使用 Verovio 进行排版和制谱,无需外部工具或 GUI。
工具
| 工具 | 描述 |
|---|---|
render_to_pdf | 将完整乐谱渲染为多页 PDF 文件 |
render_to_image | 将单页渲染为 PNG 或 SVG |
list_capabilities | 返回服务元数据:后端版本、支持的格式和可用的渲染器 |
health_check | 检查所有运行时依赖项是否可用,以及服务是否已准备好渲染乐谱 |
安装
快速安装:运行 ./install.sh,一键完成设置;也可参阅 SETUP.md 中的非技术人员指南。预先配置好的客户端配置(Claude Desktop、Cursor、Windsurf、Continue、Zed)位于 examples/。如果遇到问题,请查看 TROUBLESHOOTING.md。
手动设置:
cd render-mcp
uv sync
PNG 输出需要 libcairo:
# Ubuntu / Debian (usually pre-installed on desktop systems)
sudo apt install libcairo2
运行
uv run render-mcp
无需设置环境变量。
使用示例
// Render full score to PDF
{
"tool": "render_to_pdf",
"arguments": {
"musicxml_path": "/path/to/score.mxl",
"output_path": "/tmp/score.pdf"
}
}
// Render page 1 to PNG at 150 DPI
{
"tool": "render_to_image",
"arguments": {
"musicxml_path": "/path/to/score.mxl",
"output_path": "/tmp/page1.png",
"page": 1,
"dpi": 150
}
}
// Render only bars 17–24 (printed measure numbers, inclusive) to PDF
{
"tool": "render_to_pdf",
"arguments": {
"musicxml_path": "/path/to/score.mxl",
"measures": [17, 24]
}
}
DPI 范围:72–600。默认值:150。页码从 1 开始。
measures: [start, end](可选,两个工具均支持)仅渲染指定的印刷小节;弱起小节的编号为 0。
截取的乐谱会保留 start 处生效的调号、拍号和谱号。measures 范围颠倒或超出范围时,会报出 INVALID_PARAMETER 错误,其 hint 会指出乐谱的第一个和最后一个小节。
请通过 musicxml_path(.musicxml、.xml 或 .mxl)提供乐谱,或将其内联为 musicxml,不能同时使用两者。路径必须位于 SHEET_MUSIC_OUTPUT_ROOT(默认值:工作目录)、客户端的某个根目录,或 SHEET_MUSIC_INPUT_ROOTS 中列出的文件夹内;output_path 必须位于 SHEET_MUSIC_OUTPUT_ROOT 内。describe_score 可在不进行渲染的情况下返回乐谱的声部(ID 为 P1 …)、调号、拍号、速度和长度。
测试
# All tests including integration (Verovio runs in-process, no external tool needed)
VIRTUAL_ENV= .venv/bin/pytest tests/ -v
依赖项
- verovio — 将 MusicXML 制作为 SVG(纯 Python,在进程内运行)
- cairosvg — 将 SVG 转换为 PNG/PDF
- pypdf — 组装多页 PDF
- Pillow — 图像实用工具
- mcp — MCP 协议
系统要求
- Python 3.11+
libcairo2共享库(供 cairosvg 输出 PNG/PDF)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。