BROWSER USE

- Browser Use Agents: give Browser Use a task and receive completed work. API V4 is current for new integrations.
- Browser Infrastructure: connect your agent or automation to managed browsers through SDK, REST, or CDP. Starts at $0.02/browser-hour.
- Developer tools: Open Source, Browser Harness, SDK, and MCP support the two products above.

[Developer Index](https://browser-use.com/index.md)
[Product Map](https://browser-use.com/llms.txt)
[Full Product Context](https://browser-use.com/llms-full.txt)
[Pricing](https://browser-use.com/pricing.md)
[Cloud Docs](https://docs.browser-use.com/cloud/quickstart)
[Open Source Docs](https://docs.browser-use.com/open-source/introduction)

---

# Tonic: 37 WebMCP tools for AI agents

![](https://www.google.com/s2/favicons?domain=tonic.stranica.workers.dev&sz=96)

Education & health · tonic.stranica.workers.dev

## Tonic

Piano learning app using your computer or MIDI keyboard. Agents act as tutor: show keys, play references, run exercises and track progress.

[Open tonic.stranica.workers.dev](https://tonic.stranica.workers.dev/)

## Ask an agent to

-   Teach me the C major scale and show it on the keyboard
-   Start a rhythm exercise at 80 bpm and grade my attempt
-   Show my practice log and pick up where I left off

## 37 tools

-   `add_song`
    
    Add a song to the student's library so it gets Listen, Practice, sections and progress like any other song. Write the melody in Tonic notation: note names with octave (C4, F#4, Bb3) and beats after a colon (E4:0.5…
    
    title: string, origin: string?, genre: string?, moods: array?, difficulty: integer?, key: string?, bpm: number?, beats\_per\_bar: integer?, … (list cut; the site may define more)
    
-   `clear_keyboard`
    
    Remove highlights and captions from the on-screen piano and stop any reference playback.
    
-   `close_result`
    
    Close the result or "listen" card that is showing and return to the page underneath. Same as the student pressing Done.
    
-   `complete_plan_item`
    
    Mark a practice-plan item done (or not done) by its id or exact title.
    
    item\_id: string?, title: string?, done: boolean?
    
-   `connect_midi`
    
    Try to connect a MIDI keyboard or digital piano. Browsers only grant MIDI access from a real click, so this may fail; if it does, ask the student to press "Connect a MIDI keyboard" under the piano.
    
-   `export_progress`read-only
    
    Everything stored in this browser (attempts, plan, log, settings, added songs) as JSON, the same as the Export button. Use it to move progress to another browser with import\_progress.
    
-   `get_app_state`read-only
    
    Current UI state: mode, running exercise and progress, latest result, tempo, input instrument and highlighted keys. Use get\_started for the first call; use this whenever the page state is unclear.
    
-   `get_attempt_results`read-only
    
    Full results of an attempt: notes hit and missed, timing offsets in milliseconds with early/late tendency, and per-prompt answers for find\_note and ear\_training. Defaults to the latest attempt. Call it after the…
    
    attempt\_id: string?
    
-   `get_input_status`read-only
    
    Which instrument the student is playing on: computer keyboard or a connected MIDI keyboard / digital piano, with playable range and polyphony. Adapt exercises to it: keep computer-keyboard drills within the range and…
    
-   `get_keyboard_layout`read-only
    
    Which computer keys play which notes. The student plays the piano on their typing keyboard: home row A S D F G H J K L ; ' are the white keys, W E T Y U O P the black keys, Z and X shift the octave. Use this to give…
    
-   `get_learning_paths`read-only
    
    The five learning paths the app is organised around (find your way around the keys, learn chords, scales and rhythm, train your ear, play a song) with their steps, which are done, and the next step's ready-to-use…
    
-   `get_practice_log`read-onlyuntrusted content
    
    Past practice sessions and recent attempts with scores, newest first. Use it to pick up where the student left off and to notice trends.
    
    limit: integer?
    
-   `get_practice_plan`read-only
    
    The practice plan shown on the Practice screen: each item with its id, whether it is done, and its exercise spec, which you can pass to start\_exercise unchanged.
    
-   `get_recent_notes`read-only
    
    What the student has been playing freely, outside a drill: the notes held right now and what chord or interval they make, the last notes with timing, and the phrase since the last pause. Use it for "what chord is…
    
    seconds: number?
    
-   `get_song`read-only
    
    Everything about one song: each section with length, note range, whether it fits the computer keyboard (and the octave shift it needs), the student's best score, its distinct notes and computer keys, plus ready-made…
    
    song\_id: string
    
-   `get_song_progress`read-only
    
    Best score per section and overall mastery for one song, or for every song the student has tried. A song counts as learned when every section scores 80 or more.
    
    song\_id: string?
    
-   `get_started`read-only
    
    Call this first when teaching. Returns a small session brief with the teaching rules and exactly one recommended next tool call, including ready-to-use input.
    
-   `get_teaching_guide`read-only
    
    How to teach with this page: nine short rules on order, pacing by score, wording for beginners, songs, free play and saving. Read once per session.
    
-   `import_progress`
    
    Replace what is stored in this browser with a JSON export from export\_progress or the Export button. Shows a confirmation card first.
    
    json: object
    
-   `load_sample_progress`
    
    Fill the app with a sample plan and practice log, for trying things out. Same as the "Load sample" link. Shows a confirmation card first.
    
-   `log_practice_session`
    
    Save a practice session to the student's log with a short summary and optional tutor notes. Attaches recent attempts (default: everything since the last logged session). Shows a confirmation card first.
    
    summary: string, notes: string?, attempt\_ids: array?
    
-   `play_back_attempt`
    
    Play back what the student played in an attempt, at the timing they played it, keys lighting up. Same as the "Hear yours" button. Defaults to the latest attempt.
    
    attempt\_id: string?
    
-   `play_reference`
    
    Play something for the student to hear, lighting up keys as it plays: a scale, a chord progression, a melody or a rhythm. Same parameters as start\_exercise. Returns right away; playback runs for \`duration\_seconds\`.
    
    kind: string, name: string?, bpm: number?, root: string?, mode: string?, octaves: integer?, direction: string?, note\_value: string?, … (list cut; the site may define more)
    
-   `remove_song`
    
    Remove a song the agent or the student added earlier. Built-in songs cannot be removed. Shows a confirmation card first.
    
    song\_id: string
    
-   `replay_prompt`
    
    In an ear-training drill, play the prompt again for the student. Same as the "Play it again" button.
    
-   `reset_progress`
    
    Erase the plan, log, attempts, added songs and settings from this browser. Same as the Reset link. Shows a confirmation card first.
    
-   `save_recording_as_song`
    
    Turn what the student just played freely into a song in their library. Takes the phrase since the last pause (or the last N seconds), snaps it to a beat grid, writes it in Tonic notation and shows a confirmation card.…
    
    title: string, bpm: number?, beats\_per\_bar: integer?, grid: string?, seconds: number?, key: string?, genre: string?, moods: array?, … (list cut; the site may define more)
    
-   `say`
    
    Speak one or two short sentences out loud through the page, in the browser voice. Use it for coaching while the student has both hands on the keys and eyes on the keyboard, e.g. "Good. Now a little slower." Keep it…
    
    text: string
    
-   `search_songs`read-only
    
    Browse the song library: 20 public-domain pieces (kids, folk, holiday, hymn, classical) rated 1–5. Filter by text, genre, mood, difficulty, hands, and whether it fits the computer keyboard. Set for\_student true to…
    
    query: string?, genre: string?, mood: string?, max\_difficulty: integer?, min\_difficulty: integer?, hands: string?, fits\_computer\_keyboard: boolean?, for\_student: boolean?, … (list cut; the site may define more)
    
-   `set_metronome`
    
    Set the practice tempo and switch the free-running metronome on or off. Exercises use their own bpm and count in one bar automatically.
    
    bpm: number?, on: boolean?
    
-   `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.
    
    title: string, items: array
    
-   `show_on_keyboard`
    
    Light up keys on the on-screen piano with a caption, and optionally sound them. Give notes, a chord symbol, or a scale. Good for "this is C major", "here is a G7 chord", or pointing out a single key.
    
    notes: array?, chord: string?, scale\_root: string?, scale\_mode: string?, caption: string?, play: boolean?
    
-   `show_screen`
    
    Move the page to a screen: home (the learning paths), a learning path by id, songs (optionally with a song expanded), or practice (plan and log). Closes a finished result if it is showing. Use this instead of clicking…
    
    screen: string, path\_id: string?, song\_id: string?
    
-   `start_exercise`
    
    Start an exercise on screen for the student to play on their computer keyboard or MIDI keyboard. Timed kinds (scale, chords, melody, rhythm) count in one bar with clicks, light up each target key in time, and end on…
    
    kind: string, name: string?, bpm: number?, root: string?, mode: string?, octaves: integer?, direction: string?, note\_value: string?, … (list cut; the site may define more)
    
-   `update_settings`
    
    Toggle the app's sound, the key-letter labels on the on-screen piano, or shift which octave the computer keyboard plays (-2 to 2; 0 means A = C4).
    
    sound: boolean?, show\_key\_labels: boolean?, octave\_shift: integer?
    
-   `wait_for_notes`read-only
    
    Listens for the next thing the student plays outside a drill (a note, a chord, or a short burst) and returns it named, e.g. "C major" or "a perfect 5th". Use it for "play me a C chord" checks and "what is this?"…
    
    timeout\_seconds: number?
    
-   `wait_for_result`read-only
    
    Waits until the running exercise finishes, then returns its full results with coaching, so you never need to poll or ask the student to say "done". Call it right after start\_exercise. The cap defaults to the time the…
    
    timeout\_seconds: number?
    

Tools

37

Registered with

JavaScript

Scan finished

Oct 19, 2026

Tool names and descriptions are what tonic.stranica.workers.dev/ registered when we loaded it in Chrome 154 on Browser Use Cloud. The summary and the “ask an agent” lines are AI-written from them. To call the tools yourself, see [Chrome’s WebMCP docs](https://developer.chrome.com/docs/ai/webmcp). [How we found it](https://browser-use.com/webmcp#method).

## More education & health sites

-   [![](https://www.google.com/s2/favicons?domain=gla.ac.uk&sz=64)University of Glasgow4 tools · gla.ac.uk](https://browser-use.com/webmcp/gla.ac.uk)
-   [![](https://www.google.com/s2/favicons?domain=dc.library.northwestern.edu&sz=64)Northwestern University Libraries Digital Collections2 tools · dc.library.northwestern.edu](https://browser-use.com/webmcp/dc.library.northwestern.edu)
-   [![](https://www.google.com/s2/favicons?domain=qu.edu&sz=64)Quinnipiac University12 tools · qu.edu](https://browser-use.com/webmcp/qu.edu)
-   [![](https://www.google.com/s2/favicons?domain=unej.ac.id&sz=64)Universitas Jember5 tools · unej.ac.id](https://browser-use.com/webmcp/unej.ac.id)
-   [![](https://www.google.com/s2/favicons?domain=querobolsa.com.br&sz=64)Quero Bolsa12 tools · querobolsa.com.br](https://browser-use.com/webmcp/querobolsa.com.br)
-   [![](https://www.google.com/s2/favicons?domain=addictioncenter.com&sz=64)Addiction Center2 tools · addictioncenter.com](https://browser-use.com/webmcp/addictioncenter.com)

[All 738 education & health sites →](https://browser-use.com/webmcp/education-health)
