Scoreproof

io.github.asampat3090由 GitHub 账号 asampat3090 发布v0.2.0更新于 Nov 5, 2026

Convert MusicXML, MIDI, ABC, MEI and Humdrum, print sheet music, and verify every note survived.

已验证Streamable HTTP可网页运行文件与存储媒体与设计

概览

AI 生成的概览

转换、检查与变换乐谱(MusicXML、MIDI、ABC、MEI、Humdrum),并可生成可打印的乐谱或音频预览。

可以做什么
  • 在多种格式间转换乐谱,并逐音符核验结果,或导出为 PDF、PNG、SVG、WAV
  • 将乐谱排版为可打印或可查看的谱面,或生成音频预览
  • 查看乐谱概要:标题、声部与乐器、音域、调号、拍号、速度与小节数,并附 ABC 片段
  • 检查乐谱:小节是否填满拍号、音符是否超出乐器音域、修复了哪些导出软件的怪癖
  • 逐小节比较两个版本(可跨格式),并按音程、调性或实音/记谱音高移调
  • 提取指定声部或小节另存为新文件,并列出支持的格式及各自无法保留的内容
适用场景
适合需要把 MIDI 或记谱文件变成可打印乐谱、在格式之间迁移并了解丢失了什么、在把记谱软件导出文件交给抄谱员前做检查,或比较与移调草稿的场景。
运行要求
可使用托管的远程端点(无需安装),或通过 PyPI 包以 uvx 在本地运行,本地需先安装 uv。输入为文件链接,或带文件名的乐谱文本;聊天中附加的文件无法直接传入,需先上传到托管页面取得链接。托管服务有 10 MB 文件上限和按地址的速率限制。
安装前请注意
把乐谱上传到托管服务意味着文件会发送给第三方,文件在 24 小时后删除,下载链接一天后失效。本地运行会在输入文件旁写入新文件,只有给出确切输出路径时才会覆盖。不支持 Sibelius、Dorico、Finale、MuseScore 原生文件,需先导出为 MusicXML。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Scoreproof,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.asampat3090%2Fscoreproof/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "scoreproof": {
      "type": "http",
      "url": "https://scoreproof-fkkuctjokq-uc.a.run.app/mcp"
    }
  }
}

README

scoreproof

Convert any score. Prove nothing got lost.

Scoreproof converts music files between MusicXML, MIDI, ABC, MEI and Humdrum, makes sheet music you can print and play (PDF, PNG), repairs the quirks of real notation-app exports (Sibelius, Dorico, Finale, MuseScore, Guitar Pro and others), and checks every conversion note by note, reporting exactly what was kept and what was lost.

MIDI you played into a DAW or from a keyboard comes out as readable notation: Scoreproof finds the beat (even without a click), snaps rhythms to 16ths or triplets, tidies note lengths, splits piano into two hands and spells notes in the right key.

Use it from any AI tool that speaks MCP (Claude, Cursor, VS Code, Gemini CLI, Codex and others), from the command line, or from Python.

Use it in claude.ai, the Claude apps or ChatGPT

No install. Add a custom connector with this address:

https://scoreproof-fkkuctjokq-uc.a.run.app/mcp
  • Claude (web, desktop, mobile): Settings → Connectors → Add custom connector.
  • ChatGPT: Settings → Connectors → Create (developer mode).

Then ask "Write a short waltz and give me the sheet music". To work on your own file, drop it on the Scoreproof page and paste the link it gives you into the chat; the same page converts files with one click.

The hosted service is free, has per-address rate limits and a 10 MB file limit, and deletes every file after 24 hours.

Use it from your AI tool

Scoreproof runs locally and works on files on your computer. It needs uv (brew install uv or pip install uv).

Claude Code

/plugin install scoreproof --marketplace asampat3090/scoreproof

or add the server directly: claude mcp add scoreproof -- uvx scoreproof mcp

Claude Desktop, Cursor, Gemini CLI: add this to claude_desktop_config.json, ~/.cursor/mcp.json or ~/.gemini/settings.json:

json
{  "mcpServers": {    "scoreproof": { "command": "uvx", "args": ["scoreproof", "mcp"] }  }}

VS Code (.vscode/mcp.json):

json
{  "servers": {    "scoreproof": { "type": "stdio", "command": "uvx", "args": ["scoreproof", "mcp"] }  }}

Codex (~/.codex/config.toml):

toml
[mcp_servers.scoreproof]command = "uvx"args = ["scoreproof", "mcp"]

