关于 Pacevera
Pacevera 是面向本地 MCP 客户端用户的确定性健身决策引擎,用于评估训练证据和已安排的训练课程。它计算恢复与训练状态,并返回可追溯的课程决策或计划,不使用模型生成决策。
主要功能
- 01计算恢复、准备度和疲劳
- 02决定如何处理已安排的课程
- 03生成和调整训练计划
- 04考虑伤病、器材和时间限制
- 05提供规则与证据追踪
适用场景
- 01评估是否保留或调整训练
- 02根据伤病或器材限制调整课程
- 03生成周期化训练计划
MCP 相关
Pacevera 通过 MCP 提供健身状态评估、课程决策、动作替换、计划制定及辅助工具。客户端提供证据,Pacevera 执行确定性计算和规则评估。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Pacevera 健身决策引擎
Pacevera 是一个通过模型上下文协议(MCP)提供的确定性健身决策引擎。它接收调用方 AI 主机提供的规范化训练和健康证据,评估恢复情况与训练限制,并返回结构化决策。
主要操作是评估已有的计划课程。决策描述从计划课程到最终课程的变化:
scheduled session (from) -> resulting session (to)
每项决策都包含相关证据、所应用的规则、置信度、信号覆盖情况和局限性。
范围
Pacevera 提供以下功能:
- 确定性地计算恢复状态、准备度、肌群疲劳和训练负荷。
- 课程决策类型包括
keep、adjust、substitute、defer和advance。 - 处理伤病、器材、可用时间和动作替换等限制。
- 通过预览和提交操作生成训练计划,并调整由调用方负责管理的计划。
- 通过规则标识符、测量值、来源信息和版本元数据,提供结构化决策溯源信息。
- 支持规范化 Apple Health、Google Health Takeout、Garmin、Strava、Oura 和 WHOOP 的数据格式。
Pacevera 不会代表用户连接这些数据提供方。调用主机必须先获取并规范化数据提供方的导出数据或 API 响应,然后再将其传递给 MCP 工具。
架构
AI host
└─ Collects the user's question and evidence
└─ MCP server / desktop extension
├─ Evidence normalization
├─ Fitness-state calculation
├─ Training-load calculation
├─ Deterministic rule evaluation
├─ Decision and plan operations
└─ Structured result: Decision / Action / Reason
AI 主机负责解读用户请求、收集证据、选择工具并展示结果。Pacevera 执行计算和规则评估;它不会调用模型来生成决策。给定相同的代码、规则集和输入,结果始终具有确定性。
决策与建议
| 类型 | 描述 |
|---|---|
| 建议 | 无需先前课程或计划即可生成的训练建议。 |
| 决策 | 对已有计划课程或计划所做的可追溯更改。 |
decide_session 需要 scheduledSession 来确定先前状态。如果未提供计划课程,工具会返回 no_scheduled_session,而不是创建课程。需要计划时,请使用 generate_plan。
决策输出分为五层:
Evidence -> Fitness State -> Decision -> Action -> Reason
决策意图和最终执行动作是两个独立字段。同一意图可能会根据用户的器材、可用时间、伤病情况和计划课程而产生不同动作。
MCP 工具
决策与计划工具
| 工具 | 描述 |
|---|---|
assess_fitness_state | 返回恢复状态、准备度、肌群疲劳和训练负荷状态。 |
decide_session | 评估计划课程并返回最终课程。 |
decide_exercise_substitution | 在伤病和器材限制下选择替代动作。 |
generate_plan | 生成周期化训练计划。 |
preview_adjust_plan | 为调用方负责管理的计划返回确定性的补丁和差异。 |
commit_adjust_plan | 验证计划版本并应用调用方提供的补丁。 |
支持与读取工具
| 工具 | 描述 |
|---|---|
get_evidence_coverage | 报告可用和缺失的证据信号。 |
explain_decision | 返回先前决策的进程内规则和来源追踪信息。 |
submit_outcome | 接收先前案例的观察结果;存储有上限,且仅限于配置的环境。 |
search_exercises / get_exercise | 查询动作目录及其图谱关系。 |
search_workouts / get_workout | 查询结构化训练内容。 |
get_user_profile | 返回调用方提供的用户限制和训练设置。 |
get_training_history / get_training_context | 返回训练历史记录及相关背景信息。 |
证据与输出
证据由调用方主机提供,可能包括恢复测量值、供应商计算的评估结果、已完成的训练、已安排的训练课程、目标和限制条件。
重要输入规则:
- 只能发送已测量或明确提供的值。缺失的信号会在
signalCoverage中报告,并可能降低confidence。 - 缺少训练负荷值的训练不会被视为负荷为零,并且不纳入肌群疲劳计算。
- RPE 可以保留为证据,但不是训练负荷或肌肉疲劳计算中的一项。
- 供应商计算的值(例如准备度、恢复情况和 Body Battery)会按报告值使用,Pacevera 不会重新计算。
典型的 decide_session 响应格式如下:
{
"decision": { "type": "adjust", "intent": "reduce_today_intensity" },
"action": {
"from": { "focus": "Tempo Run", "durationMinutes": 50, "intensity": "high" },
"to": { "focus": "Moderate run", "durationMinutes": 50, "intensity": "moderate" },
"changed": ["focus", "intensity"]
},
"confidence": "high",
"signalCoverage": {
"recovery": { "usable": ["readiness"], "missing": ["sleep"] },
"training": { "usable": ["trainingLoad"], "missing": [] }
},
"decisionBasis": {
"governingRule": {
"ruleId": "EVD-R-002",
"measured": { "quantity": "readiness_score", "value": 48 }
}
}
}
Pacevera 不会用默认值填补缺失值。signalCoverage.recovery 描述当前恢复信号的可用情况;signalCoverage.training 描述近期训练是否包含疲劳计算所需的训练负荷数据。
部署状态
| 部署模式 | 状态 | 边界 |
|---|---|---|
| 本地桌面扩展 | 可用 | 通过 stdio 在用户的计算机上运行。Pacevera 进程不会获取供应商数据、持久化证据或调用模型。 |
| 用户控制的私有部署 | 计划中 | 计划在由用户或组织控制的设备、私有网络或 VPC 中运行。 |
| 托管式远程部署 | 不可用 | 代码仓库包含资源服务器就绪代码,但生产部署、授权基础设施和托管隐私控制尚未完成。 |
除 Node.js 标准库外,桌面扩展没有其他运行时依赖。它不使用分析、遥测、崩溃报告、供应商账户或供应商 OAuth 令牌。
隐私
桌面扩展会针对所请求的健身决策,仅处理调用方提供的最低限度健康相关证据。它不会保留、出售证据,不会将证据用于模型训练,也不会将证据用于无关目的。
该扩展不会发出任何出站网络请求,也不会向任何地方发送证据。它确实会在用户自己的计算机上保留持久记录:一份有大小限制的连续性记录,以及一个本地 SQLite 存储,其中保存它生成的决策、用户反馈的结果及其背后的派生状态。这两者均可由用户导出或删除。AI 主机、操作系统、导入的文件以及任何主机对话历史均不受该扩展控制,分别受各自政策约束。
完整政策和部署范围请参阅 PRIVACY.md;使用条款请参阅 TERMS.md。规范版本发布于 https://pacevera.com/privacy 和 https://pacevera.com/terms。
Pacevera 不是医疗器械,也不提供医疗建议。它仅供一般健身和训练用途使用。
安装
Pacevera 以 Claude Desktop 扩展(.mcpb)的形式分发。
-
从 Releases 下载
pacevera.mcpb。 -
可选择验证发布说明中提供的 SHA-256 校验和:
shasum -a 256 pacevera.mcpb -
在 Claude Desktop 中,打开 Settings -> Extensions 并安装该文件。
-
安装或升级扩展后,重启 Claude Desktop。
该扩展需要 Node.js 20 或更高版本。决策轨迹和结果的本地持久化需要 Node.js 22.5 或更高版本,因为该版本开始提供 node:sqlite;在 Node 20 或 21 上,该扩展可以安装和运行,但不具备此功能;读取你所选导出文件夹中的数据以供决策使用则不受影响。只有当这台设备上存有计划及其上下文时,才会提供本地计划决策,因此全新安装时不会列出该决策——这取决于存储的内容,而非 Node 版本。
Claude Desktop 及其他本地 MCP 主机可通过桌面扩展获得支持;Claude 自带的 Dispatch 也可以通过手机操控已安装的扩展,整个流程无需在任何环节部署远程服务——但需要桌面应用正在运行、订阅 Pro 或 Max 计划,并且你能够使用该功能。目前,Pacevera 运营的托管远程服务仍未向公众开放。
发布状态
当前公开发布版本为 v0.5.8,使用 Decision Engine 1.12.0 和 [email protected]。该版本包含十个公开工具、有限的本地连续性、个性化单次训练生成、决策轨迹、软件包验证/试运行/回滚,以及可选的本地 Google Health 连接。Oura 和 WHOOP 读取器根据其公布的 API 规范实现,尚未通过真实响应验证;Apple Health、Garmin、Google Health 和 Strava 读取器则基于真实导出文件开发。
支持
- Bug 报告和技术问题:GitHub Issues
- 隐私请求:[email protected]
许可证
Pacevera 是专有软件。适用条款请参阅 LICENSE。
Pacevera v0.5.8
Claude Desktop 扩展包含今日简报、优先依据证据读取本地导出数据,以及通俗易懂的工具标题。安装时,请选择 你的导出健康数据文件夹,并选取包含以下任一可选子文件夹的父文件夹:
Your exported health data folder/
├── export_apple_health/ # Apple Health export.xml
├── export_garmin/ # Garmin Export Your Data / DI_CONNECT
├── export_strava/ # Strava activities.csv
└── export_google_health/ # raw/ for JSON you pulled yourself,
# normalized/ for what the connection wrote
Pacevera 会在本地读取所选文件夹;对于缺失的数据源,会报告为不可用,而不会猜测。MCPB 校验和已在发布说明中公布。
v0.5.8 包含一个可选的 Google Health 连接,可在你的电脑上运行。你可以在自己的浏览器中批准连接,也可以用手机扫描二维码;浏览器流程会直接连接 Google,整个流程中不会经过 Pacevera 服务器;二维码流程则会经过 Pacevera 中继服务,该服务只处理短时有效的授权交接,不会接触你的健康数据、令牌或用于在你的设备上完成交换的 PKCE 密钥。无论你完成哪种流程,另一种都会取消。
在 v0.5.8 中,每条 Google Health 响应都会在内存中规范化,且只写入由此产生的证据;提供方的响应本身绝不会写入磁盘。你也可以在应用内断开连接:这会在 Google 撤销授权、删除存储的凭据、删除之前同步写入的证据,并从本地存储中清除派生记录。你自行放入文件夹的文件会列出并提示你删除,但不会替你移除。
此连接最多支持 100 个账号,Google 会提示你此应用尚未通过验证。 Pacevera 的 Google 应用已于 2026-08-20 从 Testing 转为 Production,因此不再需要邀请,但 Google 对健康相关权限范围的审核尚未完成。在审核完成前,你必须先通过 Google 显示的“Google 尚未验证此应用”页面,才能授权;此应用生命周期内最多只能有 100 个账号授权此连接。读取你自己导出的文件夹、通过 AI 主机提供证据,以及所有决策工具均不受影响。
v0.5.8 修正了三种决策中出现的不实表述。当你排除某个动作后,训练课因此变空,Pacevera 提供的替代动作却从未按同一限制进行检查——比如你不能做深蹲,结果两个杠铃深蹲都被移除,却加入了一个徒手深蹲,而原因说明只提到被移除的动作。现在,替代动作也会经过同样的检查;如果没有动作符合要求,就不会列出任何动作,而是说明限制原因,不再凭空编造。它还会说明该动作是备用选项,而非取自你自己的计划;以前完全没有提到这一点。如果没有任何规则生效,结尾句也不再声称所有读数都在范围内:在本来就轻松的一天,恢复值低于 60;或者在不算高强度的一天,肌群疲劳值达到 40,都可能越过界限,却没有任何规则生效。现在,这句话会指出相关读数、界限,以及没有采取干预的原因。而在整周都没有记录训练的情况下,它也不再声称目标肌群上一周没有负荷——实际上是没有数据可查,这是另一回事;现在会如实说明。
Today's Brief 会遵循对话所用的语言:用繁体中文提问,卡片就会使用繁体中文;用英语提问,卡片就会使用英语。在 v0.5.7 中,它遵循的是桌面应用的显示语言,不管你当时使用什么语言。
Pacevera 也不再暗示 Garmin 有需要修复的连接。Garmin 读数只会通过你放入文件夹的导出文件传入——没有账号可关联,也没有同步状态可检查。现在,助手会如实说明这一点,而不会再提出检查并不存在的同步。
v0.5.7 修复了扩展可能停止响应的两种情况,这两种情况在 v0.5.6 中都存在。在没有收到新的恢复读数的那天——也正是最值得询问决策的一天——通过已保存的计划询问当天的决策,却什么也得不到,因为本地存储拒绝记录引擎有意报告的空就绪度。现有存储会就地修复,保留其中的所有记录。另一个问题是,单个体积过大且嵌套层级很深的请求可能导致扩展直接终止;从外部看,就像整个连接器消失了一样。现在,异常请求只会单独失败,扩展会继续运行。提高训练课强度的那条规则,在置信度较低时不再提高强度:证据不足时,可以维持或降低强度,不能增加负荷。覆盖情况的报告也更加直观——会列出实际使用的供应商评分,而覆盖率表示五类证据所占的比例,不再是一个可能超过自身上限的数字。文件夹读取会记录从 Garmin 导入的内容,但不会把你的文件夹路径或文件指纹交给 AI 主机。(本次发布曾被描述为让 Today's Brief 遵循你当前使用的语言。这一描述不准确:在 v0.5.7 中,卡片遵循的是桌面应用的显示语言。v0.5.8 才是让卡片遵循对话语言的版本。) v0.5.6 会根据你最近几晚的数据,而不是固定参考值,评估你的 HRV。如果设备已经计算出准备度或 HRV 分数,就会使用该分数,而不会再次根据原始读数评分。原始读数会保留,并标记为已取代,同时注明取代它的数据,因此即使你提供了读数,决策也不会再说缺少读数。连接 Google Health、同步数据,以及根据已存储的计划询问今天的决策时,都不再要求你提供账号标识符:Pacevera 从未发放过账号标识符,而后续对话中再次被要求提供它,才会让正常工作的连接看起来像是已过期。如果这台设备上有多个档案,Pacevera 会按名称询问你要使用哪一个,而不是自行猜测。
v0.5.2 为每条读数添加了来源链——Pacevera 从哪里读取数据,以及哪个应用写入了数据,因此同步到 Apple Health 的 Garmin 数据不会被误报为 Apple Health 自己的数据。如果导出的数据没有注明写入应用,读数会标记为来源未注明,而不会靠猜测。决策还会附带一条简短的连续性记录,供后续对话传回;Pacevera 会检查它是否仍能描述你的当前状态,并在不符时明确说明。它只会检查,不会合并:决策始终依据当前持有的证据得出。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。