Skip to main content
Glama
st3v

Running Formulas MCP Server

by st3v

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

TableJSON Schema
NameRequiredDescriptionDefault
vdotYes

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. """
  • The @mcp.tool decorator registers the function as an MCP tool.
    @mcp.tool

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/st3v/running-formulas-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server