API & MCP
Everything a person can do on Focus Room Interval Timer Planner, a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://focusroomintervalplan.usefulweb.app/api/v1/calculate– run Focus Room Interval Timer PlannerGET https://focusroomintervalplan.usefulweb.app/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Focus Room Interval Timer Planner
Plans an interval workout — Tabata (20 s / 10 s × 8), HIIT, EMOM or your own work and rest lengths with rounds, sets, set breaks, warm-up and cool-down — and lists every phase with its start time. It also renders a cue track: a mono WAV with a bright chime when work starts, a soft tone for rest, 3-2-1 beeps before each round, a halfway signal and a finish chime, to play on any speaker. The Focus Room app runs the same plan live and downloads the same file.
| Field | Type | Default | Description |
|---|---|---|---|
preset | select (tabata, hiit, emom, custom) | "tabata" | Plan |
rounds | integer | 8 | Rounds per set |
sets | integer | 1 | Sets |
work | integer | 30 | Work (custom; EMOM: work inside each minute) |
rest | integer | 15 | Rest (custom) |
setRest | integer | 60 | Break between sets (custom) |
warmup | integer | 0 | Warm-up (custom) |
cooldown | integer | 0 | Cool-down (custom) |
countIn | boolean | true | 3-2-1 beeps before each round |
wav | boolean | true | Render the cue track (WAV). Up to 20 minutes. |
sampleRate | select (16000, 22050, 44100) | "16000" | Sample rate of the cue track |
Example request
Classic Tabata: 8 rounds of 20 s work and 10 s rest
curl -X POST https://focusroomintervalplan.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"preset":"tabata","rounds":8,"sets":1}'
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://focusroomintervalplan.usefulweb.app/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
focusroom_interval_plan - Local stdio connector:
node src/mcp-stdio.ts --tool=focusroom-interval-plan
{
"mcpServers": {
"focusroom-interval-plan": { "type": "http", "url": "https://focusroomintervalplan.usefulweb.app/mcp" }
}
}