technogym-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Each tool targets a distinct data view: account, session list, session detail, recent workouts, per-exercise analytics, and heart-rate trace. get_recent_workouts overlaps with list_workout_sessions plus get_workout_session, but it is clearly framed as a convenience wrapper, so the ambiguity is minimal.
Naming Consistency5/5All tool names follow a consistent verb_noun pattern using get_ or list_ prefixes: get_account_info, list_workout_sessions, get_workout_session, get_recent_workouts, get_exercise_analytics, get_session_heart_rate. There is no mixing of styles or vague verbs.
Tool Count5/5Six tools is well-scoped for a read-only fitness/wellness data server. Each tool serves a clear purpose and the count is neither bloated nor too thin.
Completeness5/5The tool surface covers the full read-only workflow: account verification, session listing, session detail, exercise-level analytics, heart-rate traces, and a convenience bulk loader. The data flow from list_workout_sessions to get_workout_session to get_exercise_analytics is complete with no obvious dead ends.
Average 4.4/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 5 commits 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.jsonto 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?
No annotations are provided, so the description carries the burden. It does disclose that the tool loads full workout sessions rather than just metadata, which implies a read-only operation. However, it does not mention pagination, auth, rate limits, or other potential behavior beyond the basic load.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loads the tool's purpose, and has exactly one parameter line. Every sentence contributes useful information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter convenience loader with an output schema present, the description provides enough context to invoke it correctly. It could mention alternate tools more explicitly, but the simple scope and output schema reduce the need for further detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for 'days', but the tool description explains that it is a look-back window in days and gives an explicit valid range of 1-365. This adds real meaning beyond the bare integer schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list and fully load') and the resource ('every workout session from the last N days'). The phrase 'fully load' and the sibling names make it distinguishable from list_workout_sessions and get_workout_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Convenience' implies this is the bulk-recent-loading alternative to more granular siblings, but there is no explicit when-to-use or when-not-to-use guidance. The usage context is implied rather than stated.
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?
With no annotations, the description carries the behavioral burden and does add value: it explains date fallback resolution and the sample_every_seconds downsample meaning (1 = all). It doesn't mention auth, rate limits, or error behavior, but for a read-oriented 'get' tool these are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the output overview and then uses a compact Args list. Every sentence is purposeful and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and the input parameters are fully explained, the definition is largely complete. The only notable absence is explicit routing among sibling tools, but the core usage and behavior are covered well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates fully. All three parameters get semantics beyond their schema types/defaults: session_id provenance, date format/recommendation/fallback, and downsample factor behavior including the meaning of 1.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a whole-session heart-rate trace, HR zones, and a session summary, naming the specific resource and output fields. It does not explicitly distinguish itself from sibling get_workout_session, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear input guidance by telling the agent to source session_id from list_workout_sessions and to prefer the session's ISO date with fallback behavior. However, it never states when to use this tool versus alternatives like get_workout_session, so usage is only implied.
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?
With no annotations, the description carries the burden. It discloses the key behavioral trait: the tool may log in and is meant to validate credentials. It does not mention session side effects or errors, but the main auth behavior is exposed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the action and return contents front-loaded and the usage intent in the second sentence. No redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, low-complexity tool with an output schema, the description is nearly complete: it covers purpose, auth behavior, and intended usage. It could mention when not to use it or any prerequisites, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema fully covers this dimension. The description appropriately adds no parameter details; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Log in (if needed)') and the exact resource returned ('mywellness user id, name, culture and facilities'). This clearly distinguishes the tool from the workout/session-focused siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives a use case: 'Use this to verify credentials are working.' It does not name alternatives or exclusions, but the sibling names make the intended context clear.
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?
With no annotations, the description carries the transparency burden and does so well: it states ordering (newest first), default date window (from_date defaults to 30 days before to_date, to_date defaults to today), and the filtering effect of only_workouts. It also enumerates the fields returned per item. It doesn't mention pagination or auth, but those are not central to this read-only list call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose and ordering first, then item fields, then a tidy Args block. Every sentence adds useful information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-optional-parameter list tool with an output schema, the description covers the essentials: date semantics, sorting, filtering, and identification of sessions for detail calls. Minor omissions such as pagination and date-boundary inclusivity do not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must define every parameter, and it does: from_date and to_date are ISO dates with documented defaults, and only_workouts controls activity-type filtering. This fully compensates for the empty schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb-resource pair ('List workout sessions') and immediately adds scope: 'in a date range, newest first.' It also distinguishes itself from detail-oriented siblings by stating that session_id and date 'identify the session for the detail tools.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The Args block gives concrete defaults and explains that only_workouts defaults to gym-floor sessions while false includes all activity types. It clearly implies when to use this list tool and points toward detail tools for per-session lookup, though it doesn't explicitly name a sibling or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the burden of behavioral disclosure. It conveys per-second granularity, equipment-dependent channel availability ('whatever the equipment reports'), and the downsample mechanism that controls data volume. This is meaningful context beyond the schema, though it does not discuss auth or rate 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The overview sentence is dense and front-loaded, with ellipses signaling non-exhaustive lists rather than adding noise. Each argument gets a single, purposeful line with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-value details are already covered. The description provides the required input source and behavior controls, and the parameter explanations leave no ambiguity about how to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully carries parameter documentation. It explains both analytics_id's provenance and sample_every_seconds as a downsample factor with concrete examples, making correct invocation clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Per-second analytics for one exercise,' which names the exact verb, resource, and scope. It further distinguishes itself from session-level siblings by enumerating machine channels, heart-rate samples, HR zones, and summary metrics specific to a single exercise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the analytics_id comes from get_workout_session, giving the agent a concrete prerequisite and sourcing path. It does not explicitly name alternatives or when-not-to-use cases, but the intended context is unambiguous.
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?
With no annotations, the description carries the behavioral disclosure burden. It discloses the potentially expensive behavior of scanning the last year when date is omitted, and clarifies that each exercise exposes an analytics_id for downstream use. It does not explicitly state read-only or error behavior, but the 'get' verb and detail-oriented wording make the read-only nature clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose, enumerates the returned data compactly, and clearly separates argument explanations. Every sentence adds useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to fully detail return values. It provides enough context for reliable selection and invocation: where the required id comes from, how the optional date behaves, and how results link to a sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must fully compensate. It explains session_id's provenance and defines date in ISO format with the consequence of omission, adding meaningful semantics beyond the bare schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: retrieving full detail for a single workout session. It enumerates exactly what is included and distinguishes itself from list/recent workouts by emphasizing 'one workout session' and the session_id, while also linking to get_exercise_analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit invocation guidance: session_id comes from list_workout_sessions, and date is strongly recommended to avoid scanning a year of history. It does not explicitly describe when to prefer alternatives such as get_recent_workouts, so it misses the full 'when-not' guidance.
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
Copy to your README.md:
Score Badge
Copy to your README.md: