mcpField
O
OwnMetrics

OwnMetrics

本地服务
github.com/badisbenhamida健康医疗1今天更新

关于 OwnMetrics

OwnMetrics 是面向个人 Garmin 数据查询的只读 MCP 服务,可供 AI 应用使用。它在本机运行,并结合日常数据工具与较长周期的训练和恢复分析。

主要功能

  1. 01Garmin 睡眠、HRV 和活动数据
  2. 02查询每日健康指标
  3. 03训练汇总与周期对比
  4. 04趋势和恢复相关性分析
  5. 05本机只读运行

适用场景

  1. 01查看每周睡眠和 HRV
  2. 02比较不同周期的训练
  3. 03追踪静息心率趋势
  4. 04探索活动与恢复模式

MCP 相关

它通过 Garmin 官方 Personal API 向 MCP 客户端提供 Garmin 数据和分析工具。服务在用户电脑上运行,且为只读。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"badisbenhamida-ownmetrics": {
"command": "uvx",
"args": [
"ownmetrics-mcp"
],
"env": {
"GARMIN_PERSONAL_API_KEY": "<GARMIN_PERSONAL_API_KEY>"
}
}
}
}
启动命令uvx ownmetrics-mcp
需要配置的环境变量
GARMIN_PERSONAL_API_KEY密钥Optional. Your Garmin Personal API key; otherwise run `ownmetrics-mcp auth` once to save it.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiownmetrics-mcp0.3.1

工具

13

收录的工具列表 · 更新于 今天

参数类型必填说明
datestring是日期,格式为 YYYY-MM-DD,例如 2026-10-25。

详细介绍

ownmetrics-mcp

询问 Claude、ChatGPT 或任何支持 MCP 的 AI 应用,了解你自己的 Garmin 数据:睡眠、HRV、压力、Body Battery、心率、活动等。它使用 Garmin 官方的 Personal API,在你自己的电脑上运行,并且仅提供只读访问。

非官方项目。 与 Garmin 无关联,也未获其认可或支持。 “Garmin”和“Garmin Connect”是 Garmin Ltd. 或其子公司的商标。 结果仅供参考,不能作为医疗建议。

**状态:v0.2(预览版)。**包含九个数据工具和四个洞察工具(训练摘要、 时段对比、趋势、训练与睡眠)。FIT 文件分析即将推出。

你可以这样询问

  • “我这周睡得怎么样?哪晚睡得最差,为什么?”
  • “显示我最近 30 天的 HRV。趋势是否在下降?”
  • “我昨天的压力和 Body Battery 情况如何?”
  • “列出我本月的跑步记录,包括距离和平均配速。”
  • “分析我最近的一次长距离骑行:功率、心率、训练效果。”
  • “自 9 月以来,我的静息心率有什么变化?”
  • “今年我哪个月睡得最好?那个⽉我训练了多少?”
  • “对比我今年 10 月和去年 10 月的睡眠与训练情况。”
  • “我晚上的网球活动是否会导致睡眠变差?”
  • “我的 Garmin 连接正常吗?”

最简单的方式:一键安装到 Claude Desktop

  1. 创建 Garmin Personal API 密钥:在网页上登录 Garmin Connect,打开 设置 → Personal API, 选择 Create Key,接受 Garmin 的条款,选择密钥有效期,然后复制密钥。
  2. 从最新版本下载 ownmetrics-mcp-<version>.mcpb。
  3. 双击该文件。Claude Desktop 会打开并询问是否安装;按提示粘贴密钥。 Claude Desktop 会将密钥隐藏。(如果你已经用 ownmetrics-mcp auth 保存了密钥,请将此字段留空。)
  4. 询问 Claude:“我的 Garmin 连接正常吗?”

该安装包尚未签名,因此 Claude Desktop 在安装前可能会显示警告。首次启动时会下载一些 Python 软件包,因此需要联网,可能需要等待片刻。

为其他应用设置(约 10 分钟)

适用于 Claude Code、ChatGPT 桌面应用、Cursor 和其他支持 MCP 服务的应用;如果你更喜欢使用 Claude Desktop 的配置文件,也可以按此方式设置:

1. 安装 uv(仅需一次)

uv 无需手动设置即可运行 Python 工具。

  • **macOS / Linux:**打开终端并运行 curl -LsSf https://astral.sh/uv/install.sh | sh
  • **Windows:**打开 PowerShell 并运行 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. 创建 Garmin Personal API 密钥
  1. 在网页上登录 Garmin Connect,然后打开 设置 → Personal API。
  2. 选择 Create Key,阅读并接受 Garmin 的条款,然后选择密钥有效期 (30 天到一年,由你选择)。
  3. 复制密钥。Garmin 只会显示一次。
3. 保存密钥
uvx ownmetrics-mcp auth

