# io.github.pablo-albaladejo/kaiord (npm · @kaiord/mcp)

Convert, validate, and inspect workout files (FIT, TCX, ZWO, Garmin Connect) for AI agents.

- Trust score: 81/100 (high trust)
- Change this week: +28
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@kaiord/mcp`: 81/100 (this document), [markdown](https://verifymcp.io/servers/pablo-albaladejo-kaiord/kaiord-mcp.md), [page](https://verifymcp.io/servers/pablo-albaladejo-kaiord/kaiord-mcp)

## Channel facts

- Registry: `npm`
- Package: `@kaiord/mcp`
- Version: `10.0.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 89/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (119 of 123), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (119 of 123), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to pablo-albaladejo/kaiord).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 15 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 84/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1026 tokens (~51/item across 20 items; 17 tools + 3 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add pablo-albaladejo-kaiord -- npx -y @kaiord/mcp
```

### Codex

```bash
codex mcp add pablo-albaladejo-kaiord -- npx -y @kaiord/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pablo-albaladejo-kaiord": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@kaiord/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pablo-albaladejo-kaiord --command npx --arg -y --arg @kaiord/mcp
```

### Hermes

```yaml
mcp_servers:
  pablo-albaladejo-kaiord:
    command: "npx"
    args: ["-y", "@kaiord/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "pablo-albaladejo-kaiord": {
      "command": "npx",
      "args": [
        "-y",
        "@kaiord/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 81, +50)

- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [security] The attested source repository moved: pablo-albaladejo/kaiord
- [functional regression] Capabilities: pass → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 31, −26)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 57, +32)

- [security regression] Malware scan: pass → unverified
- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security] The attested source repository moved: pablo-albaladejo/kaiord
- [functional regression] Security disclosure: unverified → fail
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-07-29 (score 25, −28)

- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Dependency health: unverified → partial

### 2026-07-27 (score 53)

First indexed and scored.

## MCP tools (17)

### `kaiord_get_format_spec` (~28 tokens)

Get the KRD format specification. Call this before creating or editing KRD documents.

### `kaiord_list_formats` (~19 tokens)

List all supported fitness data formats with capabilities

### `kaiord_convert` (~101 tokens)

Convert between fitness data formats (FIT, TCX, ZWO, GCN, KRD)

Input parameters:

- `input_content` (string): Inline content (text or base64 for binary)
- `input_file` (string): Path to input file
- `input_format` (string): Input format (auto-detected from extension)
- `output_file` (string): Path to write output (required for FIT)
- `output_format` (string, required): Target output format

### `kaiord_validate` (~46 tokens)

Validate a KRD JSON document against the schema

Input parameters:

- `input_content` (string): Inline KRD JSON content
- `input_file` (string): Path to KRD JSON file

### `kaiord_round_trip_validate` (~44 tokens)

Validate round-trip FIT conversion (FIT → KRD → FIT) and report tolerance violations

Input parameters:

- `input_file` (string, required): Path to a FIT file to validate

### `kaiord_inspect` (~51 tokens)

Inspect a fitness file and return a human-readable summary

Input parameters:

- `input_file` (string, required): Path to the fitness data file
- `input_format` (string): Input format (auto-detected from extension)

### `kaiord_extract_workout` (~69 tokens)

Extract the structured workout from a fitness file as JSON

Input parameters:

- `input_content` (string): Inline content (text or base64 for binary)
- `input_file` (string): Path to the fitness data file
- `input_format` (string): Input format (auto-detected from extension)

### `kaiord_diff` (~83 tokens)

Compare two fitness files and show differences

Input parameters:

- `file1` (string, required): Path to the first fitness data file
- `file2` (string, required): Path to the second fitness data file
- `format1` (string): Format of file1 (auto-detected from extension)
- `format2` (string): Format of file2 (auto-detected from extension)

### `kaiord_garmin_login` (~38 tokens)

Authenticate with Garmin Connect

Input parameters:

- `email` (string, required): Garmin Connect email address
- `password` (string, required): Garmin Connect password

### `kaiord_garmin_logout` (~18 tokens)

Log out from Garmin Connect

### `kaiord_garmin_list` (~41 tokens)

List workouts from Garmin Connect

Input parameters:

- `limit` (integer): Max workouts (default 20)
- `offset` (integer): Skip N workouts

### `kaiord_garmin_push` (~48 tokens)

Push a KRD workout to Garmin Connect

Input parameters:

- `input_content` (string): Inline KRD JSON content
- `input_file` (string): Path to KRD JSON file

### `kaiord_get_health_summary` (~41 tokens)

Summarize the latest health record per metric across input files

Input parameters:

- `input_files` (array, required): Paths to health FIT/KRD files to summarize

### `kaiord_get_sleep_history` (~57 tokens)

List sleep records from input files sorted by startTime ascending

Input parameters:

- `input_files` (array, required): Paths to FIT/KRD files containing sleep records
- `limit` (integer): Maximum number of records to return (most recent kept)

### `kaiord_get_weight_history` (~57 tokens)

List weight measurements from input files sorted by measuredAt ascending

Input parameters:

- `input_files` (array, required): Paths to FIT/KRD files containing weight measurements
- `limit` (integer): Maximum number of records to return (most recent kept)

### `kaiord_get_hrv_history` (~60 tokens)

List HRV summaries from input files sorted by measuredAt ascending

Input parameters:

- `input_files` (array, required): Paths to FIT/KRD files containing HRV summaries
- `limit` (integer): Maximum number of records to return (most recent kept)

### `kaiord_get_recovery_status` (~46 tokens)

Derive a categorical recovery status from latest HRV and sleep

Input parameters:

- `input_files` (array, required): Paths to FIT/KRD files with HRV and/or sleep data

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pablo-albaladejo-kaiord/kaiord-mcp#diagnostics

## Score history

- 2026-08-03: 81
- 2026-08-02: 81
- 2026-08-01: 31
- 2026-07-31: 57
- 2026-07-29: 25
- 2026-07-28: 53
- 2026-07-27: 53

## Links

- npm package: https://www.npmjs.com/package/@kaiord/mcp
- Socket report: https://socket.dev/npm/package/@kaiord/mcp
- Repository: https://github.com/pablo-albaladejo/kaiord
- Website: https://kaiord.com/docs/mcp/tools
- Changelog RSS feed: https://verifymcp.io/servers/pablo-albaladejo-kaiord/kaiord-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/pablo-albaladejo-kaiord/kaiord-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/pablo-albaladejo-kaiord/kaiord-mcp
