Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
pablo-albaladejo/kaiord
GitHub Stars
10
Server Listing
Kaiord

TDQS

A3.6/5.0

Scored across 8 tools

Disambiguation4/5

Each tool maps to a distinct operation (convert, diff, inspect, extract, validate, list/spec), but kaiord_validate vs kaiord_round_trip_validate and kaiord_inspect vs kaiord_extract_workout require reading descriptions to separate cleanly.

Naming Consistency5/5

All eight tools use the same kaiord_ prefix with snake_case, verb-led names (convert, diff, extract_workout, list_formats, round_trip_validate), so the pattern is fully predictable.

Tool Count5/5

Eight tools is a well-scoped set for a fitness-data conversion/validation server; every tool covers a distinct capability with no filler.

Completeness4/5

The surface covers conversion, inspection, diffing, extraction, format discovery, and both schema and round-trip validation, but there is no dedicated tool for creating or editing KRD documents despite kaiord_get_format_spec instructing agents to do so.

Available Tools

8 tools
kaiord_convertBInspect

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.

NameRequiredDescriptionDefault
ftpNoAthlete FTP in watts. Required for GCN output when the workout has %FTP power targets (resolved to watts)
input_formatNoInput format (auto-detected from extension)
input_contentNoInline content (text or base64 for binary)
output_formatYesTarget output format

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden; it does disclose genuinely useful behavior (FIT output as base64, ZWO checked for well-formedness only rather than XSD, only structured workouts accepted). Against that it references a nonexistent output_file parameter and an undocumented "remote endpoint" mode, leaving the execution model ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the core capability front-loaded and caveats trailing, no filler. One sentence spends its budget on a parameter that does not exist in the schema, which is waste rather than verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description must define the return contract, and it does so only partially: FIT is base64, but the return shape for TCX/ZWO/GCN/KRD output is unspecified. The input-side story is also vague since no file-input parameter exists yet output_file is discussed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input_format, output_format, ftp, and input_content semantics are already documented in structured fields, giving a baseline of 3. The description adds no new per-parameter meaning and its mention of output_file introduces a parameter the agent cannot actually supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Convert") plus the resource (fitness data formats) and enumerates them, so the agent knows exactly what the tool does. It does not compare itself to siblings like kaiord_validate or kaiord_round_trip_validate, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the format list, and the note that FIT output is base64 unless output_file is given hints at an output-mode choice. However, there is no explicit guidance on when to pick this over kaiord_validate or kaiord_round_trip_validate, and the referenced "output_file" does not exist in the schema, muddying the one piece of mode guidance offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaiord_diffCInspect

Compare two fitness files and show differences

NameRequiredDescriptionDefault
format1NoFormat of the first input (auto-detected from file1)
format2NoFormat of the second input (auto-detected from file2)
content1NoInline content of the first input (text or base64 for binary)
content2NoInline content of the second input (text or base64 for binary)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses almost nothing: not whether the operation is read-only (implied but unstated), not what granularity of differences are reported, and not that the tool operates on inline content rather than file paths. The one behavioral hint is that it takes 'two' inputs, which does map to the paired content1/content2 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; it is appropriately terse for a schema that documents itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should carry the behavioral load, but it never says what the diff contains, whether it succeeds on mismatched formats, or how results are returned. For a tool with zero required parameters and paired optional inputs, that leaves meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already explains format auto-detection and base64 encoding. The description adds nothing about parameters and its 'files' wording partly conflicts with the schema, which only accepts inline content and has zero required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Compare two fitness files and show differences', which is clearly distinct in kind from convert/validate/list_formats siblings. It stops short of naming a sibling alternative or scoping what 'differences' means, so it is clear but not differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this vs kaiord_validate, kaiord_round_trip_validate, or kaiord_inspect, all of which also take one or two fitness files. The agent must infer the choice from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaiord_extract_workoutBInspect

Extract the structured workout from a fitness file as JSON

NameRequiredDescriptionDefault
input_formatNoInput format (auto-detected from extension)
input_contentNoInline content (text or base64 for binary)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies an extraction/read operation and JSON output, but it does not state whether input files are modified, how errors are handled, or what behavioral constraints apply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It is appropriately sized for the tool's apparent purpose and avoids repeating schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input schema fully documents the two parameters, and the description states the output is JSON. However, with no output schema present, the description does not clarify the shape of the extracted workout or the scope of extraction, leaving a moderate completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both input_format and input_content documented directly in the schema. The description adds no parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Extract' a 'structured workout' from a fitness file, returning it 'as JSON'. It is clear what the tool does, but it does not explicitly distinguish itself from siblings such as kaiord_inspect, kaiord_convert, or kaiord_validate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The single sentence gives no when-to-use guidance, prerequisites, or explicit alternatives. An agent must infer that this tool is for extraction rather than conversion, validation, inspection, or diffing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaiord_get_format_specAInspect

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and no output schema, the description carries the full behavioral burden. It discloses the prerequisite for creating/editing, but does not explain what the returned specification contains or whether the call has side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero waste. The purpose is front-loaded, followed immediately by the actionable usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter reference lookup, the description supplies the essential purpose and timing. It could be richer about the spec's contents, but the tool's low complexity means an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly implies a simple retrieval call with no input, and no parameter explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get the KRD format specification.' This clearly distinguishes it from mutating siblings like kaiord_convert or kaiord_validate, though it does not explicitly contrast with kaiord_list_formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: 'Call this before creating or editing KRD documents.' This establishes a prerequisite, but it does not mention alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaiord_inspectBInspect

