diff --git a/.gitignore b/.gitignore index 600a4e9..20f31e3 100644 --- a/.gitignore +++ b/.gitignore @@ -189,3 +189,4 @@ poetry.toml pyrightconfig.json # End of https://www.toptal.com/developers/gitignore/api/python,linux +*Zone:Identifier \ No newline at end of file diff --git a/MyWorkout/Barbell_Row.md b/MyWorkout/Barbell_Row.md new file mode 100644 index 0000000..ac6f312 --- /dev/null +++ b/MyWorkout/Barbell_Row.md @@ -0,0 +1,12 @@ +# Barbell Row + +**Type:** Pull + +## Steps +1. Stand with feet shoulder-width apart +2. Hinge at hips and grip barbell +3. Row barbell towards your torso +4. Lower barbell back down + +## Visual Reference +![Barbell Row](./Barbell_Row.png) diff --git a/MyWorkout/Barbell_Row.png b/MyWorkout/Barbell_Row.png new file mode 100644 index 0000000..0e9da75 Binary files /dev/null and b/MyWorkout/Barbell_Row.png differ diff --git a/MyWorkout/Bench_Press.md b/MyWorkout/Bench_Press.md new file mode 100644 index 0000000..7b7c68b --- /dev/null +++ b/MyWorkout/Bench_Press.md @@ -0,0 +1,12 @@ +# Bench Press + +**Type:** Push + +## Steps +1. Lie on a flat bench +2. Grip barbell at shoulder width +3. Lower barbell to chest +4. Press barbell up until arms are fully extended + +## Visual Reference +![Bench Press](./Bench_Press.png) diff --git a/MyWorkout/Bench_Press.png b/MyWorkout/Bench_Press.png new file mode 100644 index 0000000..2c6631d Binary files /dev/null and b/MyWorkout/Bench_Press.png differ diff --git a/MyWorkout/Bicycle_Crunch.md b/MyWorkout/Bicycle_Crunch.md new file mode 100644 index 0000000..e2a6fb7 --- /dev/null +++ b/MyWorkout/Bicycle_Crunch.md @@ -0,0 +1,12 @@ +# Bicycle Crunch + +**Type:** Core + +## Steps +1. Lie on your back with hands behind head +2. Bring one elbow towards the opposite knee +3. Extend the other leg +4. Alternate in a cycling motion + +## Visual Reference +![Bicycle Crunch](./Bicycle_Crunch.png) diff --git a/MyWorkout/Bicycle_Crunch.png b/MyWorkout/Bicycle_Crunch.png new file mode 100644 index 0000000..63cde64 Binary files /dev/null and b/MyWorkout/Bicycle_Crunch.png differ diff --git a/MyWorkout/Calf_Raises.md b/MyWorkout/Calf_Raises.md new file mode 100644 index 0000000..8ffe468 --- /dev/null +++ b/MyWorkout/Calf_Raises.md @@ -0,0 +1,12 @@ +# Calf Raises + +**Type:** Knee_hip + +## Steps +1. Stand with feet hip-width apart +2. Rise up onto the balls of your feet +3. Hold the top position briefly +4. Lower heels back down + +## Visual Reference +![Calf Raises](./Calf_Raises.png) diff --git a/MyWorkout/Calf_Raises.png b/MyWorkout/Calf_Raises.png new file mode 100644 index 0000000..11823cb Binary files /dev/null and b/MyWorkout/Calf_Raises.png differ diff --git a/MyWorkout/Dead_Bug.md b/MyWorkout/Dead_Bug.md new file mode 100644 index 0000000..cd01560 --- /dev/null +++ b/MyWorkout/Dead_Bug.md @@ -0,0 +1,12 @@ +# Dead Bug + +**Type:** Core + +## Steps +1. Lie on your back with arms extended towards ceiling +2. Raise legs with knees bent at 90 degrees +3. Lower opposite arm and leg while keeping back on floor +4. Return and alternate sides + +## Visual Reference +![Dead Bug](./Dead_Bug.png) diff --git a/MyWorkout/Dead_Bug.png b/MyWorkout/Dead_Bug.png new file mode 100644 index 0000000..2e0484b Binary files /dev/null and b/MyWorkout/Dead_Bug.png differ diff --git a/MyWorkout/Lat_Pulldown.md b/MyWorkout/Lat_Pulldown.md new file mode 100644 index 0000000..9f17087 --- /dev/null +++ b/MyWorkout/Lat_Pulldown.md @@ -0,0 +1,12 @@ +# Lat Pulldown + +**Type:** Pull + +## Steps +1. Sit at lat pulldown machine +2. Grip the bar with hands slightly wider than shoulder width +3. Pull the bar down towards your chest +4. Slowly return to starting position + +## Visual Reference +![Lat Pulldown](./Lat_Pulldown.png) diff --git a/MyWorkout/Lat_Pulldown.png b/MyWorkout/Lat_Pulldown.png new file mode 100644 index 0000000..3521589 Binary files /dev/null and b/MyWorkout/Lat_Pulldown.png differ diff --git a/MyWorkout/Mountain_Climbers.md b/MyWorkout/Mountain_Climbers.md new file mode 100644 index 0000000..472c062 --- /dev/null +++ b/MyWorkout/Mountain_Climbers.md @@ -0,0 +1,12 @@ +# Mountain Climbers + +**Type:** Core + +## Steps +1. Start in plank position +2. Bring one knee towards your chest +3. Quickly switch legs in a running motion +4. Maintain a steady pace + +## Visual Reference +![Mountain Climbers](./Mountain_Climbers.png) diff --git a/MyWorkout/Mountain_Climbers.png b/MyWorkout/Mountain_Climbers.png new file mode 100644 index 0000000..c055d9c Binary files /dev/null and b/MyWorkout/Mountain_Climbers.png differ diff --git a/MyWorkout/Overhead_Press.md b/MyWorkout/Overhead_Press.md new file mode 100644 index 0000000..b2486e8 --- /dev/null +++ b/MyWorkout/Overhead_Press.md @@ -0,0 +1,12 @@ +# Overhead Press + +**Type:** Push + +## Steps +1. Stand with feet shoulder-width apart +2. Hold dumbbells at shoulder height +3. Press weights overhead until arms are fully extended +4. Lower back to starting position + +## Visual Reference +![Overhead Press](./Overhead_Press.png) diff --git a/MyWorkout/Overhead_Press.png b/MyWorkout/Overhead_Press.png new file mode 100644 index 0000000..2bf6857 Binary files /dev/null and b/MyWorkout/Overhead_Press.png differ diff --git a/MyWorkout/Plan.md b/MyWorkout/Plan.md new file mode 100644 index 0000000..30b4705 --- /dev/null +++ b/MyWorkout/Plan.md @@ -0,0 +1,36 @@ +# 4-Day Workout Plan: Weight Loss +**Target Audience:** Age 40-50 + +## Day 1 +**Session:** Day 1 Weight Loss Focus + +| Type | Exercise | Sets/Reps | +|---|---|---| +| Push | [Bench Press](./Bench_Press.md) | 3x10 | +| Pull | [Lat Pulldown](./Lat_Pulldown.md) | 3x10 | +| Knee_hip | [Calf Raises](./Calf_Raises.md) | 3x10 | +| Core | [Bicycle Crunch](./Bicycle_Crunch.md) | 3x10 | + +## Day 2 +**Session:** Day 2 Weight Loss Focus + +| Type | Exercise | Sets/Reps | +|---|---|---| +| Push | [Overhead Press](./Overhead_Press.md) | 3x10 | +| Pull | [Barbell Row](./Barbell_Row.md) | 3x10 | +| Knee_hip | [Walking Lunges](./Walking_Lunges.md) | 3x10 | +| Core | [Mountain Climbers](./Mountain_Climbers.md) | 3x10 | + +## Day 3 +**Rest & Recovery** +- Light walking or stretching. + +## Day 4 +**Session:** Day 4 Weight Loss Focus + +| Type | Exercise | Sets/Reps | +|---|---|---| +| Push | [Overhead Press](./Overhead_Press.md) | 3x10 | +| Pull | [Lat Pulldown](./Lat_Pulldown.md) | 3x10 | +| Knee_hip | [Walking Lunges](./Walking_Lunges.md) | 3x10 | +| Core | [Dead Bug](./Dead_Bug.md) | 3x10 | diff --git a/MyWorkout/Walking_Lunges.md b/MyWorkout/Walking_Lunges.md new file mode 100644 index 0000000..77c867f --- /dev/null +++ b/MyWorkout/Walking_Lunges.md @@ -0,0 +1,12 @@ +# Walking Lunges + +**Type:** Knee_hip + +## Steps +1. Step forward with one leg +2. Lower hips until both knees are bent at a 90-degree angle +3. Push off with your front foot to return to starting position +4. Repeat with the other leg + +## Visual Reference +![Walking Lunges](./Walking_Lunges.png) diff --git a/MyWorkout/Walking_Lunges.png b/MyWorkout/Walking_Lunges.png new file mode 100644 index 0000000..e4e09ae Binary files /dev/null and b/MyWorkout/Walking_Lunges.png differ diff --git a/gemini-extension.json b/gemini-extension.json index 2903fd7..2e6ea28 100644 --- a/gemini-extension.json +++ b/gemini-extension.json @@ -2,10 +2,9 @@ "id": "workout-maker", "name": "WorkoutMaker", "description": "Create workout plans, sessions, and exercise pages with visual prompts.", - "version": "1.0.1", - "mcpServers": [ - { - "id": "workout-maker", + "version": "1.0.3", + "mcpServers": { + "workout-maker": { "name": "Workout Maker Server", "transportType": "stdio", "command": "docker", @@ -13,8 +12,8 @@ "run", "-i", "--rm", - "idjohnson/workoutmcp:latest" + "idjohnson/workoutmcp:0.3" ] } - ] + } } diff --git a/workout_server.py b/workout_server.py index 6a6c1a8..a31dad2 100644 --- a/workout_server.py +++ b/workout_server.py @@ -11,7 +11,7 @@ mcp = FastMCP("workout_mcp") class ExerciseType(str): PUSH = "push" PULL = "pull" - KNEE_HIP = "knee_hip" # Combined for simplicity or split if needed. Prompt said "knee/hip dominent". + KNEE_HIP = "knee_hip" # Combined for simplicity or split if needed. Prompt said "knee/hip dominant". CORE = "core" OTHER = "other" @@ -71,6 +71,78 @@ EXERCISE_DB = { type=ExerciseType.CORE, steps=["Sit on the floor with knees bent", "Lean back slightly", "Twist torso to one side, then the other", "Hold a weight for added resistance if desired"], image_prompt="A fit character performing russian twists, gym background, front view, correct form" + ), + "bench_press": Exercise( + name="Bench Press", + type=ExerciseType.PUSH, + steps=["Lie on a flat bench", "Grip barbell at shoulder width", "Lower barbell to chest", "Press barbell up until arms are fully extended"], + image_prompt="A fit character performing a bench press with barbell, gym background, side view, correct form" + ), + "incline_pushup": Exercise( + name="Incline Push Up", + type=ExerciseType.PUSH, + steps=["Place hands on an elevated surface", "Assume plank position with elevated hands", "Lower body until chest nearly touches surface", "Push back up"], + image_prompt="A fit character performing an incline pushup on a bench, gym background, side view, correct form" + ), + "dips": Exercise( + name="Dips", + type=ExerciseType.PUSH, + steps=["Grip parallel bars with arms extended", "Lower body by bending elbows", "Push back up to starting position"], + image_prompt="A fit character performing dips on parallel bars, gym background, side view, correct form" + ), + "lat_pulldown": Exercise( + name="Lat Pulldown", + type=ExerciseType.PULL, + steps=["Sit at lat pulldown machine", "Grip the bar with hands slightly wider than shoulder width", "Pull the bar down towards your chest", "Slowly return to starting position"], + image_prompt="A fit character performing a lat pulldown on a machine, gym background, front view, correct form" + ), + "barbell_row": Exercise( + name="Barbell Row", + type=ExerciseType.PULL, + steps=["Stand with feet shoulder-width apart", "Hinge at hips and grip barbell", "Row barbell towards your torso", "Lower barbell back down"], + image_prompt="A fit character performing a barbell row, gym background, side view, correct form" + ), + "assisted_pullup": Exercise( + name="Assisted Pull Up", + type=ExerciseType.PULL, + steps=["Use an assisted pull-up machine or resistance band", "Place knees or feet on the assistance pad", "Pull chin over the bar", "Lower down with control"], + image_prompt="A fit character performing an assisted pullup, gym background, back view, correct form" + ), + "deadlift": Exercise( + name="Deadlift", + type=ExerciseType.KNEE_HIP, + steps=["Stand with feet hip-width apart, barbell over mid-foot", "Bend hips and knees to grip the bar", "Drive through heels to stand up", "Lower back down with control"], + image_prompt="A fit character performing a deadlift with barbell, gym background, side view, correct form" + ), + "leg_press": Exercise( + name="Leg Press", + type=ExerciseType.KNEE_HIP, + steps=["Sit on leg press machine with back against pad", "Place feet on platform shoulder-width apart", "Push platform away by extending legs", "Lower platform back down"], + image_prompt="A fit character performing a leg press on a machine, gym background, side view, correct form" + ), + "calf_raises": Exercise( + name="Calf Raises", + type=ExerciseType.KNEE_HIP, + steps=["Stand with feet hip-width apart", "Rise up onto the balls of your feet", "Hold the top position briefly", "Lower heels back down"], + image_prompt="A fit character performing calf raises, gym background, side view, correct form" + ), + "bicycle_crunch": Exercise( + name="Bicycle Crunch", + type=ExerciseType.CORE, + steps=["Lie on your back with hands behind head", "Bring one elbow towards the opposite knee", "Extend the other leg", "Alternate in a cycling motion"], + image_prompt="A fit character performing bicycle crunches, gym background, front view, correct form" + ), + "dead_bug": Exercise( + name="Dead Bug", + type=ExerciseType.CORE, + steps=["Lie on your back with arms extended towards ceiling", "Raise legs with knees bent at 90 degrees", "Lower opposite arm and leg while keeping back on floor", "Return and alternate sides"], + image_prompt="A fit character performing a dead bug exercise, gym background, front view, correct form" + ), + "mountain_climbers": Exercise( + name="Mountain Climbers", + type=ExerciseType.CORE, + steps=["Start in plank position", "Bring one knee towards your chest", "Quickly switch legs in a running motion", "Maintain a steady pace"], + image_prompt="A fit character performing mountain climbers, gym background, side view, correct form" ) }