A Model Context Protocol server for Plainsong: many agents, one score.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"plainsong-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# plainsong-mcp <p align="center"> <img src="assets/images/hero.jpg" alt="Agents composing — the MCP seam between notation and sound" width="640"> </p> A Model Context Protocol server for [Plainsong](https://github.com/SuperInstance/plainsong), so any agent can read, write and compile music notation — and so several agents can work on one score at the same time without overwriting each other. ```bash plainsong-mcp # JSON-RPC over stdio, what most clients expect plainsong-mcp --http # loopback HTTP, for remote and multi-agent setups plainsong-mcp --list-tools # what it exposes ``` ## Install ```bash pip install git+https://github.com/SuperInstance/plainsong-mcp ``` That brings in the compiler as well. Neither has any other dependency: the protocol, both transports, the session store and the compiler itself are written against the standard library. Python 3.10 or newer. The compiler comes from PyPI as `plainsong>=1.4.0`. 1.1.0 is the first release carrying `plainsong.features`, the per-bar analysis this package re-exports rather than duplicating; 1.4.0 is the first carrying `plainsong.runtime.localhost`, the loopback check behind the same re-export, so 1.4.0 is now the binding floor. Either way the requirement is real: below it the install succeeds and the import fails. ## Point a client at it For a client that launches servers over stdio, the usual shape is: ```json { "mcpServers": { "plainsong": { "command": "plainsong-mcp" } } } ``` Then ask it for music. The server exposes 27 tools, which is everything the `plainsong` CLI can do — write and validate notation, compile to MIDI and audio, transpose, search a library of several thousand pieces, analyse what each listener on a stage actually hears, and probe what the host machine can render. ## Many agents, one score The reason this exists. A session gives every agent a voice of its own: ``` ensemble_open name a session, set key, tempo and metre ensemble…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.