daniels_calculate_training_paces
Calculate personalized running training paces for easy, marathon, threshold, interval, and repetition workouts based on Jack Daniels' VDOT formulas.
Instructions
Get recommended training paces for a given VDOT, based on Jack Daniels' formulas.
Args: vdot: VDOT value.
Returns: dict: easy (dict): Recommended easy pace range with lower and upper bounds. marathon (dict): Recommended marathon pace with value and format. threshold (dict): Recommended threshold pace with value and format. interval (dict): Recommended interval pace with value and format. repetition (dict): Recommended repetition pace with value and format.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| vdot | Yes |
Implementation Reference
- The core handler function decorated with @mcp.tool, implementing the daniels_calculate_training_paces tool. It takes a VDOT value, computes various training paces using helper functions from daniels.py, formats them, and returns a structured dictionary of paces.@mcp.tool def daniels_calculate_training_paces(vdot: float) -> dict: """ Get recommended training paces for a given VDOT, based on Jack Daniels' formulas. Args: vdot: VDOT value. Returns: dict: easy (dict): Recommended easy pace range with lower and upper bounds. marathon (dict): Recommended marathon pace with value and format. threshold (dict): Recommended threshold pace with value and format. interval (dict): Recommended interval pace with value and format. repetition (dict): Recommended repetition pace with value and format. """ if vdot <= 0: raise ValueError("VDOT must be positive") # Constants DISTANCE_KM = 1000 # Calculate for 1 km (1000 meters) # Calculate all training paces for 1km easy_slow = get_easy_pace(vdot, DISTANCE_KM, True) easy_fast = get_easy_pace(vdot, DISTANCE_KM, False) marathon = get_marathon_pace(vdot, DISTANCE_KM) threshold = get_threshold_pace(vdot, DISTANCE_KM) interval = get_interval_pace(vdot, DISTANCE_KM) repetition = get_repetition_pace(vdot, DISTANCE_KM) return { "easy": { "lower": { "value": pace_in_min_km(easy_fast), "format": "MM:SS/km" }, "upper": { "value": pace_in_min_km(easy_slow), "format": "MM:SS/km" } }, "marathon": { "value": pace_in_min_km(marathon), "format": "MM:SS/km" }, "threshold": { "value": pace_in_min_km(threshold), "format": "MM:SS/km" }, "interval": { "value": pace_in_min_km(interval), "format": "MM:SS/km" }, "repetition": { "value": pace_in_min_km(repetition), "format": "MM:SS/km" } }
- The docstring defines the input schema (vdot: float) and detailed output schema structure for the tool.""" Get recommended training paces for a given VDOT, based on Jack Daniels' formulas. Args: vdot: VDOT value. Returns: dict: easy (dict): Recommended easy pace range with lower and upper bounds. marathon (dict): Recommended marathon pace with value and format. threshold (dict): Recommended threshold pace with value and format. interval (dict): Recommended interval pace with value and format. repetition (dict): Recommended repetition pace with value and format. """
- src/running_formulas_mcp/server.py:59-59 (registration)The @mcp.tool decorator registers the function as an MCP tool.@mcp.tool