健康数据分析服务器

一个将Polar设备原始数据预处理为AI可读健康分析报告的服务器,支持运动追踪、睡眠分析和心率监测等功能。

  • by mbentham
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 mbentham/PolarMCP

使用说明

极地健身MCP服务器

MCP服务器,将原始Polar设备数据转化为AI就绪的健身见解。运动样本、心率流、睡眠睡眠图和恢复指标被预处理成紧凑的摘要,因此人工智能助手可以在不破坏上下文窗口的情况下分析数天的健康数据。

快速开始

1.注册 在 管理员.polarraccesslink.com -创建一个新的API客户端,注意 client_id 和 client_secret,并将重定向URI设置为 https://localhost:8080/callback.

2.安装

npm install
npm run build

3.配置 --添加到您的MCP客户端(Claude Code settings.json克劳德桌面等):

{
  "mcpServers": {
    "polar-accesslink": {
      "command": "node",
      "args": ["/path/to/polar-accesslink-mcp-server/dist/index.js"]
    }
  }
}

4.身份验证 --让Claude使用您的客户端ID生成您的授权URL,完成浏览器流程,然后将代码交换为访问令牌。将返回的凭据添加到您的配置中:

{
  "mcpServers": {
    "polar-accesslink": {
      "command": "node",
      "args": ["/path/to/polar-accesslink-mcp-server/dist/index.js"],
      "env": {
        "POLAR_ACCESS_TOKEN": "your_access_token",
        "POLAR_USER_ID": "your_user_id"
      }
    }
  }
}

5.注册您的用户 --重启后,让克劳德打电话 polar_register_user。在访问任何数据之前,这是必需的。

特性

  • 运动追踪 --包含心率区域、训练负荷和预处理样本指标(速度分段、力量、高度、节奏、HRV)的训练
  • 日常活动 --步数、卡路里、活动/非活动持续时间,包括每小时步数和活动区域细分
  • 睡眠分析 --睡眠评分、阶段(浅/深/REM)、睡眠结构和睡眠期间的心率趋势
  • 持续心率 --带有预处理半小时桶的24/7心率数据(平均值/分钟/最大值)
  • 每晚充电 --ANS电荷、HRV趋势和呼吸频率分析
  • 心脏负荷 --日应变、公差和载荷比指标
  • SleepWise警觉性 --基于睡眠质量的小时警觉性预测
  • 练习下载 --以FIT、TCX或GPX格式导出训练
  • 双输出 --所有工具支持 markdown (人类可读)或 json (结构化)响应格式

为什么预处理很重要

Polar AccessLink API返回原始传感器数据-数千个单独的心率读数、具有数万个值的通信分离样本串以及每分钟的睡眠描记图条目。将其直接传递给人工智能助手将占用单个工具调用的大部分上下文窗口,几乎没有对话或多工具工作流的空间。

该服务器在原始数据到达AI之前将其预处理为紧凑、有意义的摘要:

原始API数据 预处理输出
约5000个逗号分隔的速度/距离值 每公里速度与平均速度分开
每天约8000个心率样本 48个半小时桶(平均/分钟/最大)+每日统计数据
每分钟睡眠催眠图条目 睡眠结构:周期计数、深度/REM分布、首次深度睡眠时间
睡眠期间每分钟心率 最小值、平均值、最低点(滚动平均值)和趋势斜率(bpm/hr)
原始心率变异性和呼吸样本 通过线性回归进行最小/最大/趋势统计
原始功率样本 平均值、归一化功率、最大值和变异性指数
每秒高度读数 总上升/下降+高度范围

结果是,一整天的活动、睡眠和心率数据可以轻松地存储在几百个令牌中,而不是数万个令牌中——这使得多日查询和跨域分析在一次对话中变得实用。

工具

该服务器在5个域中提供13个工具。

OAuth

工具 说明
polar_get_authorization_url 生成OAuth授权URL以启动安装流程。
polar_exchange_authorization_code 交换访问令牌的授权码。退货 POLAR_ACCESS_TOKEN 和 POLAR_USER_ID.

用户管理

工具 说明
polar_register_user 使用Polar AccessLink注册新用户。在访问任何数据之前需要。
polar_get_user 获取用户信息,包括姓名、注册日期和物理属性。

练习

工具 说明
polar_get_exercises 进行过去30天的锻炼。可选地包括预处理的样本指标(步速分割、功率、高度、步频、心率变异性、温度)。支持日期范围过滤
polar_download_exercise 将运动数据下载到FIT、TCX或GPX格式的文件中。

日常活动

工具 说明
polar_get_activities 使用预处理的每小时步骤桶和活动区域持续时间细分获取每日活动摘要。默认情况下返回最近28天或自定义日期范围。

健康与康复

工具 说明
polar_list_physical_info 列出身体信息条目,包括体重、身高、心率区域和最大摄氧量
polar_get_heart_rate 使用预处理的半小时桶(avg/min/max)和每日统计数据获取连续的心率数据。
polar_list_sleep 列出睡眠记录,包括睡眠评分、阶段、连续性和预处理的睡眠架构(周期分析、深度/REM分布)。
polar_list_nightly_recharge 列出夜间充电数据,包括ANS充电、HRV最小/最大/趋势和呼吸频率分析。
polar_get_cardio_load 获取每日心肺负荷指标,包括压力、耐受性、负荷比和负荷水平阈值。
polar_get_sleepwise 获取SleepWise的警觉性预测,包括警觉性等级、分类和睡眠惯性。

数据保留

Polar AccessLink API仅提供对最新数据的访问:

数据类型 保留
练习 30天
日常活动 28天
连续心率 28天
睡眠 28天
夜间充电 28天
心脏负荷 28天
SleepWise警觉性 28天
物理信息 无限制

为了保存历史数据,请定期使用导出 polar_download_exercise 或 json 响应格式。

故障排除

“拒绝访问”错误

你需要注册你的用户。让克劳德打电话 polar_register_user 配置您的访问令牌后。

授权码无效或过期

授权码是一次性的,很快就会过期。生成新的授权URL并再次完成流程。

401未经授权的错误

验证您的 client_id 和 client_secret 正确的在 管理员.polarraccesslink.com.

未返回数据

  • 确保您的Polar设备已与Polar Flow同步
  • API仅返回最近的数据(请参阅 数据保留)
Manual OAuth Setup

如果你不想使用Claude的OAuth辅助工具:

  1. 在以下位置创建应用程序 管理员.polarraccesslink.com
  2. 设置重定向类型(例如。, https://localhost:8080/callback)
  3. 指导用户授权:
    https://flow.polar.com/oauth2/authorization?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=accesslink.read_all
    
  4. 复制 code 重定向URL中的参数
  5. 将代码替换为令牌:
    curl -X POST https://polarremote.com/v2/oauth2/token \
      -u "CLIENT_ID:CLIENT_SECRET" \
      -d "grant_type=authorization_code&code=AUTH_CODE&redirect_uri=YOUR_REDIRECT_URI"
    
  6. 使用 access_token 作为 POLAR_ACCESS_TOKEN 和 x_user_id 作为 POLAR_USER_ID
  7. 注册您的用户:
    curl -X POST https://www.polaraccesslink.com/v3/users \
      -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"member-id": "YOUR_USER_ID"}'
    

许可证

麻省理工学院