tonic.stranica.workers.dev
Learn piano fundamentals on your computer keyboard or a MIDI piano, with your own AI agent as the tutor. Built on WebMCP. Nothing you play leaves your browser.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 13 · Act 24 · Transact 0 · Score: Not yet scored
Tool inspector
set_practice_plan
Replace the student's practice plan shown in the app. Each item can carry an exercise spec so the student can start it with one click. Shows a confirmation card first.
Page: /
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
title |
string | yes | e.g. "This week: C major and first chords" |
items |
array | yes | — |
Raw JSON schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "e.g. \"This week: C major and first chords\""
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"detail": {
"type": "string",
"description": "Why, or what to focus on."
},
"exercise": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"scale",
"chords",
"melody",
"rhythm",
"find_note",
"ear_training",
"song"
],
"description": "scale, chords, melody and rhythm are timed with a metronome. find_note and ear_training are prompt-by-prompt."
},
"name": {
"type": "string",
"description": "Short title shown to the student."
},
"bpm": {
"type": "number",
"description": "Tempo 30–240. Beginners: 50–70."
},
"root": {
"type": "string",
"description": "scale: root like \"C4\" or \"F#3\". ear_training: reference note (default C4)."
},
"mode": {
"type": "string",
"description": "scale: major, minor, harmonic_minor, melodic_minor, major_pentatonic, minor_pentatonic, blues, dorian, mixolydian, lydian, phrygian, chromatic."
},
"octaves": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"description": "scale: default 1."
},
"direction": {
"type": "string",
"enum": [
"up",
"down",
"up_down"
],
"description": "scale: default up_down."
},
"note_value": {
"type": "string",
"enum": [
"quarter",
"eighth",
"half"
],
"description": "scale: beats per note, default quarter."
},
"progression": {
"type": "array",
"items": {
"type": "string"
},
"description": "chords: chord symbols (C, Am, G7, Fmaj7, C/E) or roman numerals (I, ii, V7, vii°). Numerals need `key`."
},
"key": {
"type": "string",
"description": "chords: key for roman numerals, e.g. \"G\" or \"A minor\"."
},
"beats_per_chord": {
"type": "number",
"description": "chords: default 4."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "melody: note names in order. rhythm: the single note to tap (default C4). find_note: exact notes to ask for."
},
"rhythm": {
"type": "array",
"items": {
"type": "number"
},
"description": "melody / rhythm: beats per note, e.g. [1, 1, 0.5, 0.5, 2]."
},
"melody": {
"type": "string",
"description": "melody: built-in tune id: ode_to_joy, twinkle, mary."
},
"count": {
"type": "integer",
"description": "find_note / ear_training: number of prompts, default 5."
},
"show_hints": {
"type": "boolean",
"description": "find_note: light up the answer key."
},
"intervals": {
"type": "array",
"items": {
"type": "string"
},
"description": "ear_training: intervals to draw from: m2 M2 m3 M3 P4 TT P5 m6 M6 m7 M7 P8."
},
"low": {
"type": "string",
"description": "find_note: lowest note to ask for (default C4)."
},
"high": {
"type": "string",
"description": "find_note: highest note to ask for (default B4)."
},
"include_black_keys": {
"type": "boolean",
"description": "find_note: also ask for sharps and flats. Default false (white keys only)."
},
"song_id": {
"type": "string",
"description": "song: id from search_songs, e.g. \"fur_elise\"."
},
"section": {
"type": "string",
"description": "song: section id from get_song, or \"all\" for the whole piece. Default: first section."
},
"hands": {
"type": "string",
"enum": [
"right",
"left",
"both"
],
"description": "song: default right. \"both\" only where get_song shows a left-hand part."
},
"tempo_percent": {
"type": "number",
"minimum": 30,
"maximum": 150,
"description": "song: percent of the song tempo. Start learners at 60–70."
},
"path_step": {
"type": "string",
"description": "Learning-path step id from get_learning_paths. Pass path exercises unchanged so progress is tracked."
}
},
"required": [
"kind"
],
"additionalProperties": false
}
},
"required": [
"title"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"items"
],
"additionalProperties": false
}
Similar websites
pocketgull.app
Pocket Gull is a real-time clinical AI consult engine powered by Google Gemini. Features 10D multi-paradigm strategy, FHIR R4 export & 3D spatial anatomy.
webmcp-six-lac.vercel.app
AI Navigation Layer: Model Context Protocol (MCP) Semantic DOM integration for intelligent, safe, and observable web navigation.
ghqsandbox.net
Interactive math and physics tools an AI agent can drive directly through WebMCP.
app.formative.com
Formative classroom assessment and learning platform