按提示粘贴密钥(输入时会隐藏)。系统会使用 Garmin 验证密钥,然后将其保存到你的主文件夹中的 ~/.config/garmin/connect-personal-api-key。在 macOS 和 Linux 上,该文件只有你可以读取;在 Windows 上,该文件位于你的用户配置文件夹中,并由你的 Windows 帐户保护。

4. 添加到你的 AI 应用

**Claude Desktop:**依次打开 Settings → Developer → Edit Config,然后添加:

{
  "mcpServers": {
    "ownmetrics": {
      "command": "uvx",
      "args": ["ownmetrics-mcp"]
    }
  }
}

重启 Claude Desktop。

Claude Code:

claude mcp add ownmetrics -- uvx ownmetrics-mcp

**其他应用:**使用命令 uvx,并将 ownmetrics-mcp 作为参数。

更新

uvx 会保留首次下载的版本。若要升级到最新版本,请运行 uvx ownmetrics-mcp@latest --version,然后重启你的 AI 应用。

然后询问:“检查我的 Garmin 连接,然后总结我最近一周的睡眠和 HRV。”

工具

工具返回内容
get_daily_overview一天的数据:步数、距离、楼层、心率、压力、Body Battery、卡路里、强度分钟数、睡眠
get_sleep每晚的数据:时长、深睡/浅睡/REM/清醒时间、评分、Garmin 的反馈、心率、呼吸
get_hrv每晚的数据:前一晚和每周平均 HRV、5 分钟最高值、状态、基线
get_stress_and_body_battery每天的数据:压力水平、处于各压力区间的时间、Body Battery 最高值/最低值/充能值/消耗值
get_heart_rate一天的数据:静息、最低、最高心率;7 天静息心率平均值;你的心率区间
list_activities日期范围内的活动,可按类型筛选,包含时长、距离、心率
get_activity一项活动的数据:配速、速度、功率、步频、训练效果和负荷、分段
get_body_metrics称重记录、BMI、体脂率、水合情况;Pulse Ox 和体能年龄
get_account_status密钥是否有效、最后一天是否有警告、上述哪些数据类别可用

洞察工具会在一次调用中完成数据获取和计算,时间范围最长可达一年:

工具回答的问题
training_summary按周或按月汇总训练:训练次数、小时数、每周训练小时数、晚间训练次数、按运动类别细分
compare_periods并排比较两个时段:睡眠、HRV、静息心率、压力、Body Battery、步数、训练数据,并显示变化值和变化百分比
recovery_correlations训练与次晚睡眠和 HRV 变好或变差是否相关,并显示样本量和相关强度。相关不代表因果。
trend按天、周或月查看一项指标,并显示趋势方向(上升、下降或持平)以及每 30 天的变化量

睡眠和 HRV 的日期按夜间结束的早晨计算(woke_up_on),与 Garmin 的处理方式一致。 跑步、步行和徒步显示配速;其他运动显示速度;力量训练或普拉提等运动的距离则显示 “不适用”。

每个字段名都包含单位(resting_hr_bpm、distance_km、sleep_score_0_100)。 Garmin 没有记录的值会显示为 “not recorded”,而不是零。

Garmin Personal API 不提供的内容

  • 只读: 无法向手表发送任何内容,也无法向 Garmin Connect 写入数据。
  • 不可用: 训练准备度、训练状态、急性/慢性负荷、VO2 max、 装备和设备信息。工具会注明“Garmin Personal API 未提供”,不会猜测。
  • 数据工具每次查询最多覆盖 90 天,洞察工具最多覆盖 366 天;服务会拆分请求,以符合 Garmin 自身的限制。

隐私和安全

  • 在你的电脑上运行。只与 Garmin 通信。没有数据库,也没有遥测数据。
  • 你的 AI 应用会根据其服务提供商的条款,将工具结果发送给其 AI 模型。
  • 你的密钥绝不会出现在工具结果、日志或错误信息中。
  • 你可以随时在 Garmin Connect 中删除密钥,立即切断访问权限。

详情:PRIVACY.md · THREAT_MODEL.md · 报告漏洞:SECURITY.md

使用 Garmin API 受 Garmin 条款约束:密钥仅供你个人使用,不得分享。

故障排除

  • **“Garmin rejected your Personal API key”:**密钥已过期或已删除。请创建新密钥, 然后重新执行步骤 3。Garmin 会在密钥到期前约一周发送提醒邮件。
  • **AI 应用看不到工具:**完全重启应用。在 macOS 上,如果找不到 uvx,请使用其完整路径(在终端中运行 which uvx),并将其设为 command。
  • 自行检查连接: uvx ownmetrics-mcp status

构建方式

本项目采用规范驱动开发。SPEC.md 列出了带编号的需求和不可妥协的规则;每项需求都对应 TRACEABILITY.md 中的测试,CI 会在每次更改时重新生成并检查该文件。 贡献也遵循相同流程:请参阅 CONTRIBUTING.md。

本项目基于 Garmin 官方的 connect-personal-api-python 客户端和 Model Context Protocol Python SDK 构建。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。