mcpField
M
marrow

marrow

本地服务
marrowhealthapp.com健康医疗44 天前更新

关于 marrow

marrow-mcp 是 Marrow 免费 iOS 应用的自托管伴随服务器,将 Apple Health 数据镜像到本地 SQLite,供 AI Agent 查询。数据保存在自有硬件上,并通过 MCP 提供只读健康数据访问。

主要功能

  1. 01镜像 178 类健康数据
  2. 02提供每日摘要与个人基线
  3. 03查询睡眠、营养、运动和症状
  4. 04本地 SQLite 存储与后台同步
  5. 05附带提示词和资源

适用场景

  1. 01回顾近期睡眠与训练变化
  2. 02按个人基线解读健康指标
  3. 03准备就诊时整理健康记录

MCP 相关

通过 Streamable HTTP 提供 MCP 服务,使用 bearer token 验证。配对的自托管服务器提供 13 种只读工具、4 个提示词和 4 个资源;写入工具不会向此类客户端开放。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tech-skeletonarmy-marrow": {
"command": "uvx",
"args": [
"marrow-mcp"
]
}
}
}
启动命令uvx marrow-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimarrow-mcp0.4.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Marrow Health

Marrow Health MCP 服务(marrow-mcp)

让你的 AI Agent 读取你自己的 Apple Health 数据。

Marrow 是一款免费的 iOS 应用,可追踪 178 项健康数据系列——172 种 Apple Health 类型,以及应用自带的饮食日记和 逐组记录的举重日志。这个仓库是它的可自托管配套服务:仅一个 Python 文件,只使用 标准库,可在你自己的硬件上保存数据的 SQLite 镜像,并通过 Model Context Protocol 提供服务,让 Agent 随时随地查询,即使手机放在口袋里也没问题。

这里的任何内容都不会连接云端。数据只会从手机流向你的设备,仅此而已。

Agent 通过 MCP 查询 Marrow:从手机获取睡眠和锻炼数据并作答

运行

pip install "marrow-mcp[qr]"                  # [qr] adds segno, which draws the pairing QR
marrow-server --port 8800 --data ./data       # prints a pairing URL

如果不加 [qr],配对页面会显示配对 JSON,而不是二维码。

也可以从克隆的仓库运行

python3 marrow_server.py                      # prints a pairing URL
python3 marrow_server.py --port 8800 --data ./data

或者使用 Docker

docker compose up -d

