moontide-mcp

MCPattested
v2.0.2KonniAGPL-3.0-or-laterUpdated 1d agonpmGitHub

Claude steers live music by writing Strudel code played in a browser page

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
468Downloads/wk
1GitHub stars
1d agoLast update
Package
AuthorKonni
LicenseAGPL-3.0-or-later
Version2.0.2
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
✓Listed in Forge index+10/10
✓Identity verified · attested build+20/20
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—npm maintainer match+0/5
→ Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain—
Provenance✓ Sigstore-verified · 8809c6c
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface14 tools · 1 privileged
Security scan✓ Cleanv2.0.2 · todayHow well does this scan work?
EvalsNone
IndexedOct 13, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

14 tools · 1 privileged
Statically extracted from the published packagev2.0.2 · 4h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

get_codeReads the Strudel code currently playing in the Moontide page, i.e. the last code the page confirmed,

Reads the Strudel code currently playing in the Moontide page, i.e. the last code the page confirmed,

No input schema was published for this tool.

get_strudel_referenceNo description published

This tool published no description. Forge does not invent one.

set_codeReplaces the music in the Moontide page with new Strudel code; the new pattern takes over within a fraction of a second, mid-cycle, without stopping the music.

Replaces the music in the Moontide page with new Strudel code; the new pattern takes over within a fraction of a second, mid-cycle, without stopping the music.

No input schema was published for this tool.

edit_codeprivilegedNo description published

This tool published no description. Forge does not invent one.

list_historyLists the versions of the music that played, newest first, one per row: "#id — time (UTC) — origin — \"label\" — first line of code". Ids never change. Rows without "#" mark where a Claude session started. The newest version row is usually what plays now; "the previous version" is the next version…

Lists the versions of the music that played, newest first, one per row: "#id — time (UTC) — origin — \"label\" — first line of code". Ids never change. Rows without "#" mark where a Claude session started. The newest version row is usually what plays now; "the previous version" is the next version…

No input schema was published for this tool.

favorite_versionKeeps a version as a named favorite, by its id from list_history (the version playing now is the one shown as v{id} in the page top bar). Favorites are never dropped from the history. Favoriting the same id again renames it. List favorites with list_history and favorites: true.

Keeps a version as a named favorite, by its id from list_history (the version playing now is the one shown as v{id} in the page top bar). Favorites are never dropped from the history. Favoriting the same id again renames it. List favorites with list_history and favorites: true.

No input schema was published for this tool.

restore_versionNo description published

This tool published no description. Forge does not invent one.

stopStops all sound in the Moontide page right away, even when the current code is broken. The code stays in the editor; get_code still returns it, and the next set_code starts playing again. Before Moontide is started it says so and starts nothing.

Stops all sound in the Moontide page right away, even when the current code is broken. The code stays in the editor; get_code still returns it, and the next set_code starts playing again. Before Moontide is started it says so and starts nothing.

No input schema was published for this tool.

get_midi_instrumentsNo description published

This tool published no description. Forge does not invent one.

search_midi_soundsNo description published

This tool published no description. Forge does not invent one.

save_midi_modelNo description published

This tool published no description. Forge does not invent one.

save_midi_catalogNo description published

This tool published no description. Forge does not invent one.

set_page_requestsNo description published

This tool published no description. Forge does not invent one.

startNo description published

This tool published no description. Forge does not invent one.

5 of 14 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Claude steers live music by writing Strudel code played in a browser page

Keywords
mcpmcp-servermodel-context-protocolstrudellive-codingmusicmidiclaude
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-10-13 — observed resolution, not a publisher declaration.

60 packages resolved · 3 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

56 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+44 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.

Topics

Related in music