DeveloperAPI Reference

API Reference

Complete documentation for all MCP tools available in arvo-mcp. Each tool includes parameters, return types, and usage examples.

Read Tools

Tools for retrieving data without modifying anything. Safe to use freely.

get_workouts

Retrieve workout history with optional filtering

READ

Parameters

limitnumberoptional- Max results (default: 20)
offsetnumberoptional- Pagination offset
from_datestringoptional- Start date (ISO 8601)
to_datestringoptional- End date (ISO 8601)

Returns

Array of workout objects with exercises and sets

Example

"Show me my workouts from last week"

get_workout_by_id

Get detailed info for a specific workout

READ

Parameters

workout_idstringrequired- Workout UUID

Returns

Complete workout object with all exercises, sets, and notes

Example

"Show me details of workout abc123"

get_personal_records

Retrieve all personal records (PRs)

READ

Parameters

exercise_idstringoptional- Filter by exercise
pr_typestringoptional- Type: 1rm, volume, reps

Returns

Array of PR objects with exercise, weight, date

Example

"What's my bench press PR?"

get_exercises

List all available exercises in the database

READ

Parameters

muscle_groupstringoptional- Filter by muscle group
equipmentstringoptional- Filter by equipment
searchstringoptional- Search term

Returns

Array of exercise objects with details

Example

"What exercises target the chest?"

get_exercise_history

Get performance history for a specific exercise

READ

Parameters

exercise_idstringrequired- Exercise UUID
limitnumberoptional- Max results

Returns

Array of historical sets with weights, reps, dates

Example

"Show my squat progress over time"

get_training_split

Get current training split/program

READ

Returns

Training split object with days and exercises

Example

"What's my current training split?"

get_profile

Get user profile information

READ

Returns

User profile with settings and preferences

Example

"Show my profile settings"

get_body_measurements

Retrieve body measurements history

READ

Parameters

measurement_typestringoptional- Type: weight, bodyfat, etc.
limitnumberoptional- Max results

Returns

Array of measurement objects with dates

Example

"How has my weight changed this month?"

get_workout_stats

Get aggregated workout statistics

READ

Parameters

periodstringoptional- week, month, year, all

Returns

Stats object with totals, averages, trends

Example

"How many workouts did I do this month?"

get_muscle_groups

List all muscle groups

READ

Returns

Array of muscle group names

Example

"What muscle groups can I track?"

get_equipment

List available equipment types

READ

Returns

Array of equipment names

Example

"What equipment options are available?"

search_exercises

Full-text search across exercises

READ

Parameters

querystringrequired- Search query
limitnumberoptional- Max results

Returns

Array of matching exercises

Example

"Find exercises similar to deadlift"

get_scheduled_workout

Get workout scheduled for a specific date

READ

Parameters

datestringoptional- Date (default: today)

Returns

Scheduled workout or null

Example

"What's my workout today?"

get_pr_history

Get PR progression over time

READ

Parameters

exercise_idstringrequired- Exercise UUID

Returns

Array of historical PRs with dates

Example

"Show my bench press PR history"

Write Tools

Tools that modify data. Require explicit confirmation.

log_workout

Log a complete workout session

WRITE

Parameters

namestringoptional- Workout name
datestringoptional- Date (default: now)
exercisesarrayrequired- Array of exercises with sets
notesstringoptional- Workout notes

Returns

Created workout object

Example

"Log today's push workout: bench 3x8@100kg, OHP 3x10@60kg"

log_exercise

Log sets for a single exercise

WRITE

Parameters

exercise_idstringrequired- Exercise UUID or name
setsarrayrequired- Array of {reps, weight, rpe}
workout_idstringoptional- Add to existing workout

Returns

Logged exercise with sets

Example

"Log 3 sets of 8 reps at 100kg for squats"

update_personal_record

Manually update a PR

WRITE

Parameters

exercise_idstringrequired- Exercise UUID
weightnumberrequired- PR weight in kg
repsnumberoptional- Reps (for rep PRs)
datestringoptional- PR date

Returns

Updated PR object

Example

"Update my deadlift PR to 200kg"

create_workout_plan

Generate a workout plan/template

WRITE

Parameters

namestringrequired- Plan name
typestringoptional- push, pull, legs, etc.
exercisesarrayrequired- Array of exercises

Returns

Created plan object

Example

"Create a push day workout with bench, OHP, and triceps"

update_training_split

Update the training split/schedule

WRITE

Parameters

daysarrayrequired- Array of day configurations

Returns

Updated split object

Example

"Change my split to push/pull/legs"

log_body_measurement

Log a body measurement

WRITE

Parameters

typestringrequired- weight, bodyfat, chest, etc.
valuenumberrequired- Measurement value
unitstringoptional- Unit (kg, cm, %)
datestringoptional- Date (default: now)

Returns

Logged measurement object

Example

"Log my weight as 85kg"

create_exercise

Create a custom exercise

WRITE

Parameters

namestringrequired- Exercise name
muscle_groupsarrayrequired- Target muscles
equipmentstringoptional- Required equipment

Returns

Created exercise object

Example

"Create a custom exercise called Cable Fly"

update_workout

Update an existing workout

WRITE

Parameters

workout_idstringrequired- Workout UUID
updatesobjectrequired- Fields to update

Returns

Updated workout object

Example

"Add notes to my last workout"

delete_workout

Delete a workout (requires confirmation)

WRITE

Parameters

workout_idstringrequired- Workout UUID

Returns

Deletion confirmation

Example

"Delete my workout from yesterday"

schedule_workout

Schedule a workout for a future date

WRITE

Parameters

datestringrequired- Target date
workout_plan_idstringoptional- Plan to schedule
exercisesarrayoptional- Custom exercises

Returns

Scheduled workout object

Example

"Schedule leg day for tomorrow"

update_profile

Update user profile settings

WRITE

Parameters

updatesobjectrequired- Profile fields to update

Returns

Updated profile object

Example

"Update my unit preference to metric"

add_set_to_exercise

Add a set to an existing exercise in a workout

WRITE

Parameters

workout_idstringrequired- Workout UUID
exercise_idstringrequired- Exercise UUID
repsnumberrequired- Number of reps
weightnumberrequired- Weight in kg
rpenumberoptional- RPE (1-10)

Returns

Updated exercise with new set

Example

"Add another set of 8 reps at 100kg to my bench"

copy_workout

Duplicate an existing workout

WRITE

Parameters

workout_idstringrequired- Workout to copy
datestringoptional- New date

Returns

New workout copy

Example

"Copy last Monday's workout to today"

start_workout

Start a live workout session

WRITE

Parameters

plan_idstringoptional- Optional plan to follow

Returns

Active workout session

Example

"Start my push workout"

finish_workout

End the current workout session

WRITE

Parameters

notesstringoptional- Final notes

Returns

Completed workout summary

Example

"Finish my workout, felt great today"

Frequently Asked Questions

How do I call these tools?

You don't call them directly. These tools are exposed via MCP to AI assistants. Just ask Claude naturally, like 'What's my workout today?' and it will use the appropriate tool automatically.

What's the difference between read and write tools?

Read tools only retrieve data and are safe to use freely. Write tools modify your data (logging workouts, updating PRs) and typically require confirmation before execution.

Are there rate limits?

The MCP server has generous rate limits for personal use. Heavy usage patterns may be throttled. For enterprise needs, contact us for custom solutions.

Can I use these tools programmatically?

Currently these tools are only available through MCP. A REST API for direct programmatic access is on our roadmap. Join our waitlist to be notified.