Skip to main content
Glama

Server Details

Pace is a remote MCP server that exposes wearable and fitness data to Claude via the Model Context Protocol. It connects to Garmin, Oura, Whoop, Polar, Fitbit and 20+ devices and provides 15 tools for querying sleep, activity, recovery, and training data. Hosted on Google Cloud Run, OAuth 2.1 authentication, Streamable HTTP transport.

Instructions: First you need to create an account at: https://pacetraining.co and connect your wearables. After that you can connect the remote Server via Custom Connector in Claude and OAuth 2.1 Flow startet.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 15 of 15 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose covering different aspects of fitness data (activities, body, sleep, nutrition, recovery, workouts, trends). Overlapping tools like get_activity_data, get_daily_summary, and get_training_summary are differentiated by scope and parameters.

Naming Consistency5/5

All tools follow a consistent 'get_' prefix with snake_case noun phrases (e.g., get_activity_data, get_sleep_samples). No mixing of conventions or irregular verbs.

Tool Count5/5

15 tools is well-scoped for a comprehensive fitness data server. Each tool provides essential functionality without redundancy, covering all major domains efficiently.

Completeness5/5

The tool set covers the full lifecycle of data retrieval for fitness tracking: overview, specific domains (activity, body, sleep, nutrition, recovery), detailed drill-downs (workouts, sleep samples), and trend analysis. No obvious gaps for a read-only aggregation API.

Available Tools

15 tools
get_activity_dataGet Activity DataA
Read-only
Inspect

Retrieves training activities for the user over a specified date range. Shows distance, duration, pace, heart rate, calories, and training load.

Parameters:

  • start_date: Start date in YYYY-MM-DD format

  • end_date: End date in YYYY-MM-DD format

  • activity_type: Optional. Filter: 'RUNNING', 'CYCLING', 'STRENGTH_TRAINING', etc. Matches all type-aliases — 'CYCLING' also returns ROAD_BIKING / MOUNTAIN_BIKING / INDOOR_CYCLING etc.

  • prefer_provider: Optional. Per-query soft-override (e.g. 'WHOOP', 'GARMIN'). Influences duplicate-cluster picking. Clusters without this provider remain on default picker.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYes
start_dateYes
activity_typeNo
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description adds useful behavioral context beyond the readOnlyHint annotation, such as how activity_type matches type aliases and how prefer_provider influences duplicate selection. However, it does not mention pagination, maximum results, or data freshness.

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?

The description is well-structured with a brief introductory sentence followed by parameter descriptions. While it is clear and organized, it is slightly verbose; parameter details could be more concise.

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?

Given the presence of an output schema, the description does not need to explain return values. It covers essential aspects like date range, activity type filtering with alias matching, and provider preference. However, it could mention that multiple activities are returned and any limits.

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

Parameters5/5

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

Despite 0% schema description coverage, the description provides detailed explanations for all four parameters, including date format (YYYY-MM-DD), alias matching for activity_type, and soft-override behavior for prefer_provider. This fully compensates for the lack of schema descriptions.

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 clearly states the tool retrieves training activities with a date range and lists the fields returned. It specifies the resource and verb, making the purpose unambiguous. However, it does not distinguish from sibling tools like get_workout_list, which could cause confusion.

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 guidance is provided on when to use this tool versus alternatives. For example, it does not indicate that get_workout_detail should be used for a single workout or that get_workout_list might be an alternative. The user must infer usage from context.

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

get_body_dataGet Body MeasurementsA
Read-only
Inspect

Retrieves body measurement data: weight, body fat, muscle mass, and BMI.

Parameters:

  • start_date: Start date in YYYY-MM-DD format

  • end_date: End date in YYYY-MM-DD format

  • prefer_provider: Optional. Per-query soft-override (e.g. 'WITHINGS', 'GARMIN').

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYes
start_dateYes
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds valuable behavioral context: the prefer_provider parameter allows per-query soft-override, which is beyond basic schema info. No contradictions.

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 sentences plus parameter list. Purpose stated first. Every sentence adds value. No redundancy.

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?

Output schema exists, so return values are covered. Description addresses all three parameters and the core functionality. Could mention data availability constraints or ordering.

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 description coverage is 0%, so description carries full burden. It specifies date format (YYYY-MM-DD) and explains prefer_provider's role as optional soft-override with examples. Could list supported providers.

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?

Describes retrieving specific body measurements (weight, body fat, muscle mass, BMI) with clear verb 'retrieves' and resource 'body measurement data'. Distinguishes from sibling tools like get_activity_data or get_nutrition_data.

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?

