{"slug":"garmin-connect-2","title":"garmin-connect","summary":"在 WorkBuddy 中下载并配置 dsh-plugin-garmin-connect npm 包，通过 MCP 工具分析 Garmin 活动、睡眠、步数、心率、体重、训练库、跑步趋势和有限的恢复信息，也可按用户要求创建 Garmin 训练或下载活动 FIT 文件。适用于 Garmin 配置、回顾、比较和明确授权的写操作；不用于医疗诊断。","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-10T16:32:53.406225Z","repo":{"url":"https://github.com/Likenttt/garmin-connect-plugin-for-dsh","stars":19,"forks":4,"license":"MIT","updatedAt":"2026-09-09T11:46:45Z"},"bodyHtml":"<hr>\n<h2>name: garmin-connect\ndescription: 在 WorkBuddy 中下载并配置 dsh-plugin-garmin-connect npm 包，通过 MCP 工具分析 Garmin 活动、睡眠、步数、心率、体重、训练库、跑步趋势和有限的恢复信息，也可按用户要求创建 Garmin 训练或下载活动 FIT 文件。适用于 Garmin 配置、回顾、比较和明确授权的写操作；不用于医疗诊断。\nagent_created: true</h2>\n<h1>Garmin Connect</h1>\n<p><strong>Credit：李二牛</strong></p>\n<p>使用 npm 官方仓库中的社区维护、非 Garmin 官方软件包\n<code>dsh-plugin-garmin-connect</code>。该包不指定版本，始终跟随 npm 当前的\n<code>latest</code> 正式版本。不要抓取 Garmin 网页，也不要擅自替换成其他 Garmin\n库。</p>\n<h2>连接工具</h2>\n<p>首先检查当前 WorkBuddy 会话能否使用下方列出的 Garmin MCP 工具。</p>\n<ul>\n<li>如果工具不可用，读取\n<a href=\"references/workbuddy-setup.md\">references/workbuddy-setup.md</a>。仅下载软件包\n不会给正在运行的会话增加工具；必须在 WorkBuddy 中注册 stdio MCP 服务并\n重新加载。</li>\n<li>如果 Garmin 工具提示凭据缺失、过期或需要浏览器认证，在展示或打开任何\n内容前，先阅读同一参考文档中的认证部分。</li>\n<li>将配置视为两个阶段：先配置并重新加载 WorkBuddy，再请用户重新调用本技能\n进行分析。不要承诺在原会话内同时完成配置和分析。</li>\n<li>在以下操作发生前分别获得用户授权：① 下载并执行 npm 软件包；② 修改\nWorkBuddy 配置；③ 打开会写入会话文件的浏览器认证。不要把这些副作用\n混入用户对数据分析的授权中。</li>\n<li>不要在对话中索取 Garmin 密码、MFA 验证码、OAuth 令牌、会话内容或 npm\n令牌。回环页面由本社区插件提供；账号、密码和验证码只能输入其嵌入的\nGarmin 表单。插件会以程序方式把 frame 服务地址限定为\n<code>https://sso.garmin.cn/sso/embed</code> 或\n<code>https://sso.garmin.com/sso/embed</code>，并校验对应的 Web origin。浏览器地址栏\n仍会显示 <code>127.0.0.1</code>，因此不要声称用户可仅凭地址栏独立验证 iframe 来源。\n如果 Garmin 表单缺失或被拦截，立即停止输入。</li>\n</ul>\n<p>用户没有指定账号时，使用已配置的默认 Garmin 服务。如果多个账号可能明显\n影响答案且无法确定默认账号，询问账号别名；不要合并不同账号的数据。</p>\n<h2>获取最少必要数据</h2>\n<p>查询和分析数据时使用以下只读工具：</p>\n<ul>\n<li><code>get_garmin_activities</code></li>\n<li><code>get_garmin_sleep</code></li>\n<li><code>get_garmin_steps</code></li>\n<li><code>get_garmin_heart_rate</code></li>\n<li><code>get_garmin_weight</code></li>\n<li><code>get_garmin_workouts</code></li>\n<li><code>get_garmin_profile</code></li>\n<li><code>get_running_skill_advice</code></li>\n</ul>\n<p>根据用户的问题选择工具，不要一次获取所有数据。按照用户 Garmin 账号或本地\n日历时区，把相对日期换算成明确的 <code>YYYY-MM-DD</code>。确认是否需要包含尚未结束的\n当天；否则优先使用完整日历日，并说明起止日期均包含在内。超过 30 天的范围\n应拆成互不重叠、每批最多 30 天的数据，并标注合并后的总范围。</p>\n<p>查询活动时默认使用 <code>detail=\"compact\"</code>，只有用户确实需要扩展字段时才提高\n详细程度。<code>full</code> 可能暴露精确路线或位置；请求前说明其隐私影响。小表格或\n摘要足以回答时，不要复述原始响应。</p>\n<h2>分析时避免过度推断</h2>\n<p>结果应明确区分：</p>\n<ol>\n<li>数据范围以及缺失的日期或字段；</li>\n<li>带日期和单位的直接观察；</li>\n<li>明确标为推断的谨慎解释；</li>\n<li>与用户目标匹配的可行下一步；</li>\n<li>局限性，以及哪些补充数据可能改变结论。</li>\n</ol>\n<p>至少比较多次测量后再称其为趋势。不要把相关性解释为因果关系，不要诊断疾病，\n也不要把 Garmin 估算值当成医学结论。出现警示症状或异常测量时，应建议降低\n训练强度，并在适当情况下寻求专业医疗帮助。</p>\n<p>本插件未提供 HRV 状态、Body Battery、压力、训练准备度、恢复时间或训练负荷\n工具。睡眠和静息心率趋势只能作为有限的恢复参考，不能称为完整恢复评分。</p>\n<p>解释训练方法时，调用 <code>get_running_skill_advice</code> 并设置 <code>mode=\"explain\"</code>。\n提供个性化建议或计划时，使用 <code>mode=\"personalized\"</code>，收集工具返回的全部缺失\n信息，并遵守其安全停止条件。Garmin 历史数据可以补充，但不能代替用户的目标、\n当前成绩、训练背景、可用时间、健康与恢复情况以及训练负荷偏好。</p>\n<h2>写操作</h2>\n<p>用户明确要求创建 Garmin 训练或下载活动 FIT 时，可以使用下列工具。仅请求\n分析、建议或生成计划时，不自动向 Garmin 训练库写入，也不自动下载文件。</p>\n<h3>创建 Garmin 训练</h3>\n<p>使用 <code>create_garmin_workout</code>，遵循工具已有的预览与确认流程：</p>\n<ol>\n<li>将用户指定的训练编码为工具支持的 <code>name</code>、<code>steps</code>，以及必要的\n<code>description</code>、<code>sport</code>。如果训练内容由本技能个性化制定，先完成上文\n<code>get_running_skill_advice</code> 的信息收集；用户直接给出的明确训练可直接编码。</li>\n<li>首次调用省略 <code>confirmed</code> 或设置为 <code>false</code>，取得预览和 <code>confirmationId</code>。\n展示目标账号、训练名称、步骤与强度，供用户确认。</li>\n<li>用户明确确认该预览后，使用完全相同的训练定义，以及 <code>confirmed: true</code>\n和对应的 <code>confirmationId</code> 再次调用，提交创建。</li>\n<li>确认 ID 为一次性使用；预览过期、服务重启、账号切换或训练内容改变时，\n重新预览并取得用户确认。创建失败或返回结果不明确时，不自动重放写请求；\n先查询训练库核对是否已创建，再决定是否重新预览，避免重复训练。</li>\n</ol>\n<p>成功后报告工具实际返回的训练名称和 ID（如有）。此工具只创建 Garmin Connect\n训练库中的训练，不提供更新、删除、日历排期或主动推送手表功能。</p>\n<h3>下载活动 FIT</h3>\n<p>用户明确要求下载某次活动时，使用 <code>download_garmin_activity_fit</code>：</p>\n<ul>\n<li>先用 <code>get_garmin_activities</code> 核对用户指定的活动，传入其正整数 <code>activityId</code>。\n多条活动可能匹配时，先确定具体活动，不擅自扩大下载范围。</li>\n<li>MCP 服务必须已设置 <code>GARMIN_FIT_DOWNLOAD_DIR</code>，值为用户选择的可信本地\n父目录的绝对路径；缺失时按\n<a href=\"references/workbuddy-setup.md\">references/workbuddy-setup.md</a> 配置并重新加载。\n不向工具传入额外的保存路径参数。</li>\n<li>文件按区域和账号保存到独立子目录。插件不覆盖已有文件；遇到 <code>OUTPUT_EXISTS</code>\n时报告文件已存在，不删除或覆盖文件来重试。</li>\n<li>根据返回的文件元数据报告结果，不将 FIT 二进制或原始活动数据塞入对话。</li>\n</ul>\n","files":[{"path":"references/workbuddy-setup.md","sizeBytes":9662,"isText":true},{"path":"SKILL.md","sizeBytes":6808,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-10T16:33:01.295487Z","sha256":"A9F09F3E3005189B138D15E2B4C2EC3B81DE75D8CBBB501692C19270F5D2C7F1","sizeBytes":8562},"review":null,"source":{"repositoryUrl":"https://github.com/Likenttt/garmin-connect-plugin-for-dsh","path":"skills/garmin-connect","license":"MIT","commit":"dc02ea7a517b8a40db8d2726b4c71a552b005834","subtreeSha":"DA94E5A9EC89B5E4210E183CAA1D5CED149DACE1DDD625AF286F8FD1CFC63E5C","lastSyncedAt":"2026-09-20T13:50:29.044587Z"},"reviewedAt":"2026-09-10T16:33:11.025691Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/Likenttt/garmin-connect-plugin-for-dsh/tree/main/skills/garmin-connect"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install likenttt-garmin-connect-plugin-for-dsh@llmmart"},{"target":"git","command":"git clone https://github.com/Likenttt/garmin-connect-plugin-for-dsh.git"}]}