spot.mootoo.co
A WebMCP-native workout tracker: you log the sets, an agent in the same browser reshapes what is left. Sixteen page-scoped tools on document.modelContext, one live session, one set of rules.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 9 · Act 9 · Transact 0 · Score: Not yet scored
Tool inspector
edit_active_workout
Modify the workout currently being performed. Reads canonical live state before mutation; pass `expected_revision` from get_active_workout. Completed sets are preserved unless explicitly correcting logged data. Exercise additions and replacements must satisfy current equipment and training constraints; use search_exercises first. Ops apply in order and each is accepted or rejected on its own — the response lists both. A stale_revision answer means someone logged a set while you were thinking: re-read with get_active_workout and retry. Not for finished sessions.
Page: /gym
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
expected_revision |
integer | no | The `revision` from your most recent get_active_workout. Always pass it. |
ops |
array | yes | Ordered edits to apply. |
Raw JSON schema
{
"type": "object",
"properties": {
"expected_revision": {
"type": "integer",
"description": "The `revision` from your most recent get_active_workout. Always pass it."
},
"ops": {
"type": "array",
"items": {
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"add_exercise",
"remove_exercise",
"replace_exercise",
"reorder",
"set_scheme",
"set_weight",
"set_warmup_sets",
"set_rest",
"set_superset",
"clear_superset",
"set_notes",
"rename",
"restore_template_weights"
],
"description": "Which change to make."
},
"exercise_name": {
"type": "string",
"description": "The exercise in the CURRENT workout this op acts on (case-insensitive)."
},
"replacement_exercise_name": {
"type": "string",
"description": "replace_exercise: the movement to swap in. Must satisfy current constraints and equipment."
},
"exercise_names": {
"type": "array",
"items": {
"type": "string"
},
"description": "set_superset: every current exercise to put in one group (at least two)."
},
"to": {
"type": "string",
"enum": [
"top",
"bottom"
],
"description": "reorder: destination shortcut."
},
"to_position": {
"type": "integer",
"description": "add_exercise/reorder: 1-based destination slot."
},
"sets": {
"type": "integer",
"description": "set_scheme: absolute WORKING-set count. Warm-ups are excluded and preserved."
},
"reps": {
"type": "integer",
"description": "set_scheme: reps for incomplete working sets."
},
"sets_delta": {
"type": "integer",
"description": "set_scheme: relative working-set change, e.g. -1."
},
"weight": {
"type": "number",
"description": "set_weight: load for the target set(s)."
},
"weight_unit": {
"type": "string",
"enum": [
"lb",
"kg"
]
},
"warmup_sets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"weight": {
"type": "number",
"description": "Exact warm-up load."
},
"weight_unit": {
"type": "string",
"enum": [
"lb",
"kg"
]
},
"reps": {
"type": "integer",
"description": "Exact warm-up reps."
},
"duration_s": {
"type": "integer",
"description": "Exact warm-up hold in seconds."
},
"rpe": {
"type": "number"
},
"rest_seconds": {
"type": "integer",
"description": "Rest after this exact warm-up set."
},
"side": {
"type": "string",
"enum": [
"left",
"right"
]
}
},
"additionalProperties": false
},
"description": "set_warmup_sets: the exact ordered warm-up ramp. Pass [] to clear incomplete warm-ups. Completed warm-ups must be repeated unchanged."
},
"set_number": {
"type": "integer",
"description": "set_weight/set_rest: 1-based set. Omit to apply to all incomplete working sets."
},
"apply_to_completed": {
"type": "boolean",
"description": "Default false. True ONLY when explicitly correcting data that was already logged — it rewrites performed values."
},
"rest_seconds": {
"type": "integer",
"description": "set_rest: rest after each set of this exercise."
},
"notes": {
"type": "string",
"description": "set_notes: this session's cue for the exercise. Empty clears it."
},
"workout_name": {
"type": "string",
"description": "rename: the new session name."
}
},
"required": [
"op"
],
"additionalProperties": false
},
"description": "Ordered edits to apply."
}
},
"required": [
"ops"
],
"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