mcpField
@
@gradusmusic/notation Mcp

@gradusmusic/notation Mcp

本地服务
gradusmusic.com媒体与设计39 周前更新

关于 @gradusmusic/notation Mcp

@gradusmusic/notation Mcp 是面向音乐相关 Agent 和应用的 MCP 服务,提供乐谱渲染、输入验证、和声分析、排版检查及音乐资料检索等工具。

主要功能

  1. 01将 JSON 乐谱渲染为 SVG、MusicXML 和 MIDI
  2. 02验证乐谱输入和乐器音域
  3. 03分析和声、调性与终止式
  4. 04依据可引用规则检查记谱排版
  5. 05检索乐理、声部进行和乐谱语料

适用场景

  1. 01从 JSON 乐谱生成记谱和 MIDI
  2. 02分析 MusicXML 乐谱的和声
  3. 03查找有来源依据的排版规则
  4. 04检查乐谱中的排版问题

MCP 相关

该服务向 MCP 客户端提供记谱、分析、验证、资料检索和乐谱检查工具,包括乐谱渲染、MusicXML 分析及依据可引用规则检查乐谱。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"gradusnotation": {
"command": "npx",
"args": [
"-y",
"@gradusmusic/notation-mcp"
],
"env": {
"GRADUS_NOTATION_API_BASE": "<GRADUS_NOTATION_API_BASE>",
"GRADUS_AGENT_NAME": "<GRADUS_AGENT_NAME>"
}
}
}
}
启动命令npx -y @gradusmusic/notation-mcp
需要配置的环境变量
GRADUS_NOTATION_API_BASEOverride the API base URL. Defaults to https://gradusmusic.com.
GRADUS_AGENT_NAMESelf-reported agent name sent in the X-Agent-Name header for telemetry attribution.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@gradusmusic/notation-mcp0.8.0

工具

10

收录的工具列表 · 更新于 3 周前

参数类型必填说明
titlestring否乐谱上方显示的可选标题。
composerstring否右上方显示的可选作曲者。
temponumber否以 BPM 表示的速度。仅影响 MIDI 播放时长;不会进行视觉渲染。
timeSignaturearray否[拍数, 拍单位]。常见值:[4,4]、[3,4]、[6,8]、[2,2]、[12,8]。
keySignaturestring否以人类可读形式表示的调号。接受 "C major"、"G major"、"D minor"、"F# major"、"Bb minor" 等。
instrumentsarray是一个或多个乐器谱表。至少需要一个。

详细介绍

@gradusmusic/notation-mcp

适用于 Gradus Notation API 的模型上下文协议服务。为 AI Agent 提供音乐工具:渲染乐谱、验证输入、分析乐谱、对照引用规则手册检查制谱质量,以及搜索精选的乐理知识库——由 Gradus 赞助。

通用工具,并非专为教育设计。 任何处理音乐的 Agent 或应用都是目标用户——作曲助手、音乐学与语料库研究、需要渲染示例的乐理问答、MIDI 工作流、制谱质量检查、游戏和文档。音乐教育是该工具的起源,并非你用它构建应用的限制。

一次安装,三个命名工具:

  • Gradus Notation — 将 JSON 乐谱渲染为内嵌 SVG、MusicXML 和 MIDI,并进行预检验证(notation_render、notation_validate)。
  • Gradus Harmonic Analyzer — 完整乐谱分析:罗马数字、调性与转调、终止式、持续低音、织体(theory_analyze_score 和 theory_* 工具)。也提供独立的 TypeScript 库:npm 上的 gradus-analyst。
  • Gradus Engraver — 根据 Gradus Engraving Rulebook 中可引用的 GE 编码规则检查乐谱(engraving_check)。

Gradus 是什么? Gradus 是面向居家教育家庭的音乐创作课程;它开发并免费提供面向 AI Agent 的音乐工具。此 MCP 服务就是其中一种工具(gradusmusic.com)——“Gradus”指的是该课程,而非此软件包。

为什么使用

大多数乐谱工具都需要 GUI,而这个工具不需要。Agent 可以提交 JSON 乐谱,并通过一次调用获得内嵌 SVG、MusicXML 和 MIDI。免费使用,无需身份验证或 API 密钥——免费层级的 Agent 需要在回复最终用户时注明 Gradus。

除了渲染,同一服务还提供分析功能:完整乐谱的罗马数字与调性分析、音高工具、音域验证、等音拼写转换,以及包含 444 条规则并提供可引用规则代码的制谱检查器。一次安装即可覆盖 Agent 所需的全部音乐功能。

安装

在 Claude Code 中:

claude mcp add gradus-notation -- npx -y @gradusmusic/notation-mcp