Then ask things like:

  • "Turn ~/Music/take-3.mid into sheet music I can print."
  • "Convert ~/Music/song.mid to MusicXML and tell me what got lost."
  • "Transpose my lead sheet to Bb and show me the sheet music."
  • "Split this score into parts for each player."
  • "What changed between draft-1.musicxml and draft-2.musicxml?"
  • "Check this Sibelius export before I send it to the copyist."

Tools

ToolWhat it does
convertConvert a file and verify the result note by note, or make a PDF/PNG
batch_convertConvert many files or whole folders
inspectSummary (parts, ranges, key, meter, tempo) plus an ABC excerpt of chosen bars
validateFind bars that don't add up, notes out of range, and repaired exporter quirks
compareWhat changed between two versions, bar by bar, even across formats
transposeBy interval, into a key, or between concert and written pitch
extractPull out parts or bars, or make one file per player
renderSheet music to print or view (PDF, PNG, SVG; Letter or A4) or an audio preview (WAV)
list_formatsFormats and what each one cannot hold

Results are written next to the input under a new name. Scoreproof never overwrites an existing file unless you give that exact output path.

Use it from the command line

bash
uvx scoreproof convert song.musicxml song.miduvx scoreproof convert take-3.mid --to pdf          # played MIDI to sheet musicuvx scoreproof inspect song.musicxml --bars 1-8uvx scoreproof transpose song.musicxml --key "Bb major"uvx scoreproof extract score.mxl --each-partuvx scoreproof render song.musicxml --to png --page-size a4uvx scoreproof --help

Add --json to any command for machine-readable output.

Use it from Python

python
from scoreproof import convert
result = convert("song.musicxml", "song.mid")result.confidence        # "exact", "high", "medium" or "low"result.expected_losses   # what MIDI cannot hold: lyrics, chord symbols, ...result.fixes             # exporter quirks repaired on the way in

How accurate is it?

On 430 real exports from 11 notation apps (benchmarks/score_corpus/):

music21 alonescoreproof
Files that load96.0%100%
Read faithfully (parts, bars, notes, length)87.9%95.6%

MIDI played in a DAW (benchmarks/played_midi/, five pieces performed with human timing):

music21 alonescoreproof
Notes on the right beat, with a click64%99%
Notes on the right beat, no click6–21%81–82%

Every conversion re-reads its own output and compares it with the source. When a format cannot hold something (MIDI has no chord symbols or lyrics layout; ABC and MEI exports carry transposing instruments at concert pitch), the report says so instead of failing silently.

Not supported: native Sibelius, Dorico, Finale and MuseScore files. Export MusicXML from the app first.

Development

bash
pip install -e ".[dev]"pytest --cov=scoreproof        # coverage is kept at 100%black src tests benchmarksflake8 src tests benchmarks

The plan and milestones are in docs/plan.md. MIT licensed.

来源:README.md,提交 6d985d0

工具

8

convert

Convert a music file

Convert a score between formats and verify the result note by note, or turn it into sheet music (pdf, png, svg) or audio (wav). Returns a download link, a confidence level (exact, high, medium, low), the share of notes kept, features the target format cannot hold, and exporter quirks that were repaired on the way in.

输入参数to必填filecontentfilename

render

Render sheet music or audio

Engrave sheet music to print or view (PDF, PNG, SVG) or make an audio preview (WAV). Returns download links.

输入参数tofilecontentfilenamepage_size

inspect

Look at a score

Summarise a score and show some bars as ABC notation: title, parts with instruments and ranges, key, meters, tempos and bar count.

输入参数barsfilepartscontentfilename

validate

Check a score for problems

Check a score: exporter quirks that needed repair, bars that do not fill their time signature, and notes outside an instrument's range.

输入参数filecontentfilename

compare

Compare two versions

Show what changed between two versions of a piece, bar by bar, even across formats.

输入参数a必填b必填

transpose

Transpose a score

Transpose a score by an interval, into a key, or between concert and written pitch. Give exactly one of interval, key or pitch.

输入参数tokeyfilepitchcontentfilenameinterval

extract

Extract parts or bars

Save chosen parts and/or bars of a score as new files.

输入参数tobarsfilepartscontentfilenameeach_part

list_formats

List supported formats

Formats Scoreproof reads and writes, and what each one cannot hold.

无需输入参数。

版本历史

2
  1. v0.2.0最新Nov 5, 2026
  2. v0.1.0Nov 3, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分