Skip to main content

render-mcp

MCP server that renders MusicXML scores to PDF or PNG images.

What it does

Takes a MusicXML document and produces print-ready PDFs or screen-ready PNG images. Uses Verovio for layout and engraving — no external tools or GUI required.

Tools

Tool Description
render_to_pdf Render the full score to a multi-page PDF file
render_to_image Render a single page to PNG or SVG
list_capabilities Return server metadata: backend version, supported formats, available renderers

Installation

cd render-mcp
uv sync

libcairo is required for PNG output:

# Ubuntu / Debian (usually pre-installed on desktop systems)
sudo apt install libcairo2

Running

uv run render-mcp

No environment variables required.

Usage examples

// 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
  }
}

DPI range: 72–600. Default: 150. Page numbers are 1-indexed.

Testing

# All tests including integration (Verovio runs in-process, no external tool needed)
VIRTUAL_ENV= .venv/bin/pytest tests/ -v

Dependencies

  • verovio — MusicXML engraving to SVG (pure Python, in-process)
  • cairosvg — SVG to PNG/PDF conversion
  • pypdf — multi-page PDF assembly
  • Pillow — image utilities
  • mcp — MCP protocol

System requirements

  • Python 3.11+
  • libcairo2 shared library (for PNG/PDF output via cairosvg)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

render_mcp-0.1.2.tar.gz (79.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

render_mcp-0.1.2-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file render_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: render_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 79.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for render_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8f52253ce2cb922322cf38eaf1cd9ad17817f3831fd220b50137c3d5171ec35f
MD5 bb9e5114a50f5e3cc7f7932f40348afb
BLAKE2b-256 e81cd0b5a92831c4a16b912e1a082eaf914783056b142fb79ff9c0176e8fd0ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for render_mcp-0.1.2.tar.gz:

Publisher: publish.yml on raulkivi/music-assistant

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file render_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: render_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for render_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4ab7c0c95a44ef5294e36eaed142a3efc86fe0eccf2a1bfad46df555b5a86273
MD5 0c22983c727c45ce666f8ab9b8da84e1
BLAKE2b-256 e9396dc5811627c5bc64922314089e30a128591b0dc8b46ee253cb7b3d9f67ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for render_mcp-0.1.2-py3-none-any.whl:

Publisher: publish.yml on raulkivi/music-assistant

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page