健康数据服务

一个用于访问Apple Watch健康数据的MCP服务器实现,提供健康数据集成能力。

  • by KevinXu-github
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 kevinxu-github/apple-watch-mcp-server

使用说明

Apple Watch MCP服务器

用于访问Apple Watch健康数据的模型上下文协议(MCP)服务器实现。该项目旨在学习如何理解和实施MCP服务器,同时提供实用的健康数据集成功能。

目的

该项目被设计为 MCP学习项目 致:

  • 了解模型上下文协议(MCP)规范和实现
  • 了解如何构建可与AI助手集成的自定义MCP服务器
  • 探索Apple health导出中的健康数据解析和处理
  • 使用适当的工具和结构练习TypeScript开发
  • 用有意义的数据展示现实世界的MCP服务器功能

它做什么

Apple Watch MCP服务器通过三个主要工具为AI助手提供访问Apple Watch健康数据的权限:

可用工具

  1. get_health_summary -检索全面的健康指标

    • 步数、心率(休息/平均/最大)、睡眠时间、活动卡路里、锻炼次数
    • 支持时间范围:今天、周、月
  2. get_workout_details -获取详细的锻炼信息

    • 最近的锻炼历史,包括持续时间、距离、心率、卡路里
    • 可配置的返回训练次数限制
  3. get_heart_rate_zones -分析心率区域分布

    • 在不同心率区花费的时间
    • 恢复、有氧、厌氧区故障

数据源

服务器按照优先级顺序智能地处理多个数据源:

  1. iPhone数据 (通过iCloud同步)-来自的实时数据 health-data.json
  2. 苹果健康导出 -从Apple Health应用程序导出官方XML
  3. 真实模拟数据 -使用一致、可信的健康指标进行回退

技术架构

项目结构

apple-watch-mcp/
├── src/
│   ├── index.ts           # Main MCP server implementation
│   ├── appleHealth.ts     # Health data reader and processor
│   └── xmlParser.ts       # Apple Health XML export parser
├── package.json           # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md             # This file

关键技术

  • @模型上下文协议/sdk -MCP TypeScript官方SDK
  • TypeScript -类型安全开发
  • xml2js -Apple健康XML解析
  • 属性列表文件 -苹果财产清单处理

入门指南

先决条件

  • Node.js 18+
  • npm或纱线
  • TypeScript知识(用于开发)

安装

  1. 克隆存储库

    git clone <repository-url>
    cd apple-watch-mcp
    
  2. 安装依赖项

    npm install
    
  3. 构建项目

    npm run build
    
  4. 运行服务器

    npm start
    

发展模式

对于自动重新加载的主动开发:

npm run dev

数据设置(可选)

苹果健康导出

  1. 在iPhone上打开Apple Health应用程序
  2. 点击您的个人资料图片
  3. 向下滚动并点击“导出所有健康数据”
  4. 将导出保存到“文档”文件夹 apple_health_export

iPhone实时数据

创建一个 health-data.json 使用以下命令在iCloud Drive中创建文件:

{
  "steps": 8420,
  "heartRate": 75,
  "sleepHours": 7.5,
  "activeCalories": 450,
  "timestamp": "2025-07-18T10:30:00Z"
}

MCP集成

Claude桌面配置

添加到您的Claude Desktop MCP配置中:

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

使用示例

一旦整合,你可以问克劳德:

  • “我今天的健康总结是什么?”
  • “显示我本周的锻炼详细信息”
  • “分析我昨天的心率区域”
  • “这个月我走了多少步?”

学习成果

该项目展示了:

MCP概念

  • 服务器实现 -如何创建功能强大的MCP服务器
  • 工具定义 -AI工具集成的正确模式定义
  • 请求处理 -处理和响应MCP工具调用
  • 错误处理 -优雅的降级和错误响应

现实世界一体化

  • 数据源灵活性 -多个回退数据源
  • 健康数据处理 -解析复杂的XML健康导出
  • 时间序列分析 -过滤和聚合健康指标
  • 模拟数据策略 -开发/演示的现实倒退

TypeScript最佳实践

  • 类型安全 -全面的接口和类型定义
  • 模块化架构 -跨文件的关注点分离
  • 配置管理 -灵活的路径和数据源处理