mcpField
H
health-data

health-data

github.com/glebis数据与数据库401394 次安装1 天前更新
代码仓库

关于 health-data

health-data 用于查询和分析本地 SQLite 数据库中的 Apple Health 数据,提供常用报告,也支持直接编写 SQL 进行自定义分析。

主要功能

  1. 01生成每日和每周健康摘要
  2. 02查询睡眠、生命体征、活动和锻炼
  3. 03输出 Markdown、JSON、FHIR R4 和 ASCII
  4. 04使用 SQL 进行自定义分析

适用场景

  1. 01查看每日步数、卡路里和心率
  2. 02比较每周活动量与静息心率
  3. 03分析睡眠阶段和每晚时长
  4. 04将健康测量数据导出为 FHIR R4

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/glebis/claude-skills --skill health-data

安装后在 Claude Code 中输入/health-data确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.claude-plugin/
plugin.json
references/
fhir_mappings.md
schema.md
scripts/
health_query.py

详细介绍

Apple Health 数据查询技能

查询并分析本地 SQLite 数据库中的健康数据,其中包含 43 种健康指标的 630 多万条记录。

数据库位置

~/data/health.db

查询方法

1. Python 脚本(常见查询推荐)

使用 scripts/health_query.py 执行预构建查询并自动格式化:

# Daily summary
python ~/.claude/skills/health-data/scripts/health_query.py --format markdown daily --date 2025-11-29

# Weekly trends
python ~/.claude/skills/health-data/scripts/health_query.py --format json weekly --weeks 4

# Sleep analysis
python ~/.claude/skills/health-data/scripts/health_query.py --format fhir sleep --days 7

# Latest vitals
python ~/.claude/skills/health-data/scripts/health_query.py vitals

# Activity rings
python ~/.claude/skills/health-data/scripts/health_query.py --format json activity --days 30

# Workout history
python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running

# Custom SQL
python ~/.claude/skills/health-data/scripts/health_query.py --format json query "SELECT * FROM workouts LIMIT 5"

输出格式: markdown、json、fhir、ascii

2. 直接使用 SQL(自定义/临时查询)

如需灵活查询,可直接对数据库运行 SQL。表结构和查询模板请参阅 references/schema.md。

sqlite3 ~/data/health.db "SELECT AVG(value) FROM health_records WHERE record_type LIKE '%HeartRate%' AND start_date LIKE '2025-11%'"

预构建查询

每日健康摘要

获取今天的关键指标:

python ~/.claude/skills/health-data/scripts/health_query.py daily

返回:步数、卡路里、心率(平均值/最小值/最大值)、运动分钟数、距离、活动圆环状态。

每周趋势

比较每周表现:

python ~/.claude/skills/health-data/scripts/health_query.py weekly --weeks 4

返回:每日平均步数、静息心率、运动分钟数、每周锻炼次数。

睡眠分析

分析睡眠模式:

python ~/.claude/skills/health-data/scripts/health_query.py sleep --days 14

返回:每晚睡眠时长、睡眠阶段(核心睡眠、深度睡眠、REM 睡眠)、平均睡眠小时数。

最新生命体征

获取最近的生命体征读数:

python ~/.claude/skills/health-data/scripts/health_query.py vitals

返回:心率、HRV、静息心率、血氧、呼吸频率及其时间戳。

活动圆环

追踪圆环完成情况:

python ~/.claude/skills/health-data/scripts/health_query.py activity --days 30

返回:每日圆环值/目标、完成百分比、完美日数量。

锻炼历史

查看锻炼记录:

python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running

返回:锻炼类型、时长、距离、卡路里,以及按类型汇总的数据。

输出格式

Markdown(默认)

以易于阅读的表格和列表呈现。最适合报告和摘要。

JSON

供程序使用的结构化数据:

{
  "date": "2025-11-29",
  "metrics": {
    "steps": 8542,
    "active_calories": 450.5,
    "heart_rate": {"avg": 72.3, "min": 52, "max": 145}
  }
}
FHIR R4

医疗健康互操作格式。以 FHIR Bundle 输出,其中包含使用 LOINC 代码的 Observation 资源。代码映射请参阅 references/fhir_mappings.md。

ASCII

适用于终端的输出,包含条形图和统计信息:

============================================================
  DAILY SUMMARY - 2025-11-29
============================================================

METRICS
----------------------------------------
  steps                      2620
  active_calories           234.5
  heart_rate           avg:  67.5  min:  52  max: 108

ACTIVITY RINGS
----------------------------------------
  move       [███████░░░░░░░░░░░░░]  36.7% (238/650)
  exercise   [░░░░░░░░░░░░░░░░░░░░]   0.0% (0/35)
  stand      [████████████████████] 100.0% (10/10)

常见 SQL 模式

临时查询可使用 references/schema.md 中的以下模式:

按小时统计心率(昼夜节律模式):

SELECT strftime('%H', start_date) as hour, ROUND(AVG(value), 1) as avg_hr
FROM health_records
WHERE record_type = 'HKQuantityTypeIdentifierHeartRate'
AND value BETWEEN 40 AND 200
GROUP BY hour ORDER BY hour;

本月每日步数:

SELECT DATE(start_date) as day, SUM(value) as steps
FROM health_records
WHERE record_type = 'HKQuantityTypeIdentifierStepCount'
AND start_date >= DATE('now', 'start of month')
GROUP BY day ORDER BY day;

睡眠质量(深度睡眠 + REM 睡眠小时数):

SELECT DATE(start_date) as night,
       ROUND(SUM(duration_minutes)/60.0, 1) as quality_hours
FROM sleep_sessions
WHERE sleep_stage IN ('Deep', 'REM')
GROUP BY night ORDER BY night DESC LIMIT 14;

锻炼摘要:

SELECT REPLACE(workout_type, 'HKWorkoutActivityType', '') as type,
       COUNT(*) as count, ROUND(SUM(duration_minutes)) as total_min
FROM workouts
WHERE start_date >= DATE('now', '-30 days')
GROUP BY type ORDER BY count DESC;

可用记录类型

数据库包含 43 种健康指标类型,包括:

生命体征: 心率、HRV、静息心率、血氧、呼吸频率、血压

活动: 步数、距离、活动卡路里、基础代谢卡路里、爬楼层数、运动时间、站立时间

行动能力: 步行速度、步幅、步行不对称性、楼梯速度、步行稳定性

身体: 体重、BMI、体脂百分比

音频: 环境噪声、耳机音量

其他: VO2 Max、日光照射时间、紫外线照射

数据覆盖范围

  • 记录: 630 多万条测量数据
  • 日期范围: 2015-10-13 至今
  • 锻炼: 1,435 次
  • 睡眠记录: 40,514 条
  • 活动天数: 1,875 份每日摘要

资源

scripts/
  • health_query.py - 主要查询工具,支持 Markdown/JSON/FHIR 输出
references/
  • schema.md - 数据库架构、记录类型映射、SQL 查询模板
  • fhir_mappings.md - LOINC 代码和 FHIR R4 模板

故障排除

未找到数据库: 确保 ~/data/health.db 存在。从 /Users/server/apple_health_export/ 运行导入脚本:

python import_health.py --status

日期范围内没有数据: 检查可用日期范围:

SELECT MIN(start_date), MAX(start_date) FROM health_records;

异常值: 筛选符合生理范围的值(例如,心率为 40-200 bpm):

WHERE value BETWEEN 40 AND 200

评论

支持 Markdown