Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
ScoreStarling을 원격 MCP와 함께 사용하고, 채팅 내 점수 패널이나 브라우저의 WebMCP 베타에서 활용하세요
Use ScoreStarling with remote MCP in your assistant, an in-chat score panel or WebMCP Beta in your browser. Connection steps, examples and permissions.
플러그인PythonGitHub @HaiyiMei온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
ScoreStarling plugin for ChatGPT, Claude, Codex, Gemini CLI and Cline: transcribe, read, convert and edit sheet music
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Transcribe, read, convert and edit sheet music. Move music between
sound, pictures, documents and score files. Start from an audio or video recording, a sheet-music image or PDF, MIDI, MusicXML, ABC, Guitar Pro,
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, Guitar Pro (.gp5), MP3/WAV audio, ABC, MEI, parts or numbered notation.README 전문 보기 ↗ScoreStarling is an all-in-one AI sheet music assistant. Ask for anything to do with sheet music: transcribe a song, read a PDF or photo, add chords, change the key, make it easier, turn it into guitar TAB or numbered notation (jianpu) or arrange it for your instrument. Every change lands on a real score you can hear, fix and download. It starts from an audio or video recording, a sheet-music image or PDF, MIDI, MusicXML, ABC, Guitar Pro, numbered notation, a lead sheet or music written in chat, and exports PDF, SVG/PNG images, MusicXML, MIDI, Guitar Pro (.gp5), 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 for
sheet music, score files and music written in the chat.
Task skills add musical know-how on top: scorestarling-arrange-for-level arranges a piece for a chosen
instrument and level (piano, strings, winds, brass, recorder, guitar, ukulele, voice, drums and the Chinese
erhu, guzheng and dizi; from complete beginner to about ABRSM Grade 8), and checks the result with a
bundled script. It loads only the reference for the chosen instrument, and asks for the instrument and the
level when the request does not say.
It is maintained by individual developer HaiyiMei.
The OpenAI listing uses the verified developer name HAIYI MEI.
HaiyiMei/scorestarling-plugins, or add the server address
https://mcp.scorestarling.com/mcp as a custom connector.Sign in with a ScoreStarling account and approve the MCP connection through the client’s OAuth flow.
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."
A transcription or sheet-music reading covers the whole piece and uses credits the account already
holds when it first opens (30 seconds or less is free); the assistant says so as it starts, and the
user can ask to try a free 30-second preview first. A band's exact price, and opening the rest of a
preview, are agreed in the chat before any credits are used.
Prices, plans and limits are at https://scorestarling.com/pricing; in the chat, get_account_usage
gives the account's own: the upload size, how long a recording each choice covers (max_seconds) and
how many transcriptions may run at once (active_limit). 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 and listening use no credits. Downloads follow the account: MusicXML, MXL, MIDI, Guitar Pro, ABC and MEI download on accounts with existing download access; other accounts get the PDF and page images with a small watermark, and their own imported files in their original format. Download access comes from active Plus or preserved historical rights; buying credits alone does not open it. Previews can't be exported. An assistant saves its own round of edits as one version, a batch of operations or an editing copy, which works on every opened score. When the user gives a ScoreStarling invitation link or a beta code, the assistant redeems it in the chat (free credits, not a purchase); it offers the user's own invitation link only when they ask to invite someone. A new user without a recording can start from a public sample recording.
The plugin connects only to https://mcp.scorestarling.com/mcp; audio uploads go to
https://scorestarling.com. The client's authorized MCP connection reads or changes
the signed-in user's scores and starts requested transcriptions. When the user
chooses a band transcription and agrees to its price, the service sends the recording to
Mirelo, the band transcription provider, within a limit the server sets from the recording's
length; the user sees only the price in credits.
The service's privacy policy covers Supabase/Railway storage and Sentry/PostHog
diagnostics.
ChatGPT uses its native attachment tool. For a readable local attachment, the optional Python 3.11 upload helper requires HTTPX and network access. It receives an explicitly prepared, one-use upload ticket on stdin, posts raw audio once to the matching ScoreStarling origin, and reports acceptance. Status checks use the connected host's tools. Its programmatic entry can prepare and poll through an already-authorized tool callback. It installs nothing and reads no environment credentials. It sends no OAuth token or cookie on the capability POST and follows no redirects. If code or network is unavailable, use the built-in upload panel.
A complete connector declaration includes these app-only tools as well as
the model-facing tools. Their MCP metadata keeps ui.visibility set to
["app"]; declaring them changes neither that visibility metadata nor the
account authorization checks.
| Tool | What it does |
|---|---|
account_preferences | Reads or saves interface preferences for the signed-in account after verifying access to the panel’s score. It never changes notes or sends queued chat requests. |
begin_audio_upload | Reserves an account-scoped upload task from file metadata and returns its single-use upload capability to the app. |
cancel_pro_review | Cancels a held band instrument review for a panel opened before cancel_transcription took this over. |
cancel_transcription_quote | Cancels a held band price for a panel opened before cancel_transcription took this over. |
listen_score | Hears up to 16 bars of a score's own recording again, for hosts that listed it before review_score took this over (check=listen). |
panel_feedback | Saves the user's panel feedback for a score revision, including recording-sharing consent only when explicitly selected. |
read_notation_view | Reads rendered numbered-notation pages for an owned score revision without changing the music. |
read_score_panel | Reads the interactive panel for the current or a specified saved score revision. |
save_score_edits | Saves edits the interactive panel already drew itself, in order, on the exact saved revision. |
score_panel_state | Reads the current saved revision, pending preview and display preference to synchronize an existing panel. |
transcribe_again | Transcribes a score's recording again as a new score, for the panel's Transcribe again and panels opened before transcribe_music took this over. |
transcribe_attachment | Makes a new score from an attached file, for panels opened before transcribe_music took this over. |
transcribe_link | Makes a new score from a public link, for panels opened before transcribe_music took this over. |
validate_score | Lists a saved revision's structural issues, for hosts that listed it before review_score took this over (). |
begin_audio_upload receives the filename, exact size and processing options,
not the audio itself. Its app metadata contains a ten-minute, single-use upload
URL. The panel sends the bytes to ScoreStarling over HTTPS; the service validates
the size and retains the recording with that account's task in private hosted
storage. Lossless audio may be compressed to MP3 for storage and processing.
The task then queues or waits for required instrumentation and price consent.
One-instrument and piano processing run on ScoreStarling. The selected band
workflow uses Mirelo for instrument analysis and transcription; paid transcription
waits for the required price consent. Reserving an upload does not itself send
audio to Mirelo. Playback/audio exports synthesize the saved notes rather than
create audio through a generative AI model. Retention and processing disclosures
are in the service's privacy policy.
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 client
before publishing. Public publication on Claude requires a public GitHub source
and a separate submission of our remote MCP connector.
A direct MCP connection receives concise initialization instructions, tool metadata and
state-dependent next steps, plus get_workflow_guide for recording, notation, editing, each
edit action's limits (operations) or feedback. It does not install native skills. The complete workflows remain in these two
skills. The section between their MCP ESSENTIALS markers is generated from the same rules the
server's instructions use and is refreshed from the product repository; edit the rules there rather
than the marked section.
OpenAI documents server instructions as guidance used alongside tool metadata. Its MCP skills extension imports a static snapshot during submission through Scan Tools; it does not fetch skills at runtime. This package does not implement that extension. See server instructions and skill imports.
Use the hosted MCP tools for account-scoped actions and the skill for the transcribe, review, preview, accept and export workflow. Start with an actual chat attachment; the code upload helper and built-in upload panel are fallbacks.
The plugin files are licensed under MIT; see LICENSE. This package's license does not cover customer audio, customer scores or the hosted backend. Support, terms and privacy pages are hosted by the website; changing this package does not deploy them.
This public repository is the canonical source of the plugin. The private product repository 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 before
release. python3 scripts/build_plugin.py builds a deterministic ZIP from the Git
index; --source working-tree builds tracked local changes. CI files, tests and
top-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 to
release. CI checks the tag and manifests, creates the GitHub ZIP release, and
advances the release branch only after checks pass. Claude directory submissions
track that branch, so ordinary commits to main do not publish a plugin update.
OpenAI directory uploads and review remain separate steps. Review videos and
reviewer credentials are supplied privately rather than included here.
check=structurewatch_score | Shows frames of a video-based score's own video, for hosts that listed it before review_score took this over (check=watch). |