Implicitly clear purpose but lacks explicit guidance on when to use this tool versus alternatives. No mention of prerequisites, limitations, or context that would help an agent decide.

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

get_connected_devicesGet Connected DevicesA
Read-only
Inspect

Lists all connected wearables and fitness trackers. Shows status, last sync time, and Terra User ID.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

Annotations already provide readOnlyHint=true. Description adds no behavioral details beyond listed output fields; no disclosure of network calls or constraints.

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 concise sentences: first states purpose, second lists key output fields. No unnecessary words.

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?

With no parameters, readOnly annotation, and output schema present, description provides sufficient context. Mentions output fields (status, last sync, user ID) which adds value.

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?

No parameters, so schema coverage is 100%. Baseline of 4 applies; no additional parameter info needed.

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?

Clearly states it lists connected wearables and fitness trackers, with specific details (status, last sync, user ID). Distinct from sibling tools by focusing on device connectivity.

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?

Implicitly clear when to use: to get list of connected devices. No explicit exclusions or alternatives, but context and naming differentiate from data query tools.

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

get_daily_summaryGet Daily SummaryA
Read-only
Inspect

Shows the daily summary for a specific date: steps, active time, calories, resting heart rate, HRV, and stress level.

Parameters:

  • date: Date in YYYY-MM-DD format

  • prefer_provider: Optional per-query soft-override (e.g. 'OURA', 'GARMIN').

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds context about the returned metrics (steps, HRV, etc.), which is beyond what annotations provide, but does not mention rate limits or auth requirements. Still, it is consistent and useful.

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 two sentences plus a parameter list with no redundant words. It front-loads the primary purpose and then details parameters efficiently.

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

Completeness5/5

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

Given the tool's simplicity, the presence of an output schema, and annotations, the description covers all essential aspects: purpose, parameter meanings, and read-only behavior. No gaps identified.

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 description coverage is 0%, so the description must compensate. It does so by explaining the date format (YYYY-MM-DD) and the optional prefer_provider parameter with examples, adding significant value over the bare 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?

The description clearly states the verb 'shows' and the resource 'daily summary', and lists specific metrics (steps, active time, etc.), distinguishing it from sibling tools like get_activity_data or get_sleep_data.

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 description implies usage for a broad daily overview but does not explicitly state when to use this tool over alternatives or provide exclusions. The parameter list offers basic guidance but no strategic context.

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

get_data_overviewGet Data OverviewA
Read-only
Inspect

Shows an overview of all available fitness data for the user. Lists connected devices and available data date ranges. Claude should call this tool first to understand what data is available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already indicate read-only. Description adds that it lists devices and date ranges but does not disclose other behavioral aspects like response size or data freshness.

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?

Three sentences with front-loaded key information: what it shows, what it lists, and usage advice. No wasted words.

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 tool with output schema, description covers purpose, contents, and usage context. Could mention output schema coverage but not needed.

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?

No parameters exist, so baseline of 4 applies. Description does not need to add parameter info.

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 clearly states the tool shows an overview of fitness data and lists connected devices and date ranges. It differentiates from sibling tools by indicating it should be called first.

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?

Explicitly instructs to call this tool first to understand data availability, providing clear when-to-use guidance.

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

get_nutrition_dataGet Nutrition DataA
Read-only
Inspect

Retrieves nutrition data: calories, macronutrients (protein, carbs, fat), and water intake.

Parameters:

  • start_date: Start date in YYYY-MM-DD format

  • end_date: End date in YYYY-MM-DD format

  • prefer_provider: Optional. Per-query soft-override (e.g. 'CRONOMETER').

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYes
start_dateYes
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true. The description adds value by specifying the returned data (calories, macros, water), but does not mention any potential side effects or additional behavioral traits like rate limits or data availability.

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 very concise, using a single sentence for purpose and a bullet-point list for parameters. Every sentence adds value without redundancy.

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

Completeness5/5

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

Given the simple parameter set, the presence of an output schema, and clear sibling differentiation, the description covers all essential aspects: purpose, parameters, and returned data. No missing information.

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

Parameters5/5

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

The schema has 0% description coverage, so the description fully compensates by providing clear explanations for all three parameters: date format for start_date and end_date, and a usage example for prefer_provider.

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?

