Overview
Activities and MET values come from the 2024 Adult Compendium of Physical Activities (Herrmann SD, Willis EA, Ainsworth BE, et al. 2024 Adult Compendium of Physical Activities: A third update of the energy costs of human activities. J Sport Health Sci. 2024;13(1):6-12; https://pacompendium.com). The Compendium is free for commercial use with citation. A monthly collector copies its activity tables into our storage; MET values are stored and returned exactly as published.
Calories per minute are `met x 3.5 x weightKg / 200`: one MET is 3.5 ml of oxygen per kilogram per minute and a litre of oxygen releases about 5 kcal. `caloriesPerHour` and `totalCalories` are rounded to whole kcal. `intensity` classifies the standard MET with the Physical Activity Guidelines bands: light under 3, moderate 3 to 5.9, vigorous 6 and above, with 1.5 or below reported as sedentary.
With `age`, `sex` and `height` (all three) the API estimates resting metabolic rate with Mifflin-St Jeor (10 x kg + 6.25 x cm - 5 x age, plus 5 for men or minus 161 for women); `rmr` replaces the estimate with a measured value. That rate is converted to ml O2/kg/min and `correctedMet = met x 3.5 / RMR`, the Compendium's corrected MET method; calories then use the corrected value. `minutesToBurn` is `calories` divided by calories per minute. Search ranks activities that contain every word of the query (after synonyms such as biking to bicycling), preferring general and non-competitive entries, and falls back to partial matches.
Live Test Calories Burned Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as CaloriesBurnedSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "CaloriesBurnedSkill",
"arguments": {}
}Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
activityOptional | string | Activity to search for, e.g. running, biking, yoga or mowing lawn. Required unless code is given. length 0–100 |
codeOptional | string | Five-digit Compendium activity code to look up directly, e.g. 12150. length 5–5 |
weightOptional | number | Body weight in kg (metric) or lb (imperial). Defaults to 70 kg. range 1–1100 |
unitOptional | string | Unit system for weight and height: metric (kg, cm) or imperial (lb, in). Defaults to metric.metricimperial |
durationOptional | number | Duration of the activity in minutes (1-1440). Defaults to 60. range 1–1440 |
caloriesOptional | number | Calorie target: adds minutesToBurn, the minutes each activity takes to burn this many kcal. range 1–20000 |
ageOptionalPremium | integer | Age in years (18-120), for a personalised estimate with sex and height. range 18–120 |
sexOptionalPremium | string | Sex for the resting metabolic rate estimate, with age and height.malefemale |
heightOptionalPremium | number | Height in cm (metric) or inches (imperial), with age and sex. range 1–300 |
rmrOptionalPremium | number | Measured resting metabolic rate in kcal per day (500-5000). Overrides age, sex and height. range 500–5000 |
limitOptionalPremium | integer | Number of matching activities to return (1-25). Defaults to 5. range 1–25 |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"query": "running",
"count": 5,
"totalMatches": 73,
"weightKg": 70,
"durationMinutes": 30,
"targetCalories": null,
"personalized": false,
"rmrKcalPerDay": null,
"activities": [
{
"code": "12145",
"activity": "Running, self-selected pace",
"heading": "Running",
"met": 10.5,
"correctedMet": null,
"intensity": "vigorous",
"caloriesPerHour": 772,
"durationMinutes": 30,
"totalCalories": 386,
"minutesToBurn": null
},
{
"code": "12140",
"activity": "Running, cross country",
"heading": "Running",
"met": 9.3,
"correctedMet": null,
"intensity": "vigorous",
"caloriesPerHour": 684,
"durationMinutes": 30,
"totalCalories": 342,
"minutesToBurn": null
},
{
"code": "12170",
"activity": "Running, stairs, up",
"heading": "Running",
"met": 15,
"correctedMet": null,
"intensity": "vigorous",
"caloriesPerHour": 1103,
"durationMinutes": 30,
"totalCalories": 551,
"minutesToBurn": null
},
{
"code": "12150",
"activity": "Running (Taylor Code 200)",
"heading": "Running",
"met": 8,
"correctedMet": null,
"intensity": "vigorous",
"caloriesPerHour": 588,
"durationMinutes": 30,
"totalCalories": 294,
"minutesToBurn": null
},
{
"code": "12180",
"activity": "Running, on a track, team practice",
"heading": "Running",
"met": 10,
"correctedMet": null,
"intensity": "vigorous",
"caloriesPerHour": 735,
"durationMinutes": 30,
"totalCalories": 368,
"minutesToBurn": null
}
]
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
query | string | running | The activity searched for, or the code looked up |
count | number | 5 | Number of activities returned |
totalMatches | number | 73 | Number of activities that matched the search |
weightKg | number | 70 | Body weight used, in kilograms |
durationMinutes | number | 30 | Duration used, in minutes |
targetCalories | object | null | The calorie target from the calories parameter, or null |
personalized | boolean | false | Whether results use a resting metabolic rate (corrected METs) |
rmrKcalPerDayPremium | object | null | Resting metabolic rate used, kcal per day: measured, or estimated with Mifflin-St Jeor |
activities | array[5] | Matching activities, best match first | |
activities.0.code | string | 12145 | Five-digit Compendium activity code |
activities.0.activity | string | Running, self-selected pace | Activity description as published in the Compendium |
activities.0.heading | string | Running | Compendium major heading, e.g. Running or Water Activities |
activities.0.met | number | 10.5 | Standard MET value as published in the Compendium |
activities.0.correctedMetPremium | object | null | MET corrected for the person's resting metabolic rate; null unless personalised |
activities.0.intensity | string | vigorous | Intensity class of the standard MET: sedentary (1.5 or less), light (under 3), moderate (3 to 5.9) or vigorous (6 or more) |
activities.0.caloriesPerHour | number | 772 | Calories (kcal) burned per hour |
activities.0.durationMinutes | number | 30 | Duration the total is for, in minutes |
activities.0.totalCalories | number | 386 | Calories (kcal) burned over the duration |
activities.0.minutesToBurn | object | null | Minutes this activity takes to burn targetCalories; null without the calories parameter |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 1 credit each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Workout Logging Apps
- Fitness apps turn a logged activity and duration into calories burned, showing the MET and intensity class so users see why a session counted the way it did.
- Calorie Goal Planning
- Nutrition coaches use the reverse mode to tell clients how many minutes of walking, cycling or swimming offset a snack or meal.
- Corporate Wellness Challenges
- Step and activity challenges convert mixed activities, from yard work to basketball, into one comparable calorie or MET-minute total.
- Wearable and Health Platforms
- Device makers fill in activities their sensors cannot classify with Compendium-based estimates personalised to the wearer's age, sex, height and weight.
Other ways to use Calories Burned Skill
Set up Calories Burned Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Health/Wellness: