Upfit Plan Builder

Read-only bodyweight workout builder and exercise form cues from the Upfit iPhone app.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~764Tokens (tool definitions)
~891 BTypical response size
Moderate attention impact (0.60% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "upfit": {
      "url": "https://www.upfit.mobile/mcp"
    }
  }
}

Remote endpoints

https://www.upfit.mobile/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢build_home_workout(level, seed)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "level": {
      "type": "string",
      "enum": [
        "beginner",
        "intermediate",
        "advanced"
      ],
      "description": "Training experience: beginner, intermediate or advanced."
    },
    "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."
    }
  },
  "required": [
    "level"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_exercise_form_cues(exercise)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "exercise": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Exercise name, such as 'squat', 'jumping jacks' or 'low plank hold'."
    }
  },
  "required": [
    "exercise"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_exercises(min_difficulty, max_difficulty)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "min_difficulty": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "description": "Only exercises at or above this difficulty."
    },
    "max_difficulty": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "description": "Only exercises at or below this difficulty."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢about_upfit

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools