Koskamo

Kaiord MCP

The Kaiord MCP server exposes fitness file conversion, validation, and inspection tools to AI agents. It supports converting between FIT, TCX, ZWO, GCN, and KRD formats, validating workout structures, and extracting workout metadata for analysis.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Kaiord MCP logo, by KaiordCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Kaiord
MCP endpoint (Streamable HTTP)
https://kaiord.com/mcp
Vendor documentation

What you can do with it

  • Convert fitness files between FIT, TCX, ZWO, and KRD formats
  • Validate KRD JSON against the schema
  • Inspect and summarize fitness file metadata
  • Compare two fitness files to show differences

Source and maintenance

Community listingRegistry 10.5.0
Maintenance checked

Protocol and capabilities

Server
kaiord-mcp 10.4.0
MCP protocol
2025-06-18
Tools
8 advertised
Resources
3 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Kaiord is a fitness data framework. KRD is the canonical JSON format — all conversions go through KRD. BEFORE creating or editing KRD documents, call the kaiord_get_format_spec tool to get the full specification. Use kaiord_list_formats to discover all supported formats (FIT, TCX, ZWO, GCN, KRD). Use kaiord_convert, kaiord_validate, kaiord_inspect, kaiord_diff, kaiord_extract_workout and kaiord_round_trip_validate on inline content: send text as is and FIT as base64. Only structured workouts are accepted. FIT output comes back as base64 text.

Tools

8 advertised

kaiord_get_format_spec
Advertised by the server during the last successful anonymous check.

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

kaiord_get_format_spec input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
kaiord_list_formats
Advertised by the server during the last successful anonymous check.

List all supported fitness data formats with capabilities

kaiord_list_formats input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
kaiord_convert
Advertised by the server during the last successful anonymous check.

Convert between fitness data formats (FIT, TCX, ZWO, GCN, KRD). FIT output is returned as base64 text unless output_file is given. On the remote endpoint, ZWO input is checked for well-formedness only, not against the XSD, and only structured workouts are accepted.

kaiord_convert input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "output_format"
  ],
  "properties": {
    "ftp": {
      "type": "number",
      "description": "Athlete FTP in watts. Required for GCN output when the workout has %FTP power targets (resolved to watts)",
      "exclusiveMinimum": 0
    },
    "input_format": {
      "enum": [
        "fit",
        "tcx",
        "zwo",
        "gcn",
        "krd"
      ],
      "type": "string",
      "description": "Input format (auto-detected from extension)"
    },
    "input_content": {
      "type": "string",
      "description": "Inline content (text or base64 for binary)"
    },
    "output_format": {
      "enum": [
        "fit",
        "tcx",
        "zwo",
        "gcn",
        "krd"
      ],
      "type": "string",
      "description": "Target output format"
    }
  },
  "additionalProperties": false
}
kaiord_validate
Advertised by the server during the last successful anonymous check.

Validate a KRD JSON document against the schema On the remote endpoint, ZWO input is checked for well-formedness only, not against the XSD, and only structured workouts are accepted.

kaiord_validate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "input_content": {
      "type": "string",
      "description": "Inline KRD JSON content"
    }
  },
  "additionalProperties": false
}
kaiord_round_trip_validate
Advertised by the server during the last successful anonymous check.

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

kaiord_round_trip_validate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "input_content": {
      "type": "string",
      "description": "Base64-encoded FIT file"
    }
  },
  "additionalProperties": false
}
kaiord_inspect
Advertised by the server during the last successful anonymous check.

Inspect a fitness file and return a human-readable summary

kaiord_inspect input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "input_format": {
      "enum": [
        "fit",
        "tcx",
        "zwo",
        "gcn",
        "krd"
      ],
      "type": "string",
      "description": "Input format (auto-detected from extension)"
    },
    "input_content": {
      "type": "string",
      "description": "Inline content (text or base64 for binary)"
    }
  },
  "additionalProperties": false
}
kaiord_extract_workout
Advertised by the server during the last successful anonymous check.

Extract the structured workout from a fitness file as JSON

kaiord_extract_workout input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "input_format": {
      "enum": [
        "fit",
        "tcx",
        "zwo",
        "gcn",
        "krd"
      ],
      "type": "string",
      "description": "Input format (auto-detected from extension)"
    },
    "input_content": {
      "type": "string",
      "description": "Inline content (text or base64 for binary)"
    }
  },
  "additionalProperties": false
}
kaiord_diff
Advertised by the server during the last successful anonymous check.

Compare two fitness files and show differences

kaiord_diff input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "format1": {
      "enum": [
        "fit",
        "tcx",
        "zwo",
        "gcn",
        "krd"
      ],
      "type": "string",
      "description": "Format of the first input (auto-detected from file1)"
    },
    "format2": {
      "enum": [
        "fit",
        "tcx",
        "zwo",
        "gcn",
        "krd"
      ],
      "type": "string",
      "description": "Format of the second input (auto-detected from file2)"
    },
    "content1": {
      "type": "string",
      "description": "Inline content of the first input (text or base64 for binary)"
    },
    "content2": {
      "type": "string",
      "description": "Inline content of the second input (text or base64 for binary)"
    }
  },
  "additionalProperties": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

3 advertised

krd-schema

Advertised by the server during the last successful anonymous check.

JSON Schema for the KRD canonical format

krd-schema URI
kaiord://schema/krd

MIME type: application/schema+json

supported-formats

Advertised by the server during the last successful anonymous check.

All supported fitness data formats and capabilities

supported-formats URI
kaiord://formats
krd-format-spec

Advertised by the server during the last successful anonymous check.

KRD format specification document

krd-format-spec URI
kaiord://docs/krd-format

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1018 ms
95th percentile latency
1018 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1018 ms · metadata changed · 8 tool(s), 3 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http kaiord-mcp https://kaiord.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add kaiord-mcp --url https://kaiord.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable kaiord-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "kaiord-mcp": {
      "url": "https://kaiord.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "kaiord-mcp": {
      "type": "streamableHttp",
      "url": "https://kaiord.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start kaiord-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "kaiord-mcp": {
      "type": "http",
      "url": "https://kaiord.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http kaiord-mcp https://kaiord.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "kaiord-mcp": {
      "url": "https://kaiord.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "kaiord-mcp": {
      "serverUrl": "https://kaiord.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Kaiord MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.