{"name":"io.github.slaat/garmin-connect-workouts-mcp","slug":"slaat-garmin-connect-workouts-mcp","title":null,"description":"Turn plain language into real workouts on your Garmin watch: pace, HR, power, intervals, swim sets.","url":"https://mcp.market/server/slaat-garmin-connect-workouts-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":36,"last_push_at":"2026-09-02T12:15:50.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/slaat/garmin-connect-workouts-mcp","website":null,"version":"1.1.3","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"garmin-connect-workouts-mcp","version":"1.1.3","transport":{"type":"stdio"}}],"tools":[{"name":"authenticate_garmin","description":"Authenticate with Garmin Connect by opening a real browser window at connect.garmin.com for you to log in normally, then capture and store only the resulting session cookies and CSRF token (never your password). Run this whenever check_garmin_auth reports no valid session, or any other tool returns its 'not authenticated' message. Requires a local display; will not work in a headless-only environm","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_garmin_auth","description":"Probe whether the stored Garmin Connect session is still valid, using a cheap authenticated request rather than a local expiry check (Garmin's session cookie does not carry a reliable expiry). Use this first when unsure whether the other tools will work. Returns a message telling you to run authenticate_garmin if the session is missing or has expired; never throws.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_garmin_workout","description":"Create a new structured workout in Garmin Connect from typed steps: durations, pace/HR/power/cadence targets, repeat blocks for intervals, and swim-specific stroke/equipment/pool-length fields. Use to add a workout; to change one that exists, use update_garmin_workout instead. Returns the new workoutId and a Connect link. Returns a re-auth message, not an exception, if no valid session exists. Exa","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_garmin_workout","description":"Permanently delete a workout from Garmin Connect by workoutId. This is irreversible - there is no undo or trash. Use list_garmin_workouts or get_garmin_workout first to confirm you have the right workoutId. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_garmin_workout","description":"Fetch the complete stored structure (all steps, targets, repeat blocks) of one workout by its workoutId, as raw JSON. Use this to inspect a workout, or to get its full contents before calling update_garmin_workout, which replaces the entire workout rather than patching it. Read-only. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_garmin_workouts","description":"List workouts stored in the Garmin Connect account, most recent first, with each workout's name, sport, and workoutId. Use this to find a workoutId to pass to get_garmin_workout, update_garmin_workout, delete_garmin_workout, or schedule_garmin_workout. Read-only. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"schedule_garmin_workout","description":"Put an existing workout on the Garmin Connect calendar for a specific date, so it appears as a planned session and can sync to a device. Requires a workoutId already created via create_garmin_workout or found via list_garmin_workouts - this tool does not create workouts. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_garmin_workout","description":"Replace the entire contents (name, sport, steps, pool settings) of an existing workout, identified by workoutId, keeping its id. This is a full overwrite, not a partial patch - fields you omit are dropped. Call get_garmin_workout first to see the current contents before changing them. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-20T20:08:47.959Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:08:47.853Z","components":{"code":{"score":25,"max":25,"notes":["8 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 18 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"garmin-connect-workouts-mcp","version":"1.1.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-02T12:19:13.165Z","repositoryUrl":"git+https://github.com/slaat/garmin-connect-workouts-mcp.git","weeklyDownloads":36}],"repo":{"found":true,"owner":"slaat","repo":"garmin-connect-workouts-mcp","archived":false,"pushedAt":"2026-09-02T12:15:50Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/5676753?v=4","ownerCreatedAt":"2013-10-13T15:30:52Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/5676753?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":36,"license":"MIT","lastPushAt":"2026-09-02T12:15:50.000Z","score":23}}}},"grade_history":[],"reviews":[]}