HaiyiMei

ScoreStarling

Community HaiyiMei
Updated

ScoreStarling plugin for ChatGPT, Claude, Codex, Gemini CLI and Cline: turn recordings, videos and sheet music into playable, editable scores (remote MCP server + skills)

ScoreStarling

Convert musical content across sound, pictures, documents and score files. Startfrom an audio or video recording, a sheet-music image or PDF, MIDI, MusicXML, ABC,numbered notation, a lead sheet or music written in chat. Create an editable,playable score, review or preview changes, and export PDF, SVG/PNG images, MusicXML,MIDI, MP3/WAV audio, ABC, MEI, parts or numbered notation.

This plugin combines the hosted ScoreStarling MCP tools with two workflow skills:scorestarling-score for audio/video recordings and scorestarling-notation forsheet music, score files and music written in the chat.It is maintained by individual developer HaiyiMei.The OpenAI listing uses the verified developer name HAIYI MEI.

Access and use

Sign in with a ScoreStarling account and approve the MCP connection through theclient’s OAuth flow. Each account can run two transcriptions at a time.

Ask: "Turn this attached recording into a score, open it, and help me check it." or"Make this photo of sheet music playable and give me the MIDI."One instrument or voice, and solo piano with both hands and pedal, are free; a band uses credits.Uploads are limited to 100 MiB. Each transcription covers the first five minutes of a recording, thesame for every account.Read get_account_usage.max_seconds for its current limit before starting. A band'sprice is shown, and agreed in the chat, before it starts. The skill checks tool results and score structure,but listening and human review remain necessary for transcription accuracy.Model-proposed musical edits are previews until the user accepts them.

Editing, listening, PDFs, page images and audio are free. A free score's PDFs carry one small footerline, and its MusicXML, MIDI, ABC and MEI downloads need the score unlocked, which uses a fixed numberof the account's existing credits once per score (then every format downloads as often as wanted,edits included). The assistant asks the user for one clear yes to that exact number first, as for aband's price. A band score transcribed with credits is already unlocked, and an assistant's own roundof edits uses an editing copy that needs no unlock. When the user gives a ScoreStarling invitationlink or a beta code, the assistant redeems it in the chat (free credits, not a purchase); it offersthe user's own invitation link only when they ask to invite someone. A new user without a recordingcan start from a public sample recording.

What connects and runs

The plugin connects only to https://mcp.scorestarling.com/mcp; audio uploads go tohttps://scorestarling.com. The client's authorized MCP connection reads or changesthe signed-in user's scores and starts requested transcriptions. When the userchooses a band transcription and agrees to its price, the service sends the recording toMirelo, the band transcription provider, within a limit the server sets from the recording'slength; the user sees only the price in credits.The service's privacy policy covers Supabase/Railway storage and Sentry/PostHogdiagnostics.

ChatGPT uses its native attachment tool. For a readable local attachment, theoptional Python 3.11 upload helper requires HTTPX and network access. It receivesan explicitly prepared, one-use upload ticket on stdin, posts raw audio once tothe matching ScoreStarling origin, and reports acceptance. Status checks use theconnected host's tools. Its programmatic entry can prepare and poll through analready-authorized tool callback. It installs nothing and reads no environmentcredentials. It sends no OAuth token or cookie on the capability POST and followsno redirects. If code or network is unavailable, use the built-in upload panel.

Distribution and support

The portable plugin.json / mcp.json package is for ChatGPT and Codex. Claude's.claude-plugin/plugin.json and .mcp.json reference the same skill and service.This package does not include the backend, a local MCP server, hooks or subagents.Gemini CLI reads gemini-extension.json at the repository root (the same remote server with OAuth,plus the skills): gemini extensions install https://github.com/HaiyiMei/scorestarling-plugins.Actual installation and automatic skill selection must be checked in each clientbefore publishing. Public publication on Claude requires a public GitHub sourceand a separate submission of our remote MCP connector.

A direct MCP connection receives concise initialization instructions, tool metadata andstate-dependent next steps, plus get_workflow_guide for recording, notation, editing, eachedit action's limits (operations) or feedback. It does not install native skills. The complete workflows remain in these twoskills; their marked MCP essentials share apps/server/workflow_guidance.py and are checkedby scripts/sync_workflow_guidance.py. After editing those shared rules, run the script with--write and run tests/mcp/check_workflow_guidance.py.

OpenAI documents server instructions as guidance used alongside tool metadata. Its MCPskills extension imports a static snapshot during submission through Scan Tools; it doesnot fetch skills at runtime. This package does not implement that extension. Seeserver instructionsand skill imports.

Use the hosted MCP tools for account-scoped actions and the skill for thetranscribe, review, preview, accept and export workflow. Start with an actualchat attachment; the code upload helper and built-in upload panel are fallbacks.

The plugin files are licensed under MIT; see LICENSE. This package'slicense does not cover customer audio, customer scores or the hosted backend.Support, terms and privacy pages are hosted by the website; changing thispackage does not deploy them.

Development and releases

This public repository is the canonical source of the plugin. The private productrepository pins it as a Git submodule; backend changes do not release this package.

Run python3 tests/check_plugin_build.py and validate both Claude manifests beforerelease. python3 scripts/build_plugin.py builds a deterministic ZIP from the Gitindex; --source working-tree builds tracked local changes. CI files, tests andtop-level developer scripts are excluded from the ZIP.

Update the three manifest versions (plugin.json, .claude-plugin/plugin.json,gemini-extension.json), commit, and push a matching v<version> tag torelease. CI checks the tag and manifests, creates the GitHub ZIP release, andadvances the release branch only after checks pass. Claude directory submissionstrack that branch, so ordinary commits to main do not publish a plugin update.OpenAI directory uploads and review remain separate steps. Review videos andreviewer credentials are supplied privately rather than included here.

MCP Server · Populars

MCP Server · New