API & MCP
Everything a person can do on Practice Log Report (Minutes, Streaks & Tempo Progress), a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://tonegridpracticereport.usefulweb.app/api/v1/calculate– run Practice Log Report (Minutes, Streaks & Tempo Progress)GET https://tonegridpracticereport.usefulweb.app/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Practice Log Report (Minutes, Streaks & Tempo Progress)
Paste a practice log as CSV (date, minutes, piece, tempo, target) or the journal file exported from the Tonegrid app, and get your total and weekly practice time, active days and streak, a calendar heatmap, and for every piece the tempo you started at, the latest and best tempo and how close you are to the target.
| Field | Type | Default | Description |
|---|---|---|---|
journal | textarea | "date,minutes,piece,bpm,target_bpm,note\n2026-10-05,25,Bach Prelude in C,72,96,h | Practice log (CSV or Tonegrid journal JSON). CSV header with at least date (YYYY-MM-DD) and minutes; optional piece, bpm, target_bpm and note. Comma, semicolon or tab separated. |
today | date | — | Report date (optional). Last day of the report. Empty = the date of the latest session. |
weeks | integer | 12 | Weeks to show |
Example request
Five weeks of piano practice on two pieces
curl -X POST https://tonegridpracticereport.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"journal":"date,minutes,piece,bpm,target_bpm,note\n2026-10-05,25,Bach Prelude in C,72,96,hands separately\n2026-10-06,20,Scales,100,120,\n2026-10-08,30,Bach Prelude in C,76,96,\n2026-10-11,15,Scales,104,120,\n2026-10-13,35,Bach Prelude in C,80,96,left hand cleaner\n2026-10-17,20,Scales,108,120,\n2026-10-20,40,Bach Prelude in C,84,96,\n2026-10-22,25,Scales,112,120,\n2026-10-27,30,Bach Prelude in C,88,96,\n2026-10-29,20,Scales,112,120,\n2026-11-02,45,Bach Prelude in C,90,96,run-through\n2026-11-04,25,Scales,116,120,\n2026-11-08,30,Bach Prelude in C,92,96,","weeks":12}'
Every result contains
inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.
MCP (Model Context Protocol)
- Streamable HTTP endpoint:
https://tonegridpracticereport.usefulweb.app/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
tonegrid_practice_report - Local stdio connector:
node src/mcp-stdio.ts --tool=tonegrid-practice-report
{
"mcpServers": {
"tonegrid-practice-report": { "type": "http", "url": "https://tonegridpracticereport.usefulweb.app/mcp" }
}
}