Read-only bodyweight workout builder and exercise form cues from the Upfit iPhone app.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user asks what Upfit is, how it works, or what it cannot check. Returns a short description and links to Upfit's own explanation pages.
This tool takes no arguments.
Use this when the user asks what Upfit is, how it works, or what it cannot check. Returns a short description and links to Upfit's own explanation pages.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Use this when the user wants a bodyweight, no-equipment home workout session. Builds a 15-move session the way the Upfit iPhone app builds one: 2 warm-ups, 10 main moves balanced around the chosen level, then 3 harder finishers. Returns each move's name, phase, set length and rest. Read-only; collects no personal data and needs no body measurements. The same seed returns the same session.
| Argument | Type | Description |
|---|---|---|
| seed | any | Optional. Any word or number; the same seed rebuilds the same session. Leave out for a fresh random one. |
| level* | string | Training experience: beginner, intermediate or advanced. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"level"
],
"properties": {
"seed": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "number"
}
],
"description": "Optional. Any word or number; the same seed rebuilds the same session. Leave out for a fresh random one."
},
"level": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string",
"description": "Training experience: beginner, intermediate or advanced."
}
},
"additionalProperties": false
}Use this when the user asks what Upfit's coach says or checks for a specific bodyweight exercise (for example 'squat' or 'low plank hold'). Returns the app's real spoken coach lines for that exercise and, for exercises that have an Upfit page, what the camera checks and does not check. If the exercise is unknown it says so and lists close matches. It never invents form advice.
| Argument | Type | Description |
|---|---|---|
| exercise* | string | Exercise name, such as 'squat', 'jumping jacks' or 'low plank hold'. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exercise"
],
"properties": {
"exercise": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Exercise name, such as 'squat', 'jumping jacks' or 'low plank hold'."
}
},
"additionalProperties": false
}Use this when the user wants to see which bodyweight exercises Upfit can run. Returns the enabled exercises with Upfit's own difficulty rating (1 easiest to 9 hardest) and, where Upfit documents it, how you stand to the phone (facing it, side-on to it, or on the floor). Optional difficulty filters.
| Argument | Type | Description |
|---|---|---|
| max_difficulty | integer | Only exercises at or below this difficulty. |
| min_difficulty | integer | Only exercises at or above this difficulty. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"max_difficulty": {
"type": "integer",
"maximum": 9,
"minimum": 1,
"description": "Only exercises at or below this difficulty."
},
"min_difficulty": {
"type": "integer",
"maximum": 9,
"minimum": 1,
"description": "Only exercises at or above this difficulty."
}
},
"additionalProperties": false
}