The description clearly states the tool retrieves nutrition data, listing specific nutrients like calories, macronutrients, and water intake. It distinguishes itself from sibling tools (e.g., get_activity_data, get_body_data) by focusing on nutrition data.

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 description explains what the tool does but does not explicitly state when to use it versus alternatives. It lacks guidance on exclusions or preferred contexts, such as using get_daily_summary for aggregated data.

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

get_recovery_statusGet Recovery StatusA
Read-only
Inspect

Shows current recovery status: device scores (Recovery, Readiness, Strain), HRV and resting heart rate trend over the last 7 days with 28-day baseline, sleep quality of the last 3 nights, and training load. All values come directly from the wearable — no custom calculations except average/min/max.

Parameters:

  • prefer_provider: Optional. Per-query soft-override (e.g. 'WHOOP', 'OURA').

ParametersJSON Schema
NameRequiredDescriptionDefault
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already provide readOnlyHint=true. The description adds significant behavioral context: values come directly from the wearable with no custom calculations except average/min/max, and the parameter behavior (soft override) is explained. No contradictions.

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 concise yet informative, with a clear overview sentence followed by bulleted data points, calculation notes, and parameter details. No redundant or extraneous information.

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?

Given the presence of an output schema (covering return structure), the description adequately covers the tool's purpose, data content, and parameter behavior. It omits some details like exact data formats, but is sufficient for general understanding.

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 0%, so the description must compensate. It explains the single parameter 'prefer_provider' as an optional soft-override with examples (WHOOP, OURA). While it doesn't list all valid values, it provides clear purpose and context.

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?

The description clearly states it 'shows current recovery status' and lists specific metrics (device scores, HRV, sleep quality, training load), distinguishing it from sibling tools like get_sleep_data or get_activity_data which focus on raw data rather than aggregated recovery metrics.

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 description implies usage for obtaining recovery status but does not explicitly state when to prefer this tool over siblings like get_sleep_data or get_training_summary. No exclusions or alternatives are mentioned.

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

get_sleep_dataGet Sleep DataA
Read-only
Inspect

Retrieves sleep data for the user over a specified date range. Shows sleep duration, sleep stages (deep, REM, light), HRV, SpO2, breathing rate, and sleep score.

Parameters:

  • start_date: Start date in YYYY-MM-DD format

  • end_date: End date in YYYY-MM-DD format

  • source: Optional. Hard provider filter e.g. 'GARMIN' or 'OURA' — only this provider's rows are returned.

  • prefer_provider: Optional soft override. Influences duplicate-cluster picking only; other nights remain visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
end_dateYes
start_dateYes
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description confirms it retrieves data. No additional behavioral traits disclosed beyond listing metrics, which adds some value but not rich context.

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?

Reasonably concise with a clear structure: purpose sentence, metrics list, parameter details. Slightly redundant but efficient overall.

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?

Given the presence of an output schema, the description covers purpose and all parameters adequately. Could mention date range constraints or pagination, but is fairly complete for a read-only tool.

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

Parameters5/5

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

Schema description coverage is 0%, but the description thoroughly explains all four parameters, including nuances like hard filter vs. soft override for provider, adding significant meaning beyond 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?

Description clearly states it retrieves sleep data over a date range and lists specific metrics (duration, stages, HRV, etc.), effectively distinguishing from sibling tools like get_sleep_samples which likely provide raw samples.

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 guidance on when to use this tool versus alternatives such as get_sleep_samples or other sibling tools. Lacks exclusions or context for optimal usage.

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

get_sleep_samplesGet Sleep Time-SeriesA
Read-only
Inspect

Retrieves time-series data for a sleep night: HR progression, HRV, SpO2, breathing rate, or hypnogram (sleep stage progression). Requires sleep_id from get_sleep_data and sample_type ('hr', 'hrv', 'spo2', 'breathing', 'hypnogram').

Parameters:

  • sleep_id: UUID of the sleep night from get_sleep_data

  • sample_type: 'hr', 'hrv', 'spo2', 'breathing', or 'hypnogram'

ParametersJSON Schema
NameRequiredDescriptionDefault
sleep_idYes
sample_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

With readOnlyHint annotation, the description doesn't need to state it's read-only. It adds context about time-series and sample types but doesn't detail behavior beyond what annotations and output schema cover.

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 concise (~60 words) with a front-loaded purpose and structured parameter list. Every sentence adds value without redundancy.

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?

Given the tool's simplicity (2 parameters, output schema exists), the description covers prerequisites, parameter semantics, and purpose. Could slightly enhance by hinting at the time-series structure, but output schema handles that.

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

Parameters5/5

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