在 Claude Desktop 中,将以下内容添加到 MCP 配置:

{
  "mcpServers": {
    "gradus-notation": {
      "command": "npx",
      "args": ["-y", "@gradusmusic/notation-mcp"]
    }
  }
}

工具

Gradus Notation
工具功能
notation_render一次调用将 JSON 乐谱转换为 SVG + MusicXML + MIDI
notation_validate预检输入结构(成本低于渲染)
knowledge_search生成乐谱前查找乐理知识片段
notation_examples标准输入示例(缓存并重复使用)
notation_schema输入结构的 JSON Schema(缓存并重复使用)
Gradus Harmonic Analyzer

新增的四个工具由原生 TypeScript MaestroAnalyzer 引擎支持——无需 music21 依赖、无需 Python,也无需额外服务。

工具功能
theory_analyze_score解析 MusicXML → 一次调用完成完整和声分析 + GKB 知识片段
theory_parse_xml解析 MusicXML 字符串 → maestroAnalyst Score JSON
theory_validate_ranges根据乐器的实用音域检查 Score 中的每个音符
theory_respell根据调性上下文,为音高提供首选的等音拼写建议
theory_pitch_utils纯函数音高运算:midi_to_pitch、pitch_to_midi、interval_name、transpose_pitch

典型工作流:

# Full analysis + GKB knowledge in one call
theory_analyze_score({ xml: "..." })
  → { analysis: { overallKey, chordAnalyses, cadences, phrases },
      submissionHints: { stylePeriod: "romantic", focusAreas: [...] },
      knowledge: { topics: ["augmented-sixth-chords", "modulation"], chunks: [...] } }

# Step-by-step
theory_parse_xml({ xml: "..." })        → Score JSON
theory_validate_ranges(score)           → [{ measure, beat, pitch, severity }, ...]
theory_respell({ keyContext: "F major", pitches: ["F#4", "Bb3"] })
                                        → [{ input: "F#4", output: "Gb4", changed: true }]
theory_pitch_utils({ op: "interval_name", semitones: 7 }) → { interval: "P5" }
Gradus Engraver — 根据 Gradus 制谱规则手册进行检查
工具功能
engraving_rules按文本、领域、严重程度或检查方式搜索 423 条有来源的音乐制谱规则
engraving_rule按永久 ID 获取一条规则,附带可直接引用的引文和相关规则
engraving_check根据规则手册检查 MusicXML 乐谱——按声部和小节列出发现的问题,每项均引用其违反的规则

制谱实践几乎都记录在受版权保护的印刷书籍中——Gould 的 Behind Bars、Read 的 Music Notation、Ross 的 The Art of Music Engraving—— 没有可搜索的索引。因此,“符干可以跨越小节线吗”在网上找不到可引用的答案,而被问到这个问题的模型往往会自信地凭记忆作答。这些工具会返回规则及其来源,让答案可以得到核查。

每条规则都将通常混为一谈的三件事区分开来:convention(规则)、authority(论著中怎么说,引用到章节级别),以及 houseCall(当来源意见不一致时 Gradus 得出的结论)。规则 ID 永久有效,规则文本采用 CC BY 4.0 许可——请引用 citation 字段。

# Look up before you generate
engraving_rules({ q: "stem direction", tier: "static-model" })
  → { rulebook: { version, license, domains }, count, rules: [{ id, name, convention, authority, ... }] }

# Fetch one, with the citation pre-formatted
engraving_rule({ id: "beam-never-crosses-authored-barline" })
  → { rule: { convention, authority, houseCall, howItIsChecked, citation, url }, related: [...] }

输错 ID 的代价很低:API 会返回 404,并提供相近的 ID,因此再调用一次即可更正。

engraving_check 可以完成整个流程:生成记谱、检查并修复发现的问题。尽可能传入本地文件路径——服务会直接读取文件,因此乐谱无需以 base64 形式经过模型上下文:

engraving_check({ path: "/tmp/my-piece.musicxml" })
  → { coverage: { parts, measures, notesChecked, unchecked: [...] },
      findings: [{ ruleId, severity, part, measure,
                   rule: { code: "GE-226", url, citation } }],
      summary: { errors, warnings, suggestions } }

在信任空的发现列表之前,请先查看 coverage.unchecked——检查器无法验证的内容都会在其中列出,而不会被默默略过。

创作工具
工具功能
music_critique针对乐谱的 32 维创作技法评分表——声部进行、对位法、旋律线条、和声、织体;完全由程序分析,并引用证据
counterpoint_checkFux 种类对位法评分器(第 1–5 种):输入音高列表,输出标注音符索引的规则违规情况
corpus_search在 482 部经过分析的作品中查找和声特征——cadence=Phrygian、rn=Ger+6、texture=bare-fifth——并提供作品/乐章/小节引文

