健身数据协议服务器

Garmin MCP服务器连接Garmin Connect,将用户的健身和健康数据暴露给Claude和其他MCP兼容客户端。

  • by Shubhaankar-Sharma
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Shubhaankar-Sharma/garmin-mcp-railway

使用说明

Garmin MCP服务器

此模型上下文协议(MCP)服务器连接到Garmin Connect,并将您的健身和健康数据暴露给Claude和其他兼容MCP的客户端。

特性

  • 列出最近的活动
  • 获取详细的活动信息
  • 访问健康指标(步数、心率、睡眠)
  • 查看车身成分数据

设置

本地开发

  1. 在新环境中安装所需的软件包:
uv sync

远程部署(铁路)

想要远程托管此MCP服务器并从Poke等AI助手访问它吗?请参阅:

运行服务器

配置

您的Garmin Connect凭据是从环境变量中读取的:

  • GARMIN_EMAIL:您的Garmin Connect电子邮件地址
  • GARMIN_EMAIL_FILE:包含您的Garmin Connect电子邮件地址的文件路径
  • GARMIN_PASSWORD:您的Garmin Connect密码
  • GARMIN_PASSWORD_FILE:包含Garmin Connect密码的文件路径

基于文件的秘密在某些环境中很有用,例如在Docker容器中。请注意,您不能同时设置这两个 GARMIN_EMAIL 和 GARMIN_EMAIL_FILE,同样,您不能同时设置这两个 GARMIN_PASSWORD 和 GARMIN_PASSWORD_FILE.

使用克劳德桌面

  1. 在Claude Desktop中创建配置:

编辑您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

添加此服务器配置:

{
  "mcpServers": {
    "garmin": {
      "command": "uvx",
      "args": [
        "--python",
        "3.12",
        "--from",
        "git+https://github.com/Taxuspt/garmin_mcp",
        "garmin-mcp"
      ],
      "env": {
        "GARMIN_EMAIL": "YOUR_GARMIN_EMAIL",
        "GARMIN_PASSWORD": "YOUR_GARMIN_PASSWORD"
      }
    }
  }
}

将路径替换为服务器文件的绝对路径。

  1. 重新启动克劳德桌面

与MCP检查员一起

对于测试,您可以从项目根目录使用MCP检查器:

npx @modelcontextprotocol/inspector uv run garmin-mcp

用法示例

在Claude中连接后,您可以提出以下问题:

  • “显示我最近的活动”
  • “我昨晚睡得怎么样?”
  • “我昨天走了几步?”
  • “显示我最近跑步的详细信息”

安全说明

故障排除

如果您遇到登录问题:

  1. 验证您的凭据是否正确
  2. 检查Garmin Connect是否需要额外验证
  3. 确保garminconnect包是最新的

有关其他问题,请查看Claude Desktop日志:

  • macOS: ~/Library/Logs/Claude/mcp-server-garmin.log
  • 窗户: %APPDATA%\Claude\logs\mcp-server-garmin.log

Garming Connect一次性代码

如果您的帐户中启用了一次性代码,则需要先在命令行登录,在交互式cli中设置令牌。

该应用程序需要环境变量GARMIN_EMAIL或GARMIN_EMAIL_FILE。您可以使用以下命令将这些存储在文件中。

echo "your_email@example.com" > ~/.garmin_email
echo "your_password" > ~/.garmin_password
chmod 600 ~/.garmin_email ~/.garmin_password

然后,您可以手动运行登录脚本。

GARMIN_EMAIL_FILE=~/.garmin_email GARMIN_PASSWORD_FILE=~/.garmin_password uvx --python 3.12 --from git+https://github.com/Taxuspt/garmin_mcp garmin-mcp

你可能会看到

Garmin Connect MFA required. Please check your email/phone for the code.
Enter MFA code: XXXXXX
Oauth tokens stored in '~/.garminconnect' directory for future use. (first method)

Oauth tokens encoded as base64 string and saved to '~/.garminconnect_base64' file for future use. (second method)

在cli上设置令牌后,您可以在Claude中使用以下内容,而不需要env变量,因为Oauth令牌已经设置。

"garmin": {
  "command": "uvx",
  "args": [
    "--python",
    "3.12",
    "--from",
    "git+https://github.com/Taxuspt/garmin_mcp",
    "garmin-mcp"
  ]
}