使用说明
Garmin MCP服务器
此模型上下文协议(MCP)服务器连接到Garmin Connect,并将您的健身和健康数据暴露给Claude和其他兼容MCP的客户端。
特性
- 列出最近的活动
- 获取详细的活动信息
- 访问健康指标(步数、心率、睡眠)
- 查看车身成分数据
设置
- 在新环境中安装所需的软件包:
uv sync
运行服务器
Garmin MCP服务器现在支持三种部署模式:
模式1:WebSocket(默认,推荐)
# Terminal 1: Start WebSocket backend
PORT=5001 uv run garmin-mcp
# Terminal 2 (Optional): Start HTTP adapter for testing
PORT=5000 WS_BACKEND_URL=ws://localhost:5001 python -m garmin_mcp.http_adapter
特征:
- 快速双向通信
- 用于使用curl进行测试的HTTP端点
- 支持使用HTTP适配器进行远程访问
- JSON-RPC 2.0协议
Claude桌面配置(WebSocket):
{
"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",
"PORT": "5001"
}
}
}
}
模式2:Stdio(原始、直接集成)
uv run garmin-mcp --stdio
特征:
- 直接客户端集成
- 无需额外流程
- 原始行为得以保留
- 完全向后兼容
克劳德桌面配置(标准):
{
"mcpServers": {
"garmin": {
"command": "uvx",
"args": [
"--python",
"3.12",
"--from",
"git+https://github.com/Taxuspt/garmin_mcp",
"garmin-mcp",
"--stdio"
],
"env": {
"GARMIN_EMAIL": "YOUR_GARMIN_EMAIL",
"GARMIN_PASSWORD": "YOUR_GARMIN_PASSWORD"
}
}
}
}
模式3:HTTP适配器(用于测试和远程访问)
# Terminal 1: Start WebSocket backend
PORT=5001 uv run garmin-mcp
# Terminal 2: Start HTTP adapter (requires backend running)
PORT=5000 WS_BACKEND_URL=ws://localhost:5001 python -m garmin_mcp.http_adapter
特征:
- 便于测试的HTTP端点
- 工具缓存
- 可以在与后端分离的机器上运行
- 非常适合开发和调试
卷曲测试:
# Health check
curl http://localhost:5001/health
# List tools
curl http://localhost:5000/listTools
# Call a tool
curl -X POST http://localhost:5000/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
模式比较
| 特性 | WebSocket | Stdio | HTTP适配器 |
|---|---|---|---|
| 协议 | JSON-RPC 2.0 | MCP标准 | HTTP/JSON-RPC |
| 端口 | 5001(默认) | N/A | 5000(默认) |
| 性能 | 快速 | 良好 | 中等 |
| 远程访问 | 是(使用代理) | 否 | 是 |
| 克劳德桌面 | ✓ | ✓ (--stdio) | ✓ (代理) |
| 测试 | curl | stdio | curl |
配置
环境变量
GARMIN_EMAIL="your_email" # Required
GARMIN_PASSWORD="your_password" # Required
PORT="5001" # Optional (default: 5001 for WebSocket, 5000 for adapter)
WS_BACKEND_URL="ws://localhost:5001" # Optional (adapter only)
使用克劳德桌面
编辑配置文件并设置 PORT 环境变量:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
用法示例
在Claude中连接后,您可以提出以下问题:
- “显示我最近的活动”
- “我昨晚睡得怎么样?”
- “我昨天走了几步?”
- “显示我最近跑步的详细信息”
安全说明
故障排除
端口已在使用中
如果端口已在使用中,请终止现有进程或使用其他端口:
# Use a different port
PORT=5002 uv run garmin-mcp
WebSocket连接问题
- 确保防火墙允许WebSocket连接
- 检查后端是否正在运行:
curl http://localhost:5001/health - 验证
WS_BACKEND_URL环境变量设置正确
克劳德桌面找不到服务器
- 验证凭据(GARMIN_EMAIL、GARMIN_PASSWORD)
- 检查是否指定了正确的模式(有或没有--stdio)
- 完全重新启动克劳德桌面
- 检查克劳德桌面日志:
- macOS:
~/Library/Logs/Claude/mcp-server-garmin.log - 窗户:
%APPDATA%\Claude\logs\mcp-server-garmin.log
- macOS:
登录问题
- 验证您的Garmin Connect凭据
- 检查Garmin是否需要额外的验证
- 清除令牌缓存:
rm -rf ~/.garminconnect ~/.garminconnect_base64 - 请尝试重新登录
HTTP适配器未连接到后端
# Verify backend is running
curl http://localhost:5001/health
# Check adapter status
curl http://localhost:5000/status