Despite 0% schema description coverage, the description fully explains both parameters: sleep_id as 'UUID of the sleep night from get_sleep_data' and sample_type with explicit allowed values, adding essential meaning beyond the bare 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?

The description clearly states the tool's action ('Retrieves time-series data for a sleep night') and enumerates the specific data types (HR, HRV, SpO2, breathing rate, hypnogram), distinguishing it from sibling tools like get_sleep_data which likely provides summaries.

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?

The description provides a prerequisite ('Requires sleep_id from get_sleep_data') and lists valid sample_type values, giving clear context for when to use this tool. However, it lacks explicit guidance on when not to use it or alternatives.

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

get_training_summaryGet Training SummaryA
Read-only
Inspect

Aggregated training statistics over a time period: number of workouts, total duration and distance per sport, weekly overview, intensity distribution, and training load. Ideal for training reports, progress analysis, and periodization overview.

Parameters:

  • period: '7d', '30d', '90d', '180d', or '365d'

  • activity_type: Optional. Filter by sport: 'RUNNING', 'CYCLING', etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYes
activity_typeNo
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already set readOnlyHint=true, so the read-only nature is known. The description adds value by detailing the specific aggregated data returned (workouts, duration, distance, intensity distribution), which goes beyond the annotation. No contradictions.

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 concise, front-loaded with the purpose, then ideal use cases, then parameter details in a clean bullet list. Every sentence pays its way with no redundancy.

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

Completeness5/5

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

Given the presence of an output schema (known from context), the description does not need to explain return values. It covers the tool's purpose, parameters (mostly), and use cases. With readOnlyHint from annotations, it is complete for a read-only aggregated statistics 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?

Schema coverage is 0% (no descriptions in schema). The description clarifies 'period' with explicit values ('7d', '30d', etc.) and 'activity_type' with examples ('RUNNING', 'CYCLING'), adding meaning. However, it omits the 'prefer_provider' parameter entirely, leaving it undocumented.

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?

The description clearly states 'Aggregated training statistics over a time period' and lists specific metrics (workouts, duration, distance per sport, weekly overview, intensity distribution, training load). This distinguishes it from sibling tools like get_workout_detail (single workout) or get_daily_summary (daily data).

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?

Explicitly says 'Ideal for training reports, progress analysis, and periodization overview,' providing clear use cases. It does not explicitly exclude alternatives but the context is sufficient. Lacks when-not-to-use guidance.

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

get_workout_detailGet Workout DetailA
Read-only
Inspect

Shows all details of a single workout: heart rate, pace, cadence, power, intensity zones, elevation, calories, and more. Requires workout_id from get_workout_list. Also shows which sample data (HR time series, speed, GPS etc.) is available — these can be retrieved with get_workout_samples.

Parameters:

  • workout_id: UUID of the workout from get_workout_list

ParametersJSON Schema
NameRequiredDescriptionDefault
workout_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already provide readOnlyHint=true. Description adds context about what details are shown and that available sample data is indicated. No contradictions. Adds value beyond annotations.

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?

Three sentences plus parameter list; each sentence adds essential information: purpose, prerequisite, sample data indication. No redundancy.

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

Completeness5/5

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

Tool is simple with one required param and output schema exists. Description covers purpose, prerequisite, relationship to sibling, and param meaning. Complete for this complexity.

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

Parameters5/5

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

Schema coverage is 0%, so description compensates by explaining param 'workout_id: UUID of the workout from get_workout_list', adding meaning about format and source.

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?

The description clearly states 'Shows all details of a single workout' and lists specific data types (heart rate, pace, etc.). It distinguishes from siblings like get_workout_list and get_workout_samples by focusing on full details and mention of sample availability.

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?

Explicitly states 'Requires workout_id from get_workout_list' and 'these can be retrieved with get_workout_samples', providing clear when-to-use and when-not-to-use guidance with alternatives.

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

get_workout_lapsGet Workout LapsA
Read-only
Inspect

Shows lap/split data for a workout: distance, time, pace, heart rate per lap. Requires workout_id from get_workout_list. Ideal for run analysis, interval evaluation, and pacing strategy.

Parameters:

  • workout_id: UUID of the workout from get_workout_list

ParametersJSON Schema
NameRequiredDescriptionDefault
workout_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

The readOnlyHint annotation already declares read-only behavior. The description adds value by specifying the data fields per lap, but does not disclose additional behavioral traits such as rate limits or response limits.

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 concise with three sentences plus a parameter bullet. Every sentence adds value, and it is front-loaded with the main purpose.

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

Completeness5/5

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

