Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool targets a distinct data type or granularity: connection status, daily summary, sleep, heart rate, HRV, training readiness (overall vs. morning), body battery, activity list, and three activity-specific detail tools. No two tools have overlapping purposes; even the two training readiness tools are clearly differentiated by scope.

    Naming Consistency4/5

    Most tools follow a consistent 'get_' + noun pattern, with clear and descriptive names like get_sleep, get_hrv, and get_activity_details. The only deviation is 'list_activities' which uses 'list' instead of 'get', but this is a minor and sensible variation for a collection-returning operation.

    Tool Count5/5

    With 12 tools covering wellness metrics, activity lifecycle, and supplementary data, the count is well-scoped for a Garmin data retrieval server. Each tool serves a distinct purpose and none feel redundant or missing, making the set feel appropriately sized.

    Completeness4/5

    The server covers the major wellness and activity data categories from Garmin Connect China: daily summaries, sleep, heart rate, HRV, training readiness, body battery, activity lists, and detailed activity breakdowns. Minor gaps like stress or step-specific endpoints are likely covered by the daily summary, so the surface is quite complete for read-only access.

  • Average 3.9/5 across 12 of 12 tools scored. Lowest: 3.3/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the 'Garmin Connect China' region context, which is useful but not covered by annotations. It does not describe return format, pagination, or any limitations beyond the date parameter, but given annotations, this is adequate for a read-only simple tool.

    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, direct sentence that fully conveys its purpose without any filler. The core resource and date format are front-loaded, and there is zero wasted wording. This is an ideal length for a simple tool with one parameter.

    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?

    Given the output schema exists (so return values are documented elsewhere) and annotations cover safety, the description is nearly complete for a simple read operation. However, it lacks usage guidance distinguishing it from siblings, and does not hint at what the 'summary' includes (e.g., activity, sleep, HRV). This leaves an agent uncertain about when to choose this over specific metric tools, making it slightly incomplete.

    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% — the 'date' parameter has no description. The description partially compensates by specifying the format 'YYYY-MM-DD', which is a useful hint beyond the plain 'string' type. However, it does not explain the expected date range, timezone implications, or that the date must be a valid calendar date. With a single parameter, the compensation is minimal.

    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 the verb 'Get' and a specific resource: 'Garmin Connect China daily wellness and activity summary' with a date parameter. It clearly indicates a composite summary, distinguishing it from sibling tools like get_sleep or get_heart_rate which target specific metrics. However, it does not explicitly name the siblings it is not, leaving the distinction implicit.

    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 provides no guidance on when to use this tool versus alternatives. It does not mention that this tool is the broad daily summary while get_sleep, get_heart_rate etc. are for specific metrics, nor does it state any prerequisites or exclusions. An agent would have to infer usage from the title and sibling names.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds the scope 'Garmin Connect China' and the positive ID constraint, but does not disclose additional behavioral traits such as rate limits, authorization needs, or output details. It does not contradict 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?

    A single, efficient sentence that front-loads the action and resource. No wasted words or redundancy.

    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 description is adequate for a simple get operation with one parameter and an output schema (not shown). However, it does not clarify how 'detailed' differs from the data provided by sibling tools like get_activity_exercise_sets or get_activity_supplementary, which could introduce ambiguity about which tool to call. The lack of usage differentiation reduces completeness.

    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 adds the constraint that the activity ID must be positive, which is beyond the schema's basic integer type. For a single, self-explanatory parameter, this is meaningful added semantics.

    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 verb 'Get' and the resource 'detailed Garmin Connect China data' for a single activity ID. It distinguishes from list_activities by specifying 'one positive activity ID', but does not explicitly name sibling tools for differentiation.

    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 siblings like get_activity_exercise_sets or get_activity_supplementary. The description does not mention alternatives or exclusions, leaving the agent to infer the appropriate context.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety. The description adds one behavioral detail—that Recovery Time is included when Garmin provides it—which is useful but doesn't address other potential behaviors like error responses or timezone handling.

    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 with no filler. The primary action is front-loaded, and the note about Recovery Time is appended without redundancy. Every sentence earns its place.

    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 single-parameter read-only tool with an output schema and safety annotations, the description covers the essential context: what it retrieves, the date format, and a content note. It does not address potential edge cases (e.g., invalid dates, data availability), but these are minor given the simplicity.

    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 explicitly specifies the date format 'YYYY-MM-DD' for the single 'date' parameter, which is not evident from the schema alone. This adds meaningful semantic context beyond the plain string type.

    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 ('Get'), resource ('morning Garmin Connect China Training Readiness snapshot'), and date format. It clearly distinguishes from likely sibling 'get_training_readiness' by the 'morning' and 'China' qualifiers, though it doesn't explicitly name the alternative.

    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 siblings like 'get_training_readiness' or how it differs. The description simply states what it does without context for selection or exclusions.

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

  • Behavior4/5

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

    Annotations already declare the tool as read-only, idempotent, and non-destructive, covering its safety profile. The description adds useful context: the 'China' regional scope and the date format expectation (YYYY-MM-DD), which are not present in annotations. It does not describe the output structure, but that is covered by the existing output schema.

    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, well-structured sentence that includes the action, resource, scope, and date format. It is front-loaded with the key information and contains no redundant words or fluff.

    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 simple read-only tool with one parameter and an output schema, the description provides the essential context: what data is retrieved, the regional scope, and the expected date format. It does not explain what 'sleep data' specifically contains, but the output schema is expected to cover that. The description is adequate for correct invocation.

    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 schema shows a single 'date' parameter with no description, and schema coverage is 0%. The description compensates by specifying the date format ('YYYY-MM-DD'), adding meaningful semantic information beyond the bare schema. It does not mention timezone or validation rules, but for a simple date parameter this is sufficient.

    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 ('Get'), resource ('sleep data'), and scope ('Garmin Connect China') with a date format. It clearly indicates the tool's function and distinguishes it from sibling tools like get_heart_rate or get_hrv, though it does not explicitly name alternatives.

    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 provides no explicit guidance on when to use this tool versus others. It does not mention any exclusions, prerequisites, or alternative tools. The usage is implied by the tool name and description but lacks any direct routing information.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safety profile is covered. The description adds the specific context of 'Garmin Connect China', which scopes the data source geographically, and the date format expectation. However, it does not disclose any additional behavioral traits such as pagination, rate limits, or error semantics, so it only partially augments the 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?

    The description is a single, efficient sentence that states the resource and the date format upfront. It contains no redundant words or filler, and the essential information is front-loaded. Every word earns its place.

    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 simple read-only tool with one parameter and an output schema, the description is largely sufficient. It identifies the data source (Garmin Connect China) and the expected date format. It does not describe the output shape, but the presence of an output schema covers that. A slight gap exists in not clarifying whether the data is for a single day or a range, but the wording 'for YYYY-MM-DD' implies a single day, which is acceptable.

    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 input schema has zero description coverage for the 'date' parameter, so the description must compensate. It specifies the exact format 'YYYY-MM-DD', which is essential information for correct invocation. While it doesn't mention constraints like valid ranges or timezone, the format guidance is meaningful and directly addresses the documentation gap.

    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 'Get', the resource 'Garmin Connect China heart-rate variability data', and the expected date format 'YYYY-MM-DD'. It is unambiguous and distinct from sibling tools that target other metrics (sleep, heart rate, etc.). The purpose is immediately apparent.

    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 provides no explicit guidance on when to use this tool versus its siblings. It does not mention prerequisites, exclusions, or alternative tools. While the name and purpose imply it is the correct tool for HRV data, the description itself does not articulate any usage context or boundary conditions.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds the meaningful behavioral constraint of an inclusive range capped at 31 days, which is not covered by annotations. This is valuable additional context.

    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, tightly-worded sentence that front-loads the tool's purpose and its most critical constraint. There is no filler or redundant 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?

    For a simple two-parameter read-only tool with an output schema and safety annotations, the description covers the essential behavioral constraint (31-day inclusive range). Minor gaps like date format and null end_date handling are likely inferable from context or the schema, so overall it is adequate.

    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?

    With 0% schema description coverage, the description must clarify the parameters. It does so by specifying that the range is inclusive and at most 31 days, giving semantic meaning to start_date and end_date beyond the raw schema. However, it does not specify date format or behavior when end_date is null, leaving some ambiguity.

    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 action ('Get'), the resource ('Body Battery reports'), and the key constraint ('inclusive range of at most 31 days'). This distinguishes it from sibling tools like get_heart_rate or get_sleep, making the purpose unambiguous.

    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 given on when to use this tool versus alternatives. With many sibling get_* tools, an agent might benefit from knowing that this is the specific tool for Body Battery data, but the description lacks any comparison or exclusion criteria.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which fully covers the safety profile. The description adds the regional qualifier (Garmin Connect China) and the daily granularity, which is useful context beyond the annotations. It does not contradict any annotation, and with the safety profile already covered, a 3 is appropriate.

    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 sentence with zero waste. The core purpose and scoping qualifiers are front-loaded ('Get Garmin Connect China daily heart-rate data') and the format hint follows naturally. Every element earns its place.

    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?

    An output schema exists, so return values need no explanation. With one required parameter whose format is documented, and a clear scope, the description covers what an agent needs. The only minor gap is behavior for dates with no data, which is partially addressed by openWorldHint in the annotations.

    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 for the single 'date' parameter. It does so by specifying the exact expected format, 'YYYY-MM-DD', which the schema omits. This is precisely the information an agent needs to format the parameter correctly, though it could add a note on what happens for unavailable dates.

    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 uses a specific verb ('Get'), a clear resource ('heart-rate data'), and adds two important scope qualifiers: 'Garmin Connect China' (region-specific) and 'daily'. This distinguishes it from siblings like get_hrv (heart rate variability is a different metric), get_sleep, and get_body_battery, so an agent can tell what this tool does without inspecting the schema.

    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 communicates the scope (Garmin Connect China, daily) which implies a context, but it gives no explicit guidance about when to choose this over the closely-related get_hrv, nor any exclusions or alternatives. The context is implied rather than stated, so an agent must infer the distinction from tool names.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds two useful behavioral facts: the response includes Recovery Time only when Garmin provides it (a conditional field), and the use of 'all' implies multiple snapshots may exist per day. This enriches beyond the annotations without contradicting them.

    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 with zero fluff. The main action and resource are front-loaded, and the only extra detail (Recovery Time condition) is appended without distraction. Every word earns its place.

    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 existence of an output schema (which covers return values), a single required parameter, and comprehensive annotations, the description provides the essential extra context: the date format and the conditional Recovery Time. It doesn't cover pagination or error cases, but those are unlikely to be critical for a single-day snapshot tool. Slight gap: no mention of sibling tool differentiation, but that is more of a usage-guidelines concern.

    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 does by specifying the exact format 'YYYY-MM-DD' for the date parameter, which is not in the schema. It also explains the semantic scope of that date (snapshots for that day). This gives the agent the needed parameter understanding beyond the bare 'date' string.

    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?

    States a specific verb and resource: 'Get all Garmin Connect China Training Readiness snapshots for YYYY-MM-DD.' It clearly identifies the scope (Garmin Connect China), the granularity (snapshots for a given date), and distinguishes itself from the morning-only variant by not restricting to morning. No ambiguity.

    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?

    Provides no explicit guidance on when to use this tool versus the sibling get_morning_training_readiness or other data getters. The description implies it's the all-day snapshot tool, but it never states that, nor does it mention when not to use it. An agent cannot infer the selection criteria without extra reasoning.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is known. The description adds valuable behavior: 'Unavailable sources are null with safe errors' and the constraint that the ID must be positive. No contradiction with 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?

    A single, front-loaded sentence with no redundancy. It lists the data types compactly and states the null/error behavior without filler. Every element earns its place.

    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 simple input (one integer, no nested objects) and that an output schema exists, the description covers the key aspects: what data is returned, null handling for unavailable sources, and the positivity constraint. It doesn't mention when to use alternatives, but that's covered under usage guidelines.

    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 schema has zero description coverage for activity_id, so the description must compensate. It adds that the ID must be 'positive' and that it refers to a single activity, which goes beyond the bare integer type and is useful for correct invocation.

    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 uses a specific verb 'get', names the resource 'cross-sport supplementary Garmin China data', and enumerates the exact data types (canonical summary, laps/splits, etc.). The term 'supplementary' differentiates it from the sibling get_activity_details, making its purpose unequivocal.

    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 this is for supplementary data via the word 'supplementary' but does not explicitly state when to use this tool versus siblings or when not to. No alternatives are named, leaving the routing partly to inference.

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

  • Behavior4/5

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

    Annotations already declare the tool as read-only, open-world, idempotent, and non-destructive. The description adds two crucial behavioral constraints beyond that: the inclusive date range is limited to 31 days, and the number of results is capped at 1-100. These are not implied by annotations and help the agent set expectations, though it doesn't address pagination or ordering.

    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, no filler. The primary action and core constraints are front-loaded, and every clause carries information. The description is appropriately sized for a simple list tool.

    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?

    The output schema likely documents the return format, so that gap is covered. The description covers the two main usage modes (recent vs. date range), the range cap, and the result limit. It lacks details like date format or error handling for over-31-day ranges, but for a basic list operation with these annotations and an output schema, it is sufficient.

    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 0%, so the description must compensate. It implies the start_date and end_date parameters define the inclusive range and that limit controls the result count (albeit indirectly via the '1-100' statement). However, it does not specify the date format, behavior when only one date is provided, or whether limit maps directly to the parameter. This is a partial compensation that leaves ambiguity.

    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 lists Garmin China activities, with a specific scope: recent activities or a date range of at most 31 days. It distinguishes from siblings like get_activity_details (which targets a single activity) and get_daily_summary (which aggregates daily data). The verb 'list' and resource 'activities' are explicit, and the range limitation is a unique feature.

    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 clear conditions for use: it can list recent activities (no dates) or a date range with a maximum of 31 days. It also mentions the result limit of 1-100, which informs the caller about constraints. It doesn't explicitly exclude alternatives like get_activity_details, but the purpose and scope make it obvious when to use this tool over the detail-specific siblings.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description need not repeat safety. The description adds behavioral context by specifying that it returns per-set details and that duration is included 'when available', which is a useful caveat not present in annotations. It also notes the China-specific scope. This is valuable beyond structured data, though it does not cover error cases or pagination—acceptable given the 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?

    The description is a single, front-loaded sentence that immediately states the action and resource. It includes the most important detail (per-set strength) first and lists the included fields succinctly. There is no redundant wording or filler. It earns its place in every clause.

    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?

    The tool is simple (1 parameter) and has an output schema that presumably documents return values. The description provides enough context for correct invocation: it specifies the activity ID requirement, the type of data returned, and the optionality of duration. No critical information is missing for an agent to call this tool appropriately.

    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?

    With schema coverage at 0% (the parameter has no description in the schema), the description must compensate, and it does. It clarifies that activity_id is a Garmin China activity ID and must be positive (integer), adding meaning beyond the raw type. It does not give examples or address how to obtain the ID, but for a single parameter this is sufficient. The description meaningfully enhances schema information.

    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 specifies a clear verb ('get'), a precise resource ('per-set strength exercise details'), and a clear scope ('for one positive Garmin China activity ID'). This distinguishes it from sibling tools like get_activity_details and get_activity_supplementary by focusing on strength exercise sets with specific attributes (set type, exercises, repetitions, weight, duration). The purpose is immediately understandable and non-tautological.

    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 implies when to use this tool: when you need per-set strength exercise details for a specific activity. It also constrains the input to a positive Garmin China activity ID. While it does not explicitly name alternatives or state when not to use this tool, the context is clear enough for an agent to infer that it is appropriate for strength-focused activity queries. This matches 'clear context, no exclusions' rather than full explicit routing.

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

  • Behavior4/5

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

    Annotations already declare read-only, idempotent, and non-destructive behavior, so the description only needs to add context. It does so by introducing the 'cached' aspect and the 'minimal account status' return, which implies a lightweight payload. It doesn't detail network behavior or error handling, but with strong annotations coverage, this is acceptable.

    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, concise sentence (11 words) that front-loads the primary action and result. There is zero fluff or repetition—every word earns its place.

    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?

    For a tool with no parameters, a clear purpose, and an output schema (which covers return value expectations), the description is fully adequate. Combined with rich annotations, nothing is missing for an agent 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 takes no parameters, and the schema is fully covered (0 properties). The description adds no parameter-specific info, which is unnecessary given the absence of parameters. Baseline for 0-parameter tools is 4, and the description meets this with no redundancy.

    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 function with a specific verb ('validate'), resource ('cached Garmin China authentication'), and outcome ('return minimal account status'). It is distinct from sibling tools that all fetch data, since this tool focuses on connection/auth status rather than specific metrics.

    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 clear context—this tool checks authentication validity—which is enough for an agent to know when to call it (e.g., before making other API calls). It does not explicitly mention alternatives or exclusions, but given the simplicity of the tool and that no sibling serves a similar purpose, the usage intent is unambiguous. Slight deduction for not stating 'use when needing to verify connectivity' explicitly.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

garmincn-mcp MCP server

Copy to your README.md:

Score Badge

garmincn-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/love-wizard/garmincn-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server