跑步计算服务器

一个提供全面的跑步计算工具的MCP服务器,包括VDOT计算、训练配速、比赛时间预测、速度标记、心率区间和配速转换等功能。

  • by st3v
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 st3v/running-formulas-mcp

使用说明

运行公式mcp mcp服务器

MCP服务器,具有用于运行计算的全面工具,包括VDOT、训练速度、比赛时间预测、速度标记、心率区域和速度转换。支持多种方法,包括 杰克丹尼, 麦克米兰以及Riegel公式。

特性

杰克·丹尼尔斯方法论

  • VDOT计算:使用Jack Daniels公式根据比赛表现计算VDOT
  • 训练节奏:获取给定VDOT的推荐训练速度(简单、马拉松、阈值、间歇、重复)
  • 比赛时间预测:使用Jack Daniels的等效性能方法预测比赛时间

麦克米兰方法论

  • 速度标记:计算vLT(乳酸阈值)、CV(临界速度)和vVO2(VO2max速度)
  • 训练节奏:包含子类别的综合训练配速区(耐力、耐力、速度、冲刺)
  • 比赛时间预测:使用McMillan的方法预测所有标准距离的比赛时间
  • 心率区域:使用多个估计公式计算训练心率区域

其他工具

  • 里格尔公式:使用Riegel幂律预测比赛时间
  • 速度转换:转换不同的配速和速度格式(分钟/公里、分钟/英里、公里/小时、英里/小时)

工具

杰克·丹尼尔斯工具

  • daniels_calculate_vdot:使用Jack Daniels公式根据比赛表现计算VDOT。

    • 输入:
      • distance (浮动):距离(单位:米)
      • time (浮点数):时间(秒)
    • 输出:
      • vdot (float):计算出的VDOT值
  • daniels_calculate_training_paces:获取给定VDOT的推荐训练速度。

    • 输入:
      • vdot (浮点数):VDOT值
    • 输出:
      • easy (对象):具有下限和上限的轻松配速范围
      • marathon (对象):马拉松配速
      • threshold (对象):阈值速度
      • interval (对象):间隔步速
      • repetition (对象):重复速度
      • 所有步速格式为“MM:SS/km”
  • daniels_predict_race_time:使用Jack Daniels的等效性能方法预测比赛时间。

    • 输入:
      • current_distance (浮动):已知性能的距离,单位为米
      • current_time (float):已知性能的时间(秒)
      • target_distance (浮动):以米为单位的比赛时间预测距离
    • 输出:
      • value (字符串):“HH:MM:SS”格式的预测时间
      • format (字符串):“HH:MM:SS”
      • time_seconds (浮点数):时间(秒)

麦克米兰工具

  • mcmillan_calculate_velocity_markers:根据比赛表现计算速度标记(vLT、CV、vVO2)。

    • 输入:
      • distance (浮子):比赛距离(米)
      • time (浮动):比赛时间(秒)
    • 输出:
      • velocity_markers (对象):包含vLT、CV和vVO2,带有速度和描述
  • mcmillan_predict_race_times:使用McMillan方法预测标准距离的比赛时间。

    • 输入:
      • distance (浮子):比赛距离(米)
      • time (浮动):比赛时间(秒)
    • 输出:
      • 包含所有标准比赛距离预测时间的词典
  • mcmillan_calculate_training_paces:使用McMillan方法计算综合训练速度。

    • 输入:
      • distance (浮子):比赛距离(米)
      • time (浮动):比赛时间(秒)
    • 输出:
      • 按区域组织的训练速度(耐力、耐力、速度、冲刺)
  • mcmillan_heart_rate_zones:计算心率训练区。

    • 输入:
      • age (int):跑步者的年龄(岁)
      • resting_heart_rate (int):BPM中的静息心率
      • max_heart_rate (int,可选):BPM中的最大心率
    • 输出:
      • 同时进行HRMAX和HRRESERVE计算的心率区域

其他工具

  • riegel_predict_race_time:使用Riegel公式预测比赛时间。

    • 输入:
      • current_distance (浮动):已知性能的距离,单位为米
      • current_time (float):已知性能的时间(秒)
      • target_distance (浮动):以米为单位的比赛时间预测距离
    • 输出:
      • value (字符串):“HH:MM:SS”格式的预测时间
      • format (字符串):“HH:MM:SS”
      • time_seconds (浮点数):时间(秒)
  • convert_pace:在不同的步速和速度单位之间转换。

    • 输入:
      • value (float):要转换的数值
      • from_unit (字符串):源单位(“min_km”、“min_mile”、“kmh”、“mph”)
      • to_unit (字符串):目标单位(“min_km”、“min_mile”、“kmh”、“mph”)
    • 输出:
      • value (float):转换后的数值
      • formatted (string):人类可读的格式化结果
      • unit (string):目标单元描述符

用法

此服务器被设计为用作MCP stdio服务器。它不直接公开HTTP端点。

示例:在25分钟内计算5公里的VDOT

打电话给 daniels_calculate_vdot 工具包括:

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

退货:

{
  "vdot": 38.4
}

示例:获取VDOT 38.4的训练速度

打电话给 daniels_calculate_training_paces 工具包括:

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

返回结构化的步速数据,如:

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

示例:根据5K成绩计算McMillan速度标记

打电话给 mcmillan_calculate_velocity_markers 工具包括:

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

返回速度标记:

{
  "velocity_markers": {
    "vLT": {
      "pace": "4:50",
      "description": "Velocity at Lactate Threshold (vLT) - sustainable pace for ~1 hour"
    },
    "CV": {
      "pace": "4:32",
      "description": "Critical Velocity (CV) - theoretical maximum sustainable pace"
    },
    "vVO2": {
      "pace": "4:15",
      "description": "Velocity at VO2max (vVO2) - pace at maximum oxygen uptake"
    }
  }
}

示例:使用Daniels方法预测10K时间

打电话给 daniels_predict_race_time 工具包括:

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

退货:

{
  "value": "00:52:07",
  "format": "HH:MM:SS",
  "time_seconds": 3127.4
}

示例:计算一个30岁的人的心率区域

打电话给 mcmillan_heart_rate_zones 工具包括:

{
  "name": "mcmillan_heart_rate_zones",
  "arguments": { "age": 30, "resting_heart_rate": 60, "max_heart_rate": 190 }
}

示例:将速度从分钟/公里转换为分钟/英里

打电话给 convert_pace 工具包括:

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

退货:

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

配置

此服务器旨在与Claude Desktop或其他MCP兼容客户端一起使用。有关配置详细信息,请参阅下面的安装部分。

安装

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

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。