trainbud

MCPattested
v0.8.0io.github.ZsadigzadeMITUpdated 1d agonpmGitHub

Talk to your own fitness data. Findings computed in code against your own 28-day baselines.

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
514Downloads/wk
1d agoLast update
Needs 1 credential before it runs
  • GARMIN_PASSWORDAPI keyrequired

    Your Connect password. Stored only in your local .env. Accounts with MFA enabled are not supported, because the unofficial library this drives cannot complete that flow.

  • ANTHROPIC_API_KEYAPI keyoptional

    Optional, and only for the watch app's Ask card and daily insight. The MCP tools themselves need no model key: every finding is computed in code, and the model only phrases it.

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
Authorio.github.Zsadigzade
LicenseMIT
Version0.8.0
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
Listed in Forge index+10/10
Identity verified · attested build+20/20
Ed25519 publish signature+0/5
Included automatically when the publisher runs `forge publish`
Domain verification+0/5
Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
npm Trusted Publishing (Sigstore)+5/5
npm maintainer match+0/5
Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
CVE scan · clean+30/30
Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain
Provenance✓ Sigstore-verified · baec190
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface15 tools · none privileged
Security scan✓ Cleanv0.8.0 · 1d agoHow well does this scan work?
EvalsNone
IndexedSep 9, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

15 tools · none privileged
Statically extracted from the published packagev0.8.0 · 1d ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

get_latest_activityReturns the most recent Garmin activity with distance, duration, pace, and heart rate stats.

Returns the most recent Garmin activity with distance, duration, pace, and heart rate stats.

No input schema was published for this tool.

get_activities_rangeReturns Garmin activities within an ISO 8601 date range.

Returns Garmin activities within an ISO 8601 date range.

No input schema was published for this tool.

get_body_compositionReturns weight, body fat, and muscle mass trends over a time period.

Returns weight, body fat, and muscle mass trends over a time period.

No input schema was published for this tool.

compare_workoutsCompares one workout against the user's own earlier workouts of the same type and a similar distance (or duration, for sports that record no distance). Reports duration, pace, heart rate, elevation and calories against the closest previous effort, with the typical value across the comparable set. D…

Compares one workout against the user's own earlier workouts of the same type and a similar distance (or duration, for sports that record no distance). Reports duration, pace, heart rate, elevation and calories against the closest previous effort, with the typical value across the comparable set. D…

No input schema was published for this tool.

remember_contextRecords something about the user that Garmin does not know: a goal, a race and its date, an injury, or a free-form note. Use this whenever the user mentions one in passing. It can also silence a finding the user has already accounted for — see `mutes`.

Records something about the user that Garmin does not know: a goal, a race and its date, an injury, or a free-form note. Use this whenever the user mentions one in passing. It can also silence a finding the user has already accounted for — see `mutes`.

No input schema was published for this tool.

get_user_contextReturns the goals, races, injuries and notes on record for the user. Read this before giving training advice.

Returns the goals, races, injuries and notes on record for the user. Read this before giving training advice.

No input schema was published for this tool.

log_subjectiveRecords how a day or session actually felt, rated 1-10: perceived effort (rpe), soreness, or mood. Garmin has no equivalent.

Records how a day or session actually felt, rated 1-10: perceived effort (rpe), soreness, or mood. Garmin has no equivalent.

No input schema was published for this tool.

get_findingsReturns what stands out in the user's stored history against their own 28-day baselines: resting heart rate elevation, sleep debt, HRV trend breaks, and training load ratio. Prefer this over reading raw metrics when asked how things are going.

Returns what stands out in the user's stored history against their own 28-day baselines: resting heart rate elevation, sleep debt, HRV trend breaks, and training load ratio. Prefer this over reading raw metrics when asked how things are going.

No input schema was published for this tool.

get_heart_rate_trendsReturns resting, max, and average heart rate trends over a time period.

Returns resting, max, and average heart rate trends over a time period.

No input schema was published for this tool.

get_recovery_statusCombines HRV, sleep, stress, and resting heart rate into a recovery score and training recommendation.

Combines HRV, sleep, stress, and resting heart rate into a recovery score and training recommendation.

No input schema was published for this tool.

get_sleep_dataReturns sleep duration, quality score, stage breakdown, and interruptions for recent nights.

Returns sleep duration, quality score, stage breakdown, and interruptions for recent nights.

No input schema was published for this tool.

get_stress_levelsReturns daily stress averages and trends from Garmin Connect.

Returns daily stress averages and trends from Garmin Connect.

No input schema was published for this tool.

get_training_insightsReturns a combined weekly training summary: latest activity, recent workouts, sleep, recovery, and stress.

Returns a combined weekly training summary: latest activity, recent workouts, sleep, recovery, and stress.

No input schema was published for this tool.

get_vo2_max_trendsReturns VO2 max fitness trends over time from Garmin Connect.

Returns VO2 max fitness trends over time from Garmin Connect.

No input schema was published for this tool.

get_week_reviewReturns this training week against the previous one — sessions, training load, sleep, resting heart rate, HRV and stress — plus where the acute:chronic load ratio lands if next week repeats this one, a sleep debt and consistency read against the user's own baseline, and the next race on record. Pre…

Returns this training week against the previous one — sessions, training load, sleep, resting heart rate, HRV and stress — plus where the acute:chronic load ratio lands if next week repeats this one, a sleep debt and consistency read against the user's own baseline, and the next race on record. Pre…

No input schema was published for this tool.

15 of 15 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Talk to your own fitness data. Findings computed in code against your own 28-day baselines.

Keywords
mcp
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-09-16 — observed resolution, not a publisher declaration.

60 packages resolved · 10 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

74 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+62 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.