Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ghchen99/mcp-musescore --skill musescore-drum-chartgit clone --depth 1 https://github.com/ghchen99/mcp-musescoreWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ghchen99/mcp-musescore/musescore-drum-chart)<a href="https://agentmods.dev/skills/ghchen99/mcp-musescore/musescore-drum-chart"><img src="https://agentmods.dev/badge/skills/ghchen99/mcp-musescore/musescore-drum-chart/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ghchen99/mcp-musescore/musescore-drum-chart"><img src="https://agentmods.dev/badge/skills/ghchen99/mcp-musescore/musescore-drum-chart.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00159 | $0.05375 |
| Opus 5.5 | $0.00064 | $0.02150 |
| Sonnet 5.5 | $0.00032 | $0.01075 |
| Haiku 4.5 | $0.00016 | $0.00537 |
Grade A, and why
musescore-drum-chart scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MuseScore drum chart
Goal: a short drum chart that reads like a road map. Each groove or phrase is written once with a play count, fills and stops are written out and colour-coded, nothing the drummer plays differently is lost, and bar numbers still match the song as played.
The user's rules
These come from the user's feedback on earlier charts. Follow them unless the user says otherwise for a chart.
- Never drop what the drummer plays differently. Bars may only be collapsed together when they are the same in kicks, snares, toms, hi-hat openings (open / half-open) and articulations. The only differences allowed are:
- the cymbal on beat 1 (crash instead of closed hi-hat), shown with
*/**marks; - ghost notes, if the user agrees to drop them (see below).
- the cymbal on beat 1 (crash instead of closed hi-hat), shown with
- Use phrases, not just bars. When a groove alternates (e.g. an open hi-hat on the last eighth of every second bar, or an extra kick every other bar), collapse a 2-bar (or 4-bar) phrase × N instead of one bar × N.
find_groove_sectionscomputes these runs. - Follow the song's phrasing. A repeated 2- or 4-bar phrase starts where a phrase starts: a crash bar, a section start, or the bar after a fill. "4 + 2 bars" reads better than "1 + 2-bar phrase ×2 + 1", even if it costs a bar or two on the page.
find_groove_sectionsonly proposes runs on that grid; don't build off-grid runs by hand. - Compact as much as these rules allow, then offer near copies (bars that differ by a kick or similar) as a choice: merge them only if the user approves, and say what would be lost. An approved merge is
collapse_to_repeat(..., force=True); list the dropped hits in the end notes. - Keep fills, stops and builds written out. Bars in another meter (e.g. a 3/4 bar in a 4/4 song) are written out too, unless the same bar repeats: identical odd-meter bars collapse like any others ("pedal hi-hat bar ×2").
- End the chart on the last hit. Empty bars after it (rests of a fade or a segue into the next track, a zero-length bar left by an import) are removed with
delete_measures, together with the section label on them. Don't put a cue text in their place unless the user asks. - Ghost notes: ask per chart. List them with
ghost_notesand ask whether to remove them (all, or some bars). - Half-open hi-hats: imports usually don't mark them. Ask the user which sections or bars have a half-open hi-hat and add the symbol there.
- Cymbal rolls (a run of repeated or tied crash/ride notes, often with tremolo slashes): write them as one long note per bar, tied, with a roll (
simplify_roll). A roll is one continuous roll from the first cymbal hit that rings (is tied) into it, not a held crash followed by a roll. - Beam across rests. Write eighths as one beamed group per beat, with any rest inside the group under the beam (like the 2nd bar of a groove), never separate flags broken at each rest (
beam_over_rests). - Song structure page. Every chart ends with a structure page: song and artist, then section, bar count, groove, fills (
set_song_structure). No notes column. - Bar counts in fours, in the section labels. Each section label gets its length as drummers count it, in parentheses: "Chorus 4 (4+2)", black, in the label's own box (
label_section_counts, which also sets the labels to 12 pt with 1 staff space around them, the look the user settled on). 6 bars → "4+2", 8 → "2x4", 10 → "2x4+2", 12 → "3x4", 7 → "4+3". A lead-in of 2 or more bars before the section's first groove bar is counted on its own (the intro's rest bar and pickup fill: "2+4+2"); a single bar is not ("2x4+2", not "1+2x4+1"). Bars in another time signature are counted on their own ("4+2+2": 4 bars, 2 bars of 3/4, 2 bars). A count-in bar excluded from the bar numbers is not counted. A count already written in a label is the user's: keep it (the tools do while it still adds up). The structure page shows the same counts in its Bars column, never plain numbers. - No red counts beside the labels and no extra system spacing to make room for counts: MuseScore doesn't leave room between systems for text placed by hand, so they run into the dynamics of the system above. Only if the user explicitly asks for them (
placement="beside"). - Header: title = song name, subtitle = artist, no composer (nothing top right), part name "Drums" top left.
- Bar numbers the user mentions are the numbers shown on the chart (as played). Convert them to positions before calling tools:
get_scoreshows each bar as% m.N (bar M), where N is the position.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 146 lines · 159 tokens per session scan A 88cbf362cfa7
musescore-drum-chart is a skill published in the GitHub repository ghchen99/mcp-musescore (137 stars, last pushed 4d ago), licensed MIT. It adds 159 tokens to every session and 5,375 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-03.
musescore-drum-chart compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| musescore-drum-chartghchen99/mcp-musescore | Skill | 137 | 4d ago | MIT | A | 159 | Claude Code, Codex |
| safe-email-operationsWh1isper/mcp-email-server | Skill | 375 | 3d ago | BSD-3-Clause | A | 39 | Claude Code |
| rival-search-mcpdamionrashford/RivalSearchMCP | Skill | 137 | 2d ago | MIT | A | 151 | Claude Code |
| triaging-incidentsjschuller/mcp-server-servicenow | Skill | 27 | 2d ago | MIT | A | 89 | Claude Code |
| reviewing-update-setsjschuller/mcp-server-servicenow | Skill | 27 | 2d ago | MIT | A | 82 | Claude Code |
| reviewing-sla-definitionsjschuller/mcp-server-servicenow | Skill | 27 | 2d ago | MIT | A | 79 | Claude Code |
| skillssandraschi/inkscape-mcp | Skill | 97 | 14d ago | MIT | A | 0 | Claude Code |