M9: machine interface — stdio MCP server, pinned Dockerfile, creator-facing README (+ CI sfizz build)#3
Merged
Merged
Conversation
…facing README - scorekit mcp: thin stdio MCP server (JSON-RPC 2.0); six tools (doctor/ validate/schema/lint/build/diff) each re-invoke the CLI with --json and pass structured output through verbatim; no HTTP, no auth, no state - Dockerfile + .dockerignore: pinned toolchain image (bookworm FluidSynth/ FFmpeg, SHA-256-verified MuseScore General) carrying the determinism guarantee into cloud/CI; doctor self-check at build time - docs-site: new Machine Interface page (semver-stable contract: exit codes, --json error object, schema exports, subprocess recipes, built-in MCP, Docker deployment); commands table gains mcp - roadmap: M9 milestone, capability list, acceptance-matrix row for mcp (happy path + failure path E2E), audit outcome recorded (HTTP server stays REJECTED, scorekit-core lib crate stays on HOLD pending a real consumer) - README rewritten creator-first: inline first-track example, Agent workflow, humanize/grammar/SFZ sections; engineering detail moved to the docs site Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Outcome of the 2026-07 embedded-server audit: instead of a resident HTTP/API server, the third-party integration story ships as three thin artifacts, plus the CI sfizz fix this branch started with.
scorekit mcp— stdio MCP server (src/mcp.rs)doctor,validate,schema,lint,build,diffas MCP tools.--json; structured errors (code/field/exit_code) are passed through verbatim asisError: trueresults.Pinned deployment image (
Dockerfile,.dockerignore)cargo build --locked→ bookworm-slim), pinning FluidSynth 2.3.x, FFmpeg 5.1.x, and the SHA-256-verified MuseScore General SoundFont via the existing fetch script.scorekit doctorself-check at image build time; entrypoint is the CLI. HTTP gateways stay outside the image, owned by deployers.build forest.yamlproduces a seamless loop;docker run -i scorekit mcpcompletes the MCP handshake.Docs
--jsonerror object, schema exports), Python/Node subprocess recipes, built-in MCP usage, Docker deployment.docs/roadmap.md: M9 milestone, capability-list entries, acceptance-matrix row formcp(happy + failure path), audit outcome recorded (embedded HTTP server stays REJECTED;scorekit-corelib crate stays on HOLD pending a real consumer).CI
Acceptance matrix compliance
mcpis a new tier-1 feature and registers per rule 5:tests/cli.rs::mcp_initialize_lists_tools_and_validates_scene(happy path) andmcp_tool_failure_passes_structured_error_through(failure path: structured error passthrough, unknown tool → -32602, unknown method → -32601).Validation
cargo fmt+cargo clippy --all-targetsclean