Skip to main content
ClaudeWave

Evidra — a fitness decision engine exposed through MCP. Public documentation, privacy policy, and terms.

MCP ServersOfficial Registry0 stars0 forksNOASSERTIONUpdated today
ClaudeWave Trust Score
72/100
· OK
Passed
  • Actively maintained (<30d)
  • Clear description
  • Documented (README)
Flags
  • !Licence file present but not machine-readable
Last scanned: 8/21/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/henryyeh182/evidra
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "evidra": {
      "command": "node",
      "args": ["/path/to/evidra/dist/index.js"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/henryyeh182/evidra and follow its README for install instructions.
Use cases

MCP Servers overview

# Pacevera Fitness Decision Engine

Pacevera is a deterministic fitness decision engine exposed through the Model Context Protocol (MCP). It receives normalized training and health evidence supplied by the calling AI host, evaluates recovery and training constraints, and returns a structured decision.

The primary operation is to evaluate an existing scheduled session. A decision describes the change from the scheduled session to the resulting session:

```text
scheduled session (from) -> resulting session (to)
```

Each decision includes the relevant evidence, applied rules, confidence, signal coverage, and limitations.

## Scope

Pacevera provides the following capabilities:

- Deterministic calculation of recovery state, readiness, muscle-group fatigue, and training load.
- Session decisions with the types `keep`, `adjust`, `substitute`, `defer`, and `advance`.
- Constraint handling for injuries, equipment, available time, and exercise substitutions.
- Training-plan generation and caller-owned plan adjustment through preview and commit operations.
- Structured decision provenance through rule identifiers, measured values, source information, and version metadata.
- Normalization support for Apple Health, Google Health Takeout, Garmin, Strava, Oura, and WHOOP data shapes.

Pacevera does not connect to these providers on behalf of the user. The calling host must obtain and normalize provider exports or API responses before passing them to an MCP tool.

## Architecture

```text
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
```

The AI host is responsible for interpreting the user's request, collecting evidence, selecting tools, and presenting the result. Pacevera performs the calculations and rule evaluation; it does not call a model to generate a decision. Given the same code, rule set, and input, the result is deterministic.

## Decision and recommendation

| Type | Description |
|---|---|
| Recommendation | A training suggestion generated without a required prior session or plan. |
| Decision | A traceable change applied to an existing scheduled session or plan. |

`decide_session` requires `scheduledSession` to establish the prior state. If no scheduled session is provided, the tool returns `no_scheduled_session` rather than creating a session. Use `generate_plan` when a plan is required.

Decision output follows five layers:

```text
Evidence -> Fitness State -> Decision -> Action -> Reason
```

Decision intent and resulting action are separate fields. The same intent may produce different actions depending on the user's equipment, available time, injuries, and scheduled session.

## MCP tools

### Decision and planning tools

| Tool | Description |
|---|---|
| `assess_fitness_state` | Returns recovery, readiness, muscle-group fatigue, and training-load state. |
| `decide_session` | Evaluates a scheduled session and returns the resulting session. |
| `decide_exercise_substitution` | Selects a replacement movement subject to injury and equipment constraints. |
| `generate_plan` | Generates a periodized training plan. |
| `preview_adjust_plan` | Returns a deterministic patch and diff for a caller-owned plan. |
| `commit_adjust_plan` | Validates the plan version and applies a caller-owned patch. |

### Supporting and read tools

| Tool | Description |
|---|---|
| `get_evidence_coverage` | Reports available and missing evidence signals. |
| `explain_decision` | Returns the process-local rule and source trace for a previous decision. |
| `submit_outcome` | Accepts an observed outcome for a prior case; storage is bounded and local to the configured environment. |
| `search_exercises` / `get_exercise` | Queries the exercise catalog and graph relationships. |
| `search_workouts` / `get_workout` | Queries structured workout content. |
| `get_user_profile` | Returns caller-supplied user constraints and training settings. |
| `get_training_history` / `get_training_context` | Returns training history and related context. |

## Evidence and output

Evidence is supplied by the calling host. It may include recovery measurements, vendor-computed assessments, completed workouts, scheduled sessions, goals, and constraints.

Important input rules:

- Only measured or explicitly provided values should be sent. Missing signals are reported in `signalCoverage` and may lower `confidence`.
- A workout without a training-load value is not treated as zero load and is excluded from muscle-group fatigue calculations.
- RPE may be retained as evidence but is not a term in training-load or muscle-fatigue calculations.
- Vendor-computed values such as readiness, recovery, and Body Battery are used as reported and are not recomputed by Pacevera.

A typical `decide_session` response has this shape:

```json
{
  "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 does not fill missing values with defaults. `signalCoverage.recovery` describes current recovery-signal availability; `signalCoverage.training` describes whether recent workouts include the training-load data required for fatigue calculations.

## Deployment status

| Deployment mode | Status | Boundary |
|---|---|---|
| Local desktop extension | Available | Runs through stdio on the user's computer. The Pacevera process does not fetch provider data, persist Evidence, or make model calls. |
| User-controlled private deployment | Planned | Intended to run in a device, private network, or VPC controlled by the user or organization. |
| Hosted remote deployment | Not available | The repository contains resource-server readiness code, but production deployment, authorization infrastructure, and hosted privacy controls are not complete. |

The desktop extension has no runtime dependencies beyond the Node.js standard library. It does not use analytics, telemetry, crash reporting, provider accounts, or provider OAuth tokens.

## Privacy

The desktop extension processes the minimum health-related Evidence supplied by the caller for the requested fitness decision. It does not retain, sell, use for model training, or use Evidence for unrelated purposes.

The extension makes no outbound network requests and sends Evidence nowhere. On the user's own computer it does keep durable records: a bounded continuity record, and a local SQLite store holding the decisions it produced, the outcomes the user reports back, and the derived state behind them. Both are the user's to export or delete. The AI host, operating system, imported files, and any host conversation history are outside the extension's control and are governed by their respective policies.

See [PRIVACY.md](PRIVACY.md) for the complete policy and deployment scope, and [TERMS.md](TERMS.md) for the terms of use. The canonical versions are published at <https://pacevera.com/privacy> and <https://pacevera.com/terms>.

Pacevera is not a medical device and does not provide medical advice. It is intended for general fitness and training purposes only.

## Installation

Pacevera is distributed as a Claude Desktop extension (`.mcpb`).

1. Download `pacevera.mcpb` from [Releases](../../releases).
2. Optionally verify the SHA-256 checksum published in the release notes:

   ```bash
   shasum -a 256 pacevera.mcpb
   ```

3. In Claude Desktop, open **Settings -> Extensions** and install the file.
4. Restart Claude Desktop after installing or upgrading the extension.

The extension requires Node.js 20 or newer. Local persistence of decision traces and outcomes needs Node.js 22.5 or newer, which is where `node:sqlite` exists; on Node 20 or 21 the extension installs and runs without it, and reading your selected export folder for a decision is unaffected. The local plan decision is offered only once this machine holds a plan and its context, so a fresh installation does not list it — that depends on what is stored, not on the Node version.

Claude Desktop and other local MCP hosts are supported through the desktop extension. Mobile and hosted remote use cases require a remote deployment, which is not currently available for public use.

## Release status

The current public release is `v0.5.4`, using Decision Engine `1.8.0` and `base_rules@1.2.0`. It includes ten public tools, bounded local continuity, personalized single-workout generation, decision traces, package validation/dry-run/rollback, and an optional local Google Health connection. The Oura and WHOOP readers were implemented from their published API specifications and have not yet been validated against real responses; Apple Health, Garmin, Google Health, and Strava readers were developed from real export files.

## Support

- Bug reports and technical questions: [GitHub Issues](../../issues)
- Privacy requests: **support@pacevera.com**

## License

Pacevera is proprietary software. See [LICENSE](LICENSE) for the applicable terms.

## Pacevera v0.5.4

The Claude Desktop extension includes Today’s Brief, evidence-first local export reading, and plain-language tool titles. During installation, choose **Your exported health data folder** and select the parent folder containing any of these optional subf

What people ask about evidra

What is henryyeh182/evidra?

+

henryyeh182/evidra is mcp servers for the Claude AI ecosystem. Evidra — a fitness decision engine exposed through MCP. Public documentation, privacy policy, and terms. It has 0 GitHub stars and its last recorded update is dated 2026-08-21.

How do I install evidra?

+

You can install evidra by cloning the repository (https://github.com/henryyeh182/evidra) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is henryyeh182/evidra safe to use?

+

Our security agent has analyzed henryyeh182/evidra and assigned a Trust Score of 72/100 (tier: OK). See the full breakdown of passed checks and flags on this page.

Who maintains henryyeh182/evidra?

+

henryyeh182/evidra is maintained by henryyeh182. The last recorded GitHub activity is dated 2026-08-21, with 0 open issues.

Are there alternatives to evidra?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy evidra to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: henryyeh182/evidra
[![Featured on ClaudeWave](https://claudewave.com/api/badge/henryyeh182-evidra)](https://claudewave.com/repo/henryyeh182-evidra)
<a href="https://claudewave.com/repo/henryyeh182-evidra"><img src="https://claudewave.com/api/badge/henryyeh182-evidra" alt="Featured on ClaudeWave: henryyeh182/evidra" width="320" height="64" /></a>

More MCP Servers

evidra alternatives