Given a single required parameter, an output schema, and clear annotations, the description provides sufficient context: purpose, prerequisite, and usage scenarios. No obvious gaps.

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 0%, so the description carries full burden. It explains workout_id as a UUID from get_workout_list, adding context beyond the schema's type string.

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 clearly states the tool shows lap/split data for a workout, listing specific metrics. It differentiates from siblings by focusing on laps, but does not explicitly distinguish from similar tools like get_workout_samples.

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 description provides a prerequisite (workout_id from get_workout_list) and suggests ideal use cases (run analysis, interval evaluation), but lacks explicit comparisons or exclusion criteria against sibling tools.

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

get_workout_listGet Workout ListA
Read-only
Inspect

Lists all workouts in a date range — compact overview with type, duration, distance, pace, and heart rate. Use this tool first for an overview. For details on a single workout, use get_workout_detail. The workout ID in the output can be used with get_workout_detail and get_workout_samples.

Parameters:

  • start_date: Start date in YYYY-MM-DD format

  • end_date: End date in YYYY-MM-DD format

  • activity_type: Optional. Filter: 'RUNNING', 'CYCLING', 'STRENGTH_TRAINING', etc. Matches all type-aliases — 'CYCLING' also returns ROAD_BIKING / MOUNTAIN_BIKING / INDOOR_CYCLING etc.

  • prefer_provider: Optional per-query override (e.g. 'WHOOP', 'GARMIN'). For each duplicate-cluster, the row from this provider wins (if present). Clusters without this provider remain on the default picker — no data is lost.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYes
start_dateYes
activity_typeNo
prefer_providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Beyond the readOnlyHint annotation, the description details the compact overview content, explains type-alias matching for activity_type, and describes the prefer_provider override behavior for duplicate clusters, ensuring no data loss.

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 concise, well-structured: first sentence states purpose, second gives usage guidance, third explains ID usage, then parameter details. No wasted words.

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

Completeness5/5

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

Given the number of parameters, sibling tools, and output schema existence, the description covers all necessary aspects: purpose, usage, parameter details, behavioral nuances, and cross-tool references.

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

Parameters5/5

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

Despite 0% schema description coverage, the description fully explains each parameter: date formats, activity_type with example values and alias matching, and prefer_provider with duplicate handling logic.

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?

The description states 'Lists all workouts in a date range — compact overview with type, duration, distance, pace, and heart rate.' It provides a specific verb and resource, and distinguishes from siblings by mentioning get_workout_detail for details.

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?

Explicit guidance: 'Use this tool first for an overview. For details on a single workout, use get_workout_detail.' Also explains how the workout ID in output can be used with other tools.

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

get_workout_samplesGet Workout Sensor SamplesA
Read-only
Inspect

Retrieves detailed time-series data for a workout: HR progression, speed, power, cadence, elevation profile, or GPS route. Requires workout_id from get_workout_list and sample_type ('hr', 'speed', 'power', 'cadence', 'elevation', 'gps'). Data is presented as 1-minute averages. Ideal for progression analysis and pattern detection.

Parameters:

  • workout_id: UUID of the workout from get_workout_list

  • sample_type: 'hr', 'speed', 'power', 'cadence', 'elevation', or 'gps'

ParametersJSON Schema
NameRequiredDescriptionDefault
workout_idYes
sample_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true, and description aligns without contradiction. Adds behavioral detail: data as 1-minute averages, further clarifying what the tool provides.

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?

Concise: short introductory sentence, context, and parameter list. No redundant information, front-loaded with purpose.

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?

Covers key aspects: purpose, prerequisites, parameter details. With an output schema present, description need not detail return format; however, no mention of pagination or data limits, but acceptable for the task.

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

Parameters5/5

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

Schema description coverage is 0%, but description fully compensates by explaining workout_id as UUID from get_workout_list and sample_type with all permitted values, adding crucial context missing from 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?

Clearly states it retrieves detailed time-series data for a workout, lists specific sensor types (HR, speed, power, etc.), and distinguishes from sibling tools by focusing on time-series samples.

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?

Specifies when to use (progression analysis, pattern detection) and required prerequisites (workout_id from get_workout_list, valid sample_type). Lacks explicit when-not-to-use or alternatives, but context is clear.

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

Discussions

antsal06's avatar
antsal06Apr 2, 2026

Hi Anton here, I am a former professional Athlete and build this mainly for myself. I would appreciate your thoughts about this project. I personally use it everyday, especially the new "visualization" tool in Claude makes this 10x more powerful.

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources