Apple Watch MCP服务器
用于访问Apple Watch健康数据的模型上下文协议(MCP)服务器实现。该项目旨在学习如何理解和实施MCP服务器,同时提供实用的健康数据集成功能。
目的
该项目被设计为 MCP学习项目 致:
- 了解模型上下文协议(MCP)规范和实现
- 了解如何构建可与AI助手集成的自定义MCP服务器
- 探索Apple health导出中的健康数据解析和处理
- 使用适当的工具和结构练习TypeScript开发
- 用有意义的数据展示现实世界的MCP服务器功能
它做什么
Apple Watch MCP服务器通过三个主要工具为AI助手提供访问Apple Watch健康数据的权限:
可用工具
get_health_summary-检索全面的健康指标
- 步数、心率(休息/平均/最大)、睡眠时间、活动卡路里、锻炼次数 - 支持时间范围:今天、周、月
get_workout_details-获取详细的锻炼信息
- 最近的锻炼历史,包括持续时间、距离、心率、卡路里 - 可配置的返回训练次数限制
get_heart_rate_zones-分析心率区域分布
- 在不同心率区花费的时间 - 恢复、有氧、厌氧区故障
数据源
服务器按照优先级顺序智能地处理多个数据源:
- iPhone数据 (通过iCloud同步)-来自的实时数据
health-data.json - 苹果健康导出 -从Apple Health应用程序导出官方XML
- 真实模拟数据 -使用一致、可信的健康指标进行回退
技术架构
项目结构
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知识(用于开发)
安装
- 克隆存储库
git clone
cd apple-watch-mcp- 安装依赖项
npm install- 构建项目
npm run build- 运行服务器
npm start发展模式
对于自动重新加载的主动开发:
npm run dev数据设置(可选)
苹果健康导出
- 在iPhone上打开Apple Health应用程序
- 点击您的个人资料图片
- 向下滚动并点击“导出所有健康数据”
- 将导出保存到“文档”文件夹
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最佳实践
- 类型安全 -全面的接口和类型定义
- 模块化架构 -跨文件的关注点分离
- 配置管理 -灵活的路径和数据源处理
