Skip to main content
The client_ai_workout_v2 module lets a client’s AI assistant read the client’s assigned non-WOD Workout V2 plans, days, exercises, and history, and start, log, and complete the client’s own workout sessions. Client AI tools are subject-bound: every call resolves to the authenticated client (subjectClientId); no target client can be supplied, and WOD or group sessions are handled by the client_ai_wod module or the client app. The module is available only when the company MCP integration feature is enabled, client AI access is enabled for the client-company relationship, the company’s client MCP policy allows the module (write tools additionally require the company policy to allow them), and the client has granted health data consent.

Available Tools

client_ai_list_my_workout_plans

List bounded non-WOD Workout V2 plans assigned to the authenticated client. No target client can be supplied.
  • Type: Read-only
  • Important Input Fields:
    • status (string, optional): Plan status filter, one of Active, Inactive, Draft.
    • language (string, optional): Content language, one of en, nl.
    • page (integer, optional): Page number, starting at 1.
    • limit (integer, optional): Page size, max 50.

client_ai_get_my_workout_plan

Get one non-WOD Workout V2 plan assigned to the authenticated client, including bounded day summaries.
  • Type: Read-only
  • Important Input Fields:
    • planId (string, required): The unique plan ID (24-character ObjectId).
    • language (string, optional): Content language, one of en, nl.

client_ai_get_my_workout_day

Get one visible day from a non-WOD Workout V2 plan assigned to the authenticated client.
  • Type: Read-only
  • Important Input Fields:
    • planId (string, required): The unique plan ID (24-character ObjectId).
    • planMomentId (string, required): The unique ID of the plan day/moment (24-character ObjectId).
    • language (string, optional): Content language, one of en, nl.

client_ai_get_workout_exercise

Get an allowlisted exercise visible to the authenticated client, including that client’s own exercise when applicable.
  • Type: Read-only
  • Important Input Fields:
    • exerciseId (string, required): The unique exercise ID (24-character ObjectId).
    • language (string, optional): Content language, one of en, nl.

client_ai_get_my_exercise_history

Get bounded completed non-WOD performance history for one exercise and the authenticated client.
  • Type: Read-only
  • Important Input Fields:
    • exerciseId (string, required): The unique exercise ID (24-character ObjectId).
    • dateFrom (string, optional): Start date filter in ISO 8601 format. Maximum window is 366 days.
    • dateTo (string, optional): End date filter in ISO 8601 format.
    • language (string, optional): Content language, one of en, nl.
    • limit (integer, optional): Maximum number of history records, max 50.

client_ai_list_my_workout_sessions

List bounded non-WOD, non-group Workout V2 sessions for the authenticated client.
  • Type: Read-only
  • Important Input Fields:
    • status (string, optional): Session status filter, one of planned, in_progress, paused, completed, stopped, cancelled.
    • dateFrom (string, optional): Start date filter in ISO 8601 format. Maximum window is 366 days.
    • dateTo (string, optional): End date filter in ISO 8601 format.
    • page (integer, optional): Page number, starting at 1.
    • limit (integer, optional): Page size, max 50.

client_ai_get_my_workout_session

Get one non-WOD, non-group Workout V2 session and up to 100 allowlisted performance records for the authenticated client.
  • Type: Read-only
  • Important Input Fields:
    • sessionId (string, required): The unique session ID (24-character ObjectId).

client_ai_get_my_workout_machine_preset

Get effective company and system setup fields for an exercise. Coach-private presets are excluded.
  • Type: Read-only
  • Important Input Fields:
    • exerciseId (string, required): The unique exercise ID (24-character ObjectId).

client_ai_get_my_workout_equipment_profile

Get the authenticated client’s bounded home-equipment profile and visible catalog without exposing company equipment mutation.
  • Type: Read-only
  • Important Input Fields: None.

client_ai_start_or_resume_my_workout_session Write

Idempotently start or resume the authenticated client’s assigned plan day or freestyle Workout V2 session. WOD and group sessions are rejected.
  • Type: Write
  • Important Input Fields:
    • planId (string, optional): Plan ID (24-character ObjectId) to start from. Omit both plan fields for a freestyle session.
    • planMomentId (string, optional): Plan day/moment ID (24-character ObjectId) to start.
    • language (string, optional): Content language, one of en, nl.

client_ai_log_my_workout_performance Write

Idempotently upsert allowlisted sets and client-owned setup values in the authenticated client’s active non-WOD, non-group session.
  • Type: Write
  • Important Input Fields:
    • sessionId (string, required): The active session ID (24-character ObjectId).
    • exerciseId (string, required): The exercise ID (24-character ObjectId) the sets belong to.
    • sets (array, required): 1-50 set objects. Each set has a required setNumber (integer, 1-100) plus optional setType (one of N, W, D, F — normal, warm-up, drop, failure), weight (number), reps (number or string), timeSeconds (number), distanceMeters (number), restSeconds (number), rpe (number, 0-10), completed (boolean), and notes (string, max 1000 chars).
    • performanceId (string, optional): Existing performance record ID (24-character ObjectId) to update.
    • planExerciseId (string, optional): Plan exercise ID (24-character ObjectId) linking the performance to the plan day.
    • notes (string, optional): Notes on the exercise performance. Max 2000 chars.
    • restSeconds (number, optional): Rest time between sets in seconds.
    • isCompleted (boolean, optional): Mark the exercise performance as completed.
    • setupValues (array, optional): Up to 8 { key, value } machine setup values used in this session (value is a string, number, or boolean).
    • nextSetupValues (array, optional): Up to 8 { key, value } setup values to remember for next time.
    • setupSettingsEnabled (boolean, optional): Whether machine setup tracking is enabled for this exercise.
    • showSetRpe (boolean, optional): Whether RPE is shown per set for this exercise.

client_ai_complete_my_workout_session Write

Idempotently complete the authenticated client’s active non-WOD, non-group session through the existing completion and XP core.
  • Type: Write
  • Important Input Fields:
    • sessionId (string, required): The active session ID (24-character ObjectId).
    • notes (string, optional): Notes on the completed session. Max 2000 chars.

Natural Language Examples

  • “What’s on my training plan for today?”
  • “Start my push day workout.”
  • “Log 3 sets of bench press: 8 reps at 80 kg, RPE 8.”
  • “What was my heaviest deadlift set in the last three months?”

JSON-RPC Call Example (client_ai_log_my_workout_performance)