在任意屏幕上打开配对 URL,然后在 Marrow 中依次选择:Export、Server MCP、 Pair with a server,并扫描二维码。此后,即使应用关闭,应用的后台推送也会 让镜像保持最新。应用只会在你自己的网络上通过普通 http 配对(私有或 tailnet IPv4 地址、.local 或 .ts.net 名称、简短的 LAN 名称)。公用地址需要使用 https(--url https://...)。

升级到 0.3.0

停止旧服务,并在同一个 --data 目录下启动新服务。 现有的 mirror.sqlite 会在首次启动时添加新列,--data 中的令牌也会保留,因此手机仍保持配对状态。 Marrow 1.4 记录的组会带有 set_type(work、 warmup、failure 或 drop)。热身组仍会列出,但不再计入训练量或记录;升级前镜像中的 行则会读取为正式组。

连接 Agent

该服务通过 Streamable HTTP 提供 MCP(JSON-RPC 2.0,协议版本 2025-06-18),并使用首次运行时生成、与配对链接一同打印的 bearer 令牌进行身份验证。

Claude Code

claude mcp add --transport http marrow \
  http://<server-ip>:8800/mcp \
  --header "Authorization: Bearer <mcp token>"

Claude Desktop,一键安装

下载 marrow.mcpb, 双击后,Claude Desktop 会安装扩展并询问 URL 和令牌。无需使用终端。(该软件包是一个位于 mcpb/ 中、体积很小且无依赖的桥接程序。它只会将 Claude 的 stdio 转发到你的 Marrow URL,不做其他操作。)

Claude Desktop(手动配置)、Cursor,或任何使用 mcp.json 的客户端

{
  "mcpServers": {
    "marrow": {
      "type": "http",
      "url": "http://<server-ip>:8800/mcp",
      "headers": { "Authorization": "Bearer <mcp token>" }
    }
  }
}

手动检查

curl -s http://<server-ip>:8800/mcp \
  -H "Authorization: Bearer <mcp token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

工具

共有 13 个工具,全部为只读。服务也包含写入工具(记录餐食、锻炼等),但只有在手机注册以启用写回后才会列出这些工具,而目前只有 Marrow Connect 会这样做。通过应用配对的可自托管服务提供这 13 个只读工具,不包含任何 Agent 可调用、会写入你健康记录的工具。

其中 4 个工具会使用应用自身的表达方式回答,并采用与应用主页相同的算法,将数据与个人近期正常水平进行比较(不包括当天数据),让 Agent 一开始就能读取对你而言已经有意义的结果,而不是拿某个数值与总体人群进行比较:

工具返回内容
daily_brief某一天的数据:每项关键指标及其数值和描述(对你而言正常、高于你的正常水平、远低于你的正常水平)、饮食和饮水与目标的对比、前一晚的睡眠、已完成的训练、情绪和症状,以及值得提及的标记
baselines每项指标对你而言的正常水平:时间窗口内的平均值和波动范围、最新数值的 z 值和描述、7 天平均值,以及按月计算的 90 天趋势
what_changed最近几天与此前一段时间的对比:有哪些变化、这些变化对你而言有多显著,以及饮食、训练、睡眠和就寝时间的变化,还有开始或停止接收数据的项目
data_quality镜像中保存的数据及其新鲜度:每项指标的最新日期、覆盖情况、频率、来源和是否已过期,以及日记、睡眠和训练数据的覆盖情况,还有手机上次同步的时间

9 个原始数据读取工具:

工具返回内容
health_summary最近几天的活动、心脏、睡眠和营养数据
list_metrics镜像中的所有指标,包括单位和覆盖情况
metric_daily任意指标的每日数值,最多 400 天
metric_samples带时间戳和来源设备的原始记录
workouts来自所有来源的训练:活动、开始时间、结束时间、时长和来源
nutrition_log餐食日记:按天记录的所有食物及完整营养详情
strength_log每组举重记录及其组别类型和估算 1RM、各项运动的进展,以及各肌群的训练量(不包括热身组)
sleep_log按醒来日期记录每晚数据:就寝时间、醒来时间、睡眠时长和各睡眠阶段的分钟数
symptoms_and_mood症状及其严重程度,以及包含效价、感受和相关对象的 State of Mind 记录

每次读取都会从手机上的当天往前取 days 天的数据,或者按手机日历中的日期范围指定 from 和 to。metric_samples 使用 before 分页(填写你已有的最后一条记录的开始时间)。具有输出架构的工具也会返回 structuredContent。

服务还提供 4 个提示词(how_am_i_doing、weekly_review、doctor_prep、log_from_text)和 4 个资源(marrow://today、marrow://metrics、marrow://targets、marrow://quality),供能够展示这些内容的客户端使用。

指标键:list_metrics 显示 Apple 的短名称(active_energy_burned),工具也接受应用自身的键(active_energy、heart_rate_variability),因此从手机切换过来的 Agent 可以继续使用原有术语。

接着问你的 Agent 这样的问题,例如 “我开始晨练后,睡眠发生了什么变化?”,让它去查找答案。

Kits、recipes 和 Claude Code 插件

  • kits/:可直接复制粘贴的配置,适用于 Claude Code、Claude Desktop、 Cursor、OpenClaw 和 Hermes Agent。
  • recipes/:Marrow Automations 的接收端(应用会按计划将 数据 POST 到任意 URL,即使应用已关闭也可以):Home Assistant、 n8n、通过 Apps Script 接入 Google Sheets、InfluxDB。
  • 使用 Marrow 构建: 人们基于这些连接运行的完整项目,从 Body Ops 开始,这是一个适用于 Marrow 发送的各种数据的 Grafana 仪表板。欢迎提交 你的项目。
  • Claude Code 插件:运行 /plugin marketplace add MarrowHealth/marrow-mcp 然后运行 /plugin install marrow-health@marrow。它会添加 Marrow Connect 服务和四个命令(/marrow-health:how-am-i-doing、weekly-review、 doctor-prep、log),以及一个了解各个问题该由哪个工具回答的技能。

为什么不使用内置的 Claude 或 ChatGPT 连接器?

Claude(Pro/Max,美国)和 ChatGPT 现在都能原生读取 Apple Health。如果这就是你 所需的全部功能,可以使用它们。但它们的功能止于此服务所能实现的地方:

Claude / ChatGPT 连接器Marrow + 此服务
适用范围仅限 iOS 应用Claude Code、Claude Desktop、Cursor、OpenClaw、Hermes、任何 MCP 客户端,可在任何设备上使用
可用时间你在手机上使用聊天时全天候,手机放在口袋里,也能通过你自己的设备使用
模型可见的数据原始 HealthKit 数值与 Apple 自身汇总值核对后的每日数值、饮食日记、逐组训练记录
数据存储位置他们的云端,按对话隔离你拥有的硬件上的 SQLite
费用订阅免费,MIT

OpenClaw / Hermes / 家用设备上的任何 Agent。 将 Agent 的 MCP 配置指向带有 Bearer 令牌的服务 URL,具体配置方式与上面的 mcp.json 代码块完全相同。使用 tailscale serve --bg --https=8800 http://127.0.0.1:8800 从局域网外访问,并使用 tailnet URL。

其他接入方式

此服务是 Marrow「导出」标签页中的一种接入方式;若要让 Agent 访问数据,并不一定要使用它:

  1. 本地 MCP。 Marrow 会直接在 iPhone 上运行 MCP 服务,地址为 http://<phone-ip>:21212/mcp,应用运行时即可响应。无需额外硬件, 即可读取上述七种原始数据。
  2. 服务端 MCP。 此软件包:在你自己的设备上运行始终在线的数据镜像。
  3. 自动化。 按计划推送到任意 URL(Home Assistant、n8n 或你自己的 端点)。
  4. 手动。 通过共享菜单导出 CSV、JSON 和 GPX 文件。

以上四种方式都包含在免费套餐中。所有方式的设置指南: https://marrowhealthapp.com/guides。

Marrow Connect 是托管式 Pro 方案:Marrow 运行数据镜像,ChatGPT、Claude 或 Gemini 可以在手机休眠且无需运行任何程序的情况下读取数据。它是唯一可以代你记录数据的接入方式,但你需要先在应用中启用「允许 AI 写入」。 https://marrowhealthapp.com/connect

安全性

  • 两个服务都面向局域网或 tailnet 构建。不要将其端口转发到 公网。 如果需要远程访问,请在前面设置 tailscale serve、Caddy 或同等服务,确保传输使用 HTTPS,并在提供 Bearer 令牌之前 验证设备身份。
  • --data 中存放着两个独立的令牌:.app-token 用于接收手机推送的数据, .mcp-token 用于 Agent。轮换其中一个不会影响另一个。
  • 数据写入具有幂等性,并以 UUID 为键,因此重复发送的数据批次不会重复计数。

状态

Marrow 已上架 App Store,支持 iOS 17 及更高版本,并且需要 Apple Health。 在 App Store 下载。

iOS 应用为闭源。此服务则不是,因为你应该能够查看任何要求你在自有硬件上运行的程序。

注册信息

已列入官方 MCP 注册表, 名称为 tech.skeletonarmy/marrow,并已通过 skeletonarmy.tech 的 DNS 验证。

mcp-name: tech.skeletonarmy/marrow

帮助与政策

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。