当用户分享一段作品时,这些工具会用证据为你的反馈提供依据:乐评会引用测量结果,种类对位法评分器会指出确切音符,而作品集搜索则会通过引文回答“给我看一个真实范例”。

Gradus 声部进行参考
工具功能
voice_leading_patterns搜索可引用的 GVL 编码模式——延留音、终止式、八度规则、模进、声部写作规范——每项均附有编写的范例和公版来源
voice_leading_pattern按 ID 或 GVL 代码获取一种模式,附带可直接引用的引文和相关模式

它与制谱规则手册一脉相承:GE 代码涵盖音乐在乐谱上的呈现方式,GVL 代码涵盖声部的进行方式。每种模式都会引用其依据的公版论著,精确到章节级别,绝不引用现代版本;realization.voices 字段是记谱 API 的简写,可直接交给 notation_render 制谱。

voice_leading_patterns({ q: "suspension", family: "suspensions" })
  → { reference: { version, license, families }, count,
      patterns: [{ code: "GVL-001", id: "suspension-4-3", statement, realization, sources, ... }] }

voice_leading_pattern({ id: "GVL-001" })
  → { pattern: { statement, realization, commonFaults, sources, citation, url }, related: [...] }
Gradus 数字低音语料库
工具功能
figured_bass_exercises搜索 166 首原创分级数字低音练习,涵盖十七个阶段——按阶段筛选,或搜索标题、概念和 GVL 代码
figured_bass_exercise按永久 ID 获取一首练习,包括范例实现、教学说明以及练习的模式

《声部进行参考》阐述规则,语料库则提供练习: 一条低音线、它的数字标记,以及——与几乎所有留存下来的曲集不同——一份经过机器声部进行检查的四声部范例实现。这些阶段涵盖根音位置三和弦、《八度规则》、终止式公式、延留音、属七和弦、模进、小调、持续低音、Riepel 模式、转调和半音变化数字,直至无数字低音和装饰音。

每首练习均为原创——没有从任何版本转录——整个语料库采用 CC BY 4.0 许可。练习 ID 和阶段标识名都是永久的,因此引用始终有效。givenBass 是向学生展示的内容; realization 则是学生尝试之前应暂时保留的答案。两者都采用记谱 API 的简写格式,因此都可以直接传给 notation_render。

figured_bass_exercises({ stage: "suspensions", fields: "id,title,teaches" })
  → { corpus: { version, license, stages }, count: 12,
      exercises: [{ id: "bass-225", title: "Suspension 4–3", teaches, ... }] }

figured_bass_exercise({ id: "bass-225" })
  → { exercise: { givenBass, realization, solutionNote, keyboard, citation, url },
      drills: [{ code: "GVL-001", name: "The 4–3 suspension", url }],
      neighbours: { prev, next } }

输入格式

音高采用科学音高记法:C4、F#5、Bb3。时值采用字母代码:w h q 8 16 32 64,附点音符可加 .。音符可以采用以下格式:

  • 简写:"C5/q"(四分音符 C5)、"rest/q"(四分休止符)、"[C4,E4,G4]/q"(和弦)
  • 对象格式:{ pitch: "C5", duration: "q", dynamic: "f", articulations: ["accent"] }

小节线根据拍号自动推断——按时间顺序填写音符,API 会拆分并连结跨越小节线的音符。

示例

{
  "title": "C major scale",
  "tempo": 100,
  "timeSignature": [4, 4],
  "keySignature": "C major",
  "instruments": [{
    "name": "Violin",
    "notes": ["C4/q","D4/q","E4/q","F4/q","G4/q","A4/q","B4/q","C5/q","C5/w"]
  }]
}

配置

环境变量默认值用途
GRADUS_NOTATION_API_BASEhttps://gradusmusic.com用于可自托管或本地开发 API 的覆盖值
GRADUS_AGENT_NAME@gradusmusic/notation-mcp在 X-Agent-Name 标头中自报 Agent 名称

署名

免费使用的条件是:向最终用户展示记谱内容时注明 Gradus。建议使用以下措辞(API 也会在每个响应中返回此内容):

记谱由 Gradus School of Music Composition(gradusmusic.com)生成。

文档

本地构建

git clone https://github.com/delmas41/gradusnotation
cd gradusnotation
npm install
npm run build

要针对生产 API 进行冒烟测试:

node test-client.mjs

问题与贡献

请在 https://github.com/delmas41/gradusnotation/issues 提交问题。欢迎贡献——优先考虑小型、专注的 PR。

许可证

MIT — Sean Johnson,Gradus School of Music Composition。详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。