Skip to main content
Glama

Inspect canonical analysis

inspect_analysis
Read-onlyIdempotent

Read an existing v3 CRSProf artifact without reanalysis or downloading source points. Query segments, splits, climbs, stops, range, or quality. Pages default to 20 rows (maximum 100); follow next_offset and total_matches. Distances are metres and times seconds. Climbs group existing UP movement rows, with dwell separate. Missing/UNKNOWN terrain uses the browser grade policy (gain-loss)/distance and saved flat_grade threshold (default zero); no smoothing or new segmentation. terrain_source distinguishes stored/derived/mixed/unavailable classification; terrain_classification_status and unavailable_terrain_segment_count distinguish missing evidence from no climbs. Stored source labels are preserved. Stop duration_metric distinguishes actual_elapsed, actual_nonmoving and planned_dwell. Split separate_boundary_* fields describe structural table separators, not detected stops; their distance/time stays separate from the table subtotal and separate_stop_* fields. Comparison ranges require explicit reference or execution axis; reference timestamps never stand in for planned time. Missing metrics and coverage limitations are explicit. GPX/FIT must first use analyze_activity.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
axisNoRange only; required for comparison artifacts.
sortNocourse_order
to_mNoRange end, greater than from_m and within source coverage. Adjacent ranges own stationary boundary time once; final range includes terminal dwell.
limitNo
queryYes
from_mNoRange start on the chosen source axis; required for range.
offsetNo
artifact_idYesPrivate v3 CRSProf or uploaded CRSProf artifact ID.
duration_metricNoStops only. Unknown durations are explicitly excluded when filtering.actual_elapsed
min_duration_secondsNoStops only; inclusive duration threshold.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
axisYesSource distance axis.
rowsYes
limitYes
queryYesRequested inspection view.
offsetYes
warningsYes
next_offsetYes
total_matchesYes
terrain_flat_grade_thresholdNo
terrain_classification_statusNo
excluded_unknown_duration_countYes
unavailable_terrain_segment_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / terrain_classification_status
      Added value: +{
      +  "enum": [
      +    "complete",
      +    "partial",
      +    "unavailable",
      +    "not_applicable"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / terrain_flat_grade_threshold
      Added value: +{
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / unavailable_terrain_segment_count
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
  2. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly=true and idempotentHint=true, and the description reinforces and extends them with substantial behavioral detail: pagination defaults and next_offset/total_matches, metres/seconds units, 'no smoothing or new segmentation', explicit missing-data semantics (terrain_classification_status vs unavailable_terrain_segment_count), and the structural-separator caveat for split separate_boundary_* fields. It also clarifies that comparison never substitutes reference timestamps for planned time — exactly the kind of behavior an agent cannot infer from annotations.

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?

Every sentence earns its place — each targets a real ambiguity (dwell vs climbs, missing terrain vs no climbs, boundary separators vs stops, elapsed vs planned durations). The main purpose is front-loaded, but the body is one dense unbroken paragraph; light structuring (breaking units/pagination from domain semantics) would improve scanability.

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 10-parameter, 6-mode tool with an output schema present, the description covers prerequisites, pagination, units, derived-versus-stored semantics, missing-data behavior, and comparison constraints — leaving little an agent needs to guess. Minor gaps remain (what the 'quality' query returns, sort value meanings), and some per-query parameter applicability is left to the schema's 'Stops only'/'Range only' notes.

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?

Schema coverage is 60%, so the description compensates for the undocumented parameters: it lists all query enum values, explains pagination ('default to 20 rows (maximum 100); follow next_offset and total_matches'), gives units for range parameters, and clarifies duration_metric distinctions and the axis requirement for comparison artifacts. The only weak spot is sort, whose enum values are left entirely to the schema.

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

Purpose5/5

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

Opens with a specific verb+scope: 'Read an existing v3 CRSProf artifact without reanalysis or downloading source points' and enumerates the six query modes (segments, splits, climbs, stops, range, quality). It distinguishes itself from analyze_activity (which builds artifacts from GPX/FIT) and from source-point downloads, so an agent can recognize it as a pure read/query on an existing artifact.

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

Usage Guidelines5/5

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

States the when-to-use condition ('existing v3 CRSProf artifact... without reanalysis or downloading source points'), an explicit when-not with a named alternative ('GPX/FIT must first use analyze_activity'), and a usage constraint for a sub-case ('Comparison ranges require explicit reference or execution axis; reference timestamps never stand in for planned time'). An agent is told directly which sibling to route to and when.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources