Skip to main content

An MCP server that calculates well-known running formulas

Project description

running-formulas-mcp MCP server

An MCP server with tools for running calculations including VDOT, training paces, race time predictions, and pace conversions based on Jack Daniels methodology and others.

Features

  • VDOT Calculation: Calculate VDOT from a given distance (meters) and time (seconds) using Jack Daniels' formula.
  • Training Paces: Get recommended training paces (Easy, Marathon, Threshold, Interval, Repetition) for a given VDOT.
  • Race Time Predictions: Predict race times for different distances using Riegel's formula and Jack Daniels' VDOT method.
  • Pace Conversions: Convert between different pace and speed formats (min/km, min/mile, km/h, mph).

Tools

  • calculate_vdot: Returns VDOT for a given distance and time.

    • Input:
      • distance (number, meters)
      • time (number, seconds)
    • Output:
      • vdot (float): The calculated VDOT value
  • training_paces: Returns recommended paces for a given VDOT.

    • Input:
      • vdot (number)
    • Output:
      • Structured pace data with value and format for each training zone:
        • easy (object): Lower and upper bounds for easy pace range
        • marathon (object): Marathon pace
        • threshold (object): Threshold pace
        • interval (object): Interval pace
        • repetition (object): Repetition pace
      • All paces include both value (formatted as "min:sec/km") and format fields
  • predict_race_time: Predicts race times for different distances based on a current performance.

    • Input:
      • current_distance (number, meters)
      • current_time (number, seconds)
      • target_distance (number, meters)
    • Output:
      • riegel (object): Prediction using Riegel's formula with value, format, and time_seconds
      • daniels (object): Prediction using Jack Daniels' VDOT method with value, format, and time_seconds
      • average (object): Average of both methods with value, format, and time_seconds
      • All times formatted as "HH:MM:SS"
  • convert_pace: Converts between different pace and speed units.

    • Input:
      • value (number): The numeric value to convert
      • from_unit (string): Source unit ("min_km", "min_mile", "kmh", "mph")
      • to_unit (string): Target unit ("min_km", "min_mile", "kmh", "mph")
    • Output:
      • value (float): Converted numeric value
      • formatted (string): Human-readable formatted result
      • unit (string): Target unit descriptor

Usage

This server is designed to be used as an MCP stdio server. It does not expose HTTP endpoints directly.

Example: Calculate VDOT for a 5k in 25 minutes

Call the calculate_vdot tool with:

{
  "name": "calculate_vdot",
  "arguments": { "distance": 5000, "time": 1500 }
}

Example: Get training paces for VDOT 38.4

Call the training_paces tool with:

{
  "name": "training_paces",
  "arguments": { "vdot": 38.4 }
}

This returns structured pace data like:

{
  "easy": {
    "lower": {"value": "5:42", "format": "min:sec/km"},
    "upper": {"value": "6:29", "format": "min:sec/km"}
  },
  "marathon": {"value": "5:07", "format": "min:sec/km"},
  "threshold": {"value": "4:50", "format": "min:sec/km"},
  "interval": {"value": "4:32", "format": "min:sec/km"},
  "repetition": {"value": "4:26", "format": "min:sec/km"}
}

Example: Predict 10K time from 5K performance

Call the predict_race_time tool with:

{
  "name": "predict_race_time",
  "arguments": { "current_distance": 5000, "current_time": 1500, "target_distance": 10000 }
}

This returns race time predictions:

{
  "riegel": {
    "value": "00:52:07",
    "format": "HH:MM:SS",
    "time_seconds": 3127.4
  },
  "daniels": {
    "value": "00:47:36", 
    "format": "HH:MM:SS",
    "time_seconds": 2856.6
  },
  "average": {
    "value": "00:49:52",
    "format": "HH:MM:SS", 
    "time_seconds": 2992.0
  }
}

Example: Convert pace from min/km to min/mile

Call the convert_pace tool with:

{
  "name": "convert_pace",
  "arguments": { "value": 5.0, "from_unit": "min_km", "to_unit": "min_mile" }
}

This returns the converted pace:

{
  "value": 8.047,
  "formatted": "8:02",
  "unit": "min_mile"
}

Configuration

This server is designed to be used with Claude Desktop or other MCP-compatible clients. See the installation sections below for configuration details.

Installation

{
  "mcpServers": {
    "running-formulas-mcp": {
      "command": "uvx",
      "args": ["running-formulas-mcp"]
    }
  }
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

running_formulas_mcp-0.2.0.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

running_formulas_mcp-0.2.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file running_formulas_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: running_formulas_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for running_formulas_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2867bf4ddb33b1fb06d7dcfc1f318f509d2d5072f01656d4353a92b372abf965
MD5 a74ce622d4b50f4e3c58e0b8c4f01db1
BLAKE2b-256 0284de438e50577fbf4cc2c9a504c9aa253b4c1cb3fd2b37b53b4d9a191535d5

See more details on using hashes here.

File details

Details for the file running_formulas_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for running_formulas_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a924dc15932a58bba4c84d0d6184d5472df1a54ce7be6eb0fd7d3f2ad4bb438
MD5 4e0618201f235ef5e185b95a477e34bb
BLAKE2b-256 cb04c899c969697c51b80d8a3643b325e74dc89a91a6cf9c3557593039341848

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page