LeashIndex Get the report

Index / calendar

Garmin Connect

io-github-happyc0der-garmin-connect-api declares 38 capabilities across 38 tools, with 2 critical issues.

87/100 exposureHigh exposure

Manifest recorded 2026-10-22 from tools/list answered by the PyPI package garmin-connect-api==0.3.1 (published to PyPI as garmin-connect-api, listed in the official MCP registry as io.github.happyc0der/garmin-connect-api 0.3.1), run in an isolated container with no network access and placeholder credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 38 tools

38 of 38 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 6 of 38 tools

6 tools are classified as irreversible and declare no limit.

high · no-expiry · All 38 tools

38 of 38 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 38 tools

38 of 38 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 8 of 38 tools

8 tools can modify data and declare no limit.

low · uncapped-read · 24 of 38 tools

24 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
garmin_statusread declared
find_exerciseread declared
recent_strength_sessionsread declared
week_summaryread declared
list_activitiesread declared
get_activityread declared
delete_activitydestructive declared
update_activitydestructive declared
get_activity_setsread declared
edit_activity_setsdestructive declared
get_activity_lapsread declared
get_day_summaryread declared
get_sleepread declared
get_hrvread declared
get_stressread declared
get_body_batteryread declared
get_stepsread declared
get_training_readinessread declared
get_training_statusread declared
get_personal_recordsread declared
list_weigh_insread declared
add_weigh_inwrite inferred
add_body_compositionwrite inferred
delete_weigh_indestructive declared
get_trendread declared
list_workoutsread declared
list_scheduled_workoutsread declared
get_workoutread declared
delete_workoutdestructive declared
create_strength_workoutwrite inferred
create_endurance_workoutwrite inferred
create_workout_from_dtowrite inferred
schedule_workoutwrite assumed
unschedule_workoutdestructive declared
push_workout_to_devicewrite inferred
list_devicesread declared
log_strength_sessionwrite assumed
match_exerciseread declared
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.