Inspect a fitness file and return a human-readable summary

NameRequiredDescriptionDefault
input_formatNoInput format (auto-detected from extension)
input_contentNoInline content (text or base64 for binary)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. 'Inspect' implies a read-only operation and 'return a human-readable summary' indicates the result type, but it does not explicitly state non-destructiveness, error behavior, or any constraints on input content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with the purpose and output front-loaded. There is no redundant or filler language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with full schema coverage but no output schema and no annotations, the description covers the basic purpose and return type. It remains incomplete regarding sibling selection, explicit read-only behavior, and what the summary contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both input_format and input_content are already well documented in the schema. The description adds no parameter-level detail, which is acceptable given the high schema coverage but does not exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Inspect), resource (fitness file), and output (human-readable summary), so the core operation is clear. However, it does not distinguish this tool from siblings such as kaiord_validate or kaiord_extract_workout, which could also inspect fitness files for different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to choose kaiord_inspect over alternatives like kaiord_validate, kaiord_extract_workout, or kaiord_convert. Any selection must be inferred from the word 'Inspect' and 'summary', which is not enough for reliable tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaiord_list_formatsAInspect

List all supported fitness data formats with capabilities

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It implies a harmless read-only enumeration and hints at return content ("with capabilities"), but does not say whether results are static, how capabilities are represented, or what the response looks like — modest gaps for a zero-parameter listing tool whose blast radius is small.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the resource and its scope front-loaded, and no filler. It is as compact as a tool description can be while still stating purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter list tool with no output schema, the description covers the essentials, but "capabilities" is left undefined and no output shape is implied. An agent knows what the call does but not quite what it will get back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema is empty and complete. Baseline 4 applies, with no parameter-related information missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("List all supported fitness data formats") and adds scope ("with capabilities"). It is clearly a catalog/enumeration tool, distinguishing it in spirit from kaiord_get_format_spec, but it never names that sibling or states the difference explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a discovery step before calling kaiord_convert or kaiord_get_format_spec. There is no explicit when-to-use, when-not-to-use, or named alternative, so the routing decision is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaiord_round_trip_validateBInspect

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

NameRequiredDescriptionDefault
input_contentNoBase64-encoded FIT file

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It says it validates and reports tolerance violations, but does not state whether the tool is read-only, whether conversion is performed internally, what happens on success/failure, what tolerance criteria are applied, or whether the input file is modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero waste. It efficiently communicates the validation target and the reporting outcome.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with full schema coverage, the core purpose is complete. However, with no output schema, the description does not explain the return format or what a tolerance violation report looks like, leaving a meaningful gap for an agent invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, input_content, and the schema already documents it at 100% coverage as a Base64-encoded FIT file. The description adds no parameter-specific semantics beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (validate), resource (round-trip FIT conversion), and scope (FIT → KRD → FIT), with an explicit reporting behavior for tolerance violations. It is clear enough to distinguish this from a basic validator, though it does not explicitly name or contrast with sibling tools like kaiord_validate or kaiord_diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The round-trip conversion context implies when to use the tool, but there is no explicit guidance on when to choose it over kaiord_validate, kaiord_diff, or kaiord_convert. No exclusions, prerequisites, or alternative-selection criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaiord_validateBInspect

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.

NameRequiredDescriptionDefault
input_contentNoInline KRD JSON content

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden; it does disclose a genuinely useful behavioral nuance (ZWO input on the remote endpoint is checked for well-formedness only, not XSD, and only structured workouts are accepted). It says nothing about what a failed validation looks like, whether errors are returned or thrown, or any size/rate constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and the core action is front-loaded, but the two clauses run together without punctuation ('against the schema On the remote endpoint'), which momentarily reads as one sentence and slows parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, one-parameter tool this is close to sufficient, and the remote-endpoint caveat is valuable. However, with no output schema and no annotations, the description never says what validation produces (pass/fail, error list, error codes), which an agent needs in order to use the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter (input_content) and schema description coverage is 100%, so the schema already explains it as 'Inline KRD JSON content.' The description adds no format, encoding, or size guidance beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Validate a KRD JSON document against the schema.' An agent can tell this is a schema-validation operation, but the description never distinguishes it from the sibling kaiord_round_trip_validate, which sounds closely related.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb (validate a KRD document), and it adds a caveat about remote-endpoint ZWO handling, but there is no explicit statement of when to pick this over kaiord_round_trip_validate or kaiord_convert, and no prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updates
    • First observedkaiord_convert
    • First observedkaiord_diff
    • First observedkaiord_extract_workout
    • First observedkaiord_get_format_spec
    • First observedkaiord_inspect
    • First observedkaiord_list_formats
    • First observedkaiord_round_trip_validate
    • First observedkaiord_validate

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to convert documents, images, and data files across 50+ format pairs and to run PDF/image operations such as merge, split, compress, rotate, protect, unlock, extract text, and resize or compress images. Files are passed URL-in and returned URL-out (or saved locally in stdio mode), with tools for checking credits and generating Stripe checkout or billing-portal links.
    18
    29 PyPI
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    File conversion for AI agents: office docs to PDF, PDF to Word, document interchange (Markdown/HTML/EPUB/LaTeX), and audio/video transcodes via the hushvert hosted API. Tools: convert_file, convert_poll, list_formats, check_usage.
    4
    19 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to inspect and convert PDF, PowerPoint, Excel, and many other file formats into clean, structured Markdown, with chunking support for long documents.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.