Development notes
Letting an AI see what it wrote
Giving a model tools to edit a score is the easy half. The half that matters is letting it look at the result.
September 19, 2026
Editing is the easy half
Tonograph is an MCP server, so an AI client running on the same Mac can work on the score you have open. Reading it, adding a bar, setting a fret, applying an articulation, undoing — all of that is a matter of exposing the operations the app already has.
We got that far and found that it was not enough, for a reason that is obvious in hindsight.
When a model calls a tool and the tool answers “done”, the model has learned exactly one thing: that the call was accepted. It has not learned whether the bar now reads the way a musician would expect. Notation is a visual language with its own rules about voices, stems, beams and how much fits in a bar, and a change can be perfectly valid as data and still come out wrong on the page. A model with only tool results to go on is writing with its eyes closed and being told, after each stroke, that the pen moved.
So it can ask to look
The fix was to let the model request a picture. It names a range of bars, and the app renders exactly that range and hands back the image — the same engraving that would go to the screen or to a PDF.
This changes how a session actually goes. The model proposes a turnaround, writes it, asks for those four bars, and sees that the second voice collided with the first — then fixes it before telling you anything. Verification stops being something you do on its behalf.
It also means the model can be asked to look at something you are unhappy with, in the place where it lives, instead of being told about it in prose.
Who is in charge
The second thing we learned is that capability without a brake is not a feature anyone wants running against work they care about.
Approval mode shows every change that touches the document as a diff, and waits for your yes. Undo and redo are included in that, deliberately: an assistant that can quietly roll back an hour of your work is worse than one that cannot edit at all. Saving and exporting are in there too, because those write to your disk.
The rest of the boundaries are the dull kind, which is how they should be. The server does not start until you switch it on. It listens only on your own machine, never on the network. Every request has to carry a token the app generated, and the app tells you plainly in Settings what that token is and how to give it to a client.
The score, not a copy
One decision underlies all of this: the model works on the document you have open, not an export of it.
That is why its edits land in the same undo history as your own, why you can watch the notation change while it works, and why approval mode can show you a diff at all. It also means the model is subject to the same rules you are — the same validation, the same refusal to write a bar that does not add up.
It turns out that an AI collaborator is much easier to trust when it is standing in the same room as you, looking at the same page.