Joti - Workout tracker
Server Details
Read your workouts, history, and stats; create and schedule new workouts. Writes are additive only.
- Status
- Healthy
- Uptime
- 2.3% over 21 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 14 tools
Tools are largely distinct by resource: workout templates, scheduled calendar entries, history sessions, stats, and exercise library. The scheduled-workout tools (create/update/delete/toggle/remove occurrence) are numerous but well-differentiated; minor confusion arises because list-scheduled-workouts claims no create/edit/delete tool exists despite those tools being present.
All tool names follow a consistent lowercase hyphenated verb-object-tool pattern, e.g. create-workout-tool, list-workout-history-tool, toggle-scheduled-workout-tool. This makes the set highly predictable and easy to navigate.
14 tools is well-scoped for a workout tracker covering workout templates, scheduling, history, stats, and exercise search. Each tool addresses a distinct need without excessive overlap or bloat.
The scheduled-workout lifecycle is well covered, and history/stats are supported, but workout templates have no update or delete tool despite having create, get, list, and duplicate. There is also no tool for logging or completing a workout session, leaving notable gaps in the core workout lifecycle.
Available Tools
14 toolscreate-scheduled-workout-toolCreate Scheduled WorkoutAInspect
Schedule a workout onto the calendar (one-off or recurring). Does not modify the workout itself.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | Optional end of recurrence. | |
| start_date | Yes | ||
| workout_id | Yes | The workout to schedule, from list_workouts. | |
| repeat_days | No | 0=Sunday..6=Saturday. Only used when repeat_type is "custom". | |
| repeat_type | Yes | "none" = one-off on start_date. | |
| scheduled_time | No | 24h "HH:MM", e.g. "07:30". | |
| reminder_minutes | No | Minutes before scheduled_time to remind. Requires scheduled_time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The new scheduled-workout entry's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and non-destructive intent (destructiveHint=false). The description adds valuable context beyond those annotations: it explicitly guarantees the source workout is not modified, and it discloses recurrence capability. This helps an agent predict side effects more precisely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main action and key non-modification caveat are front-loaded, and the recurrence scope is included naturally in parentheses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with a rich schema, annotations, and an output schema, the description covers the essential behavior: scheduling onto the calendar, recurrence support, and non-modification of the source workout. Remaining details like repeat_days/end_date constraints are sufficiently covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (86%), so the input schema already documents most parameters. The description adds little parameter-level detail beyond aligning 'one-off or recurring' with repeat_type and the 'does not modify workout itself' clue for workout_id. No significant semantic gap to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Schedule') and resource ('a workout onto the calendar'), and immediately clarifies the scope as one-off or recurring. The second sentence, 'Does not modify the workout itself,' distinguishes this tool from create-workout-tool and clarifies its scheduling role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for creating scheduled workouts and implies it is not for editing the underlying workout, but it does not explicitly name alternatives or state when to prefer update/delete/toggle-scheduled-workout tools. The usage guidance is reasonable but mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-workout-toolCreate WorkoutAInspect
Create a brand-new structured workout from a list of exercises, using the user's default set/rep scheme. Supports supersets (chained_to_next) and per-set types like warmup/drop/failure (set_types). Cannot edit or delete any existing workout.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Workout name. Must be unique among this user's structured workouts. | |
| category | No | Optional category. | |
| exercises | Yes | Exercises in the order they should appear, from search_exercise_library. Consecutive exercises with chained_to_next=true form one superset. | |
| description | No | Optional description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The new workout's id. |
| name | No | |
| exercise_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a non-read-only, non-destructive mutation, and the description adds useful behavioral boundaries: it creates only new workouts and cannot edit/delete existing ones, and it applies the user's default set/rep scheme. This goes beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and followed by the key feature support and side-effect boundary. No filler or duplication of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with rich schema coverage, annotations, and an output schema, this description covers the essential non-schema facts: it creates a new structured workout, uses default set/rep scheme, and is non-destructive to existing workouts. Nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema carries most parameter detail; the description adds the 'default set/rep scheme' context and highlights chained_to_next/set_types usage. It doesn't document category/description, but those are already fully described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States an unambiguous create operation on a structured workout, with source (list of exercises) and behavior (default set/rep scheme). The phrase 'brand-new' and the explicit 'cannot edit or delete any existing workout' scope it away from update/delete tools, though it doesn't name a sibling like create-scheduled-workout-tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear exclusion ('cannot edit or delete any existing workout') that tells an agent not to use this for modifying existing workouts. It never names an alternative (e.g., create-scheduled-workout-tool for scheduled workouts or duplicate-workout-tool for copying), leaving when-to-use vs siblings to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-scheduled-workout-toolDelete Scheduled WorkoutADestructiveInspect
Remove a scheduled-workout entry from the calendar entirely. Does not delete the workout itself.
| Name | Required | Description | Default |
|---|---|---|---|
| scheduled_workout_id | Yes | From list_scheduled_workouts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate destructiveHint=true and readOnlyHint=false. The description adds meaningful context by specifying the destructive scope (removes the calendar entry entirely) and by explicitly stating the underlying workout is preserved. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core behavior first and the non-destructive nuance second. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive operation with an output schema and full annotations, the description is complete. It explains what is affected and what is not, the parameter origin is documented in the schema, and return values are covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole parameter already includes a helpful source hint ('From list_scheduled_workouts.'). The description itself adds no additional parameter meaning, but the baseline of 3 applies because the schema fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Remove'), the resource ('scheduled-workout entry'), and the scope ('from the calendar entirely'). The second sentence clarifies it does not delete the underlying workout, distinguishing it from workout deletion tools. This is unambiguous and action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this is for fully removing a scheduled entry rather than deleting the workout itself-driving behavior, but it does not explicitly mention alternatives such as remove-scheduled-workout-occurrence-tool or update-scheduled-workout-tool. The intended use is inferable, but explicit when-to-use/when-not-to-use guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate-workout-toolDuplicate WorkoutAInspect
Duplicate an existing workout this user owns as the starting point for a new one. The original is never modified.
| Name | Required | Description | Default |
|---|---|---|---|
| workout_id | Yes | The source workout id, from list_workouts. Must be owned by this user. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The new (copied) workout's id. |
| name | No | |
| exercise_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse (readOnlyHint false, destructiveHint false), so the description carries the burden. It discloses the critical non-destructive guarantee ('original is never modified') and the ownership requirement. It does not specify whether a new workout record is immediately persisted or what the return value contains, but with an output schema present, that is somewhat covered. Overall, it adds meaningful behavioral context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero filler. The primary action is front-loaded, and the second sentence adds a crucial constraint. It is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and an output schema, the description covers the core purpose, the key guarantee (original unmodified), and the ownership prerequisite. It does not explicitly state the return value or the fact that a new workout is created, but these are reasonably inferable from the tool's name and the existence of an output schema. Overall, it is sufficiently complete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the parameter (workout_id) with a clear description and source ('from list_workouts') and ownership requirement. The tool description adds no additional parameter-specific meaning, so with 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (duplicate), the resource (existing workout), and the purpose (starting point for a new one). It also differentiates from creating from scratch by emphasizing it bases the new workout on an existing one, and explicitly mentions the original is untouched, which distinguishes it from update operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you want to create a new workout based on an existing one) and the ownership constraint ('this user owns'). It does not explicitly name sibling tools or provide 'when not to use' guidance, but the intent is clear enough from the phrase 'as the starting point for a new one'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-stats-toolGet StatsARead-onlyInspect
Get aggregated workout stats for this user: volume, consistency, personal bests, and top lifts. Optionally scoped to a date range, workout, or exercise.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Preset time range. Defaults to "all". Ignored if start_date/end_date are given. | |
| end_date | No | Custom range end (YYYY-MM-DD). | |
| start_date | No | Custom range start (YYYY-MM-DD). | |
| workout_id | No | Scope stats to one workout. | |
| exercise_id | No | Scope stats to one exercise. | |
| muscle_group | No | Scope stats to one muscle group. |
Output Schema
| Name | Required | Description |
|---|---|---|
| range | No | |
| trend | No | Volume/consistency over time, bucketed by the range's granularity. |
| headline | No | Totals for the selected range. |
| consistency | No | Streak/frequency consistency metrics. |
| personal_bests | No | Personal bests set within the selected range. |
| muscle_breakdown | No | Volume by muscle group. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds that it returns aggregated stats and mentions optional scoping, but does not disclose additional behavioral traits such as default behavior when no parameters are given (though the schema covers that) or potential response size. Since annotations cover safety, the description provides modest extra context, justifying a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose and then lists optional scoping. Every word earns its place, and the structure is clean and readable. It is appropriately concise for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown but indicated as present), the description need not explain return values. It covers the core purpose and all scoping options, and annotations cover safety. All parameters are optional, and the schema documents them fully. Nothing an agent needs to call it correctly is missing, making it complete for a read-only stats tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all six parameters, including the enum for range and the date formats. The description's mention of 'optionally scoped to a date range, workout, or exercise' summarizes the parameters but does not add meaning beyond the schema. With high coverage, a baseline of 3 is appropriate, and the description adds little extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves aggregated workout stats (volume, consistency, personal bests, top lifts) for the current user. It uses a specific verb ('Get') and resource ('aggregated workout stats'), and the scoping options are listed. It is unambiguous and distinguishes itself from sibling tools, which are all about creating, listing, or updating workouts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says stats can be optionally scoped to a date range, workout, or exercise, which implies when to use it: when aggregated stats are needed. It does not name specific alternatives or exclusions, but given the sibling list, it's clear this is the only stats tool. The guidance is clear enough for an agent to select it for stats queries, though it could be more explicit about 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.
get-workout-history-session-toolGet Workout History SessionARead-onlyInspect
Get full detail (sets, PBs, milestones achieved) for one completed workout session, by id. Use list_workout_history to find ids.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The workout session id, from list_workout_history. |
Output Schema
| Name | Required | Description |
|---|---|---|
| session | No | |
| exercises | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so no contradiction exists. The description adds useful behavioral context by noting the session must be 'completed' and specifying that the result includes sets, PBs, and milestones, which helps the agent set expectations beyond the annotation fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary purpose is front-loaded, and the follow-up instruction about finding ids is directly actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description covers the essential information: what the tool returns, that it targets a completed session, and where to obtain a valid session_id. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents session_id and its source. The description reinforces the parameter's purpose by saying 'by id' and pointing to list_workout_history, but it adds little new meaning beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Get full detail') and a specific resource ('one completed workout session'), while naming the key contents (sets, PBs, milestones). It also differentiates from list_workout_history by emphasizing full detail for a single session, though it doesn't explicitly distinguish itself from the similarly named get-workout-tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description directly instructs the agent to use list_workout_history to find ids, which covers the main prerequisite for calling this tool. It does not mention exclusions or compare against alternatives like get-workout-tool, but the guidance is sufficient for the common case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-workout-toolGet WorkoutARead-onlyInspect
Get full detail (exercises, sets, schedule) for one workout this user owns, by id. Use list_workouts to find ids.
| Name | Required | Description | Default |
|---|---|---|---|
| workout_id | Yes | The workout id, from list_workouts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| category | No | |
| exercises | No | The workout's exercises, in order. |
| schedules | No | Upcoming/current scheduled-workout entries for this workout. |
| description | No | |
| is_duration_based | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds minor context (ownership) but does not disclose additional behavior beyond the annotations. Since annotations cover the safety profile, a baseline score of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence that efficiently packs the action, resource, scope, detail level, and a usage hint. Every word contributes value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with an output schema, the description is complete: it explains what the tool returns, how to obtain the ID, and is consistent with the annotations. It lacks explicit exclusions but those are not necessary given the tool's narrow scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter workout_id is fully documented in the schema itself, including its source from list_workouts. The description adds no extra semantic detail beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get full detail), the resource (one workout), the scope (this user owns), and the identifier (by id). It explicitly lists the details included (exercises, sets, schedule), distinguishing it from other get-type siblings like get-stats-tool and get-workout-history-session-tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance to use list_workouts to find ids, establishing a clear prerequisite workflow. However, it does not explicitly state when not to use this tool or suggest alternatives, though the purpose is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-scheduled-workouts-toolList Scheduled WorkoutsBRead-onlyInspect
List this user's scheduled workouts (recurring/one-off calendar entries) and this month's calendar view. View only — no create/edit/delete tool exists yet.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| workouts | No | |
| schedules | No | Schedule entries, grouped by workout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the 'View only' note is redundant. The description adds the calendar-view scope, which is useful. However, the false claim that no create/edit/delete tool exists contradicts the sibling tool list and could mislead an agent about the environment, though it does not contradict the annotations themselves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise and informative, but the second sentence ('View only — no create/edit/delete tool exists yet.') is unnecessary (redundant with annotations) and factually incorrect given sibling tools. The structure front-loads the core purpose but includes a misleading addendum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and scope, and the output schema exists to detail return values. However, the misleading note about mutation tools could cause an agent to incorrectly assume no mutation capabilities exist, and there's no mention of any filtering or options (though none are parameterized). For a read-only list tool with no params, this is mostly complete but the false statement is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage (trivially), the baseline is 4. The description adds no parameter-specific details because none exist, but it clarifies the scope of the output (scheduled workouts and calendar view), which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (list), resource (scheduled workouts), and adds scope ('this user's', 'recurring/one-off calendar entries', 'this month's calendar view'). It distinguishes from generic list tools by specifying scheduled workouts, though the phrase 'no create/edit/delete tool exists yet' is misleading given sibling tools exist, slightly clouding clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like list-workouts-tool or other scheduled-workout tools. The description implies it's for viewing scheduled entries, but does not name exclusions or conditions, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-workout-history-toolList Workout HistoryBRead-onlyInspect
List this user's completed workout sessions (history), optionally filtered by workout or exercise. Paginated, 20 per page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Defaults to 1. | |
| workout_id | No | Only sessions for this workout id. | |
| exercise_id | No | Only sessions containing this exercise id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| last_page | No | |
| current_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description is not required to state that it's a safe read operation. It does add useful context by specifying the scope ('this user's') and pagination ('20 per page'), which are behavioral traits beyond the annotations. However, it doesn't discuss any other behaviors like sorting or potential performance implications, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core purpose, then mentions filters and pagination in a logical order. Every clause earns its place with no redundancy or filler. It is maximally concise while covering all essential aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list with a complete input schema and an output schema, the description covers the user scope, completion status, optional filters, and pagination. The output schema handles return details, and annotations handle safety. No critical information is missing for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with clear descriptions, so the baseline is 3. The description complements this by mentioning 'filtered by workout or exercise' and 'paginated', which aligns with the schema fields but adds little extra semantic nuance beyond what's already in the schema. No syntax or additional details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists this user's completed workout sessions, making the verb and resource specific. It also mentions optional filters by workout or exercise, which distinguishes it from sibling list-workouts-tool (which likely lists workout definitions rather than history). However, it does not explicitly name a sibling to contrast against, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get-workout-history-session-tool or list-workouts-tool. It only describes what the tool does, not the conditions that would lead an agent to choose it over siblings. No exclusions or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-workouts-toolList WorkoutsARead-onlyInspect
List the workouts this user owns (not workouts shared with them by a linked account). Does not include ad-hoc/logged-only workouts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| workouts | No | The workouts this user owns. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds ownership scoping and exclusions, providing additional behavioral context without contradicting annotations. It doesn't discuss pagination or return format, but with annotations covering safety, this is a solid addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the main action ('List the workouts this user owns') and followed by a parenthetical clarification. Every part earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema, the description covers what the tool lists and what it excludes, which is sufficient for an agent to call it correctly. No significant gaps remain for this simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline of 4 applies. No parameter descriptions are needed, and the description doesn't attempt to add meaningless parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List the workouts this user owns', and explicitly distinguishes from shared and ad-hoc workouts. It clearly separates this tool from siblings like list-scheduled-workouts-tool and list-workout-history-tool by defining its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context about what is excluded (shared and ad-hoc workouts), but does not explicitly name alternative tools or state when to use them. The guidance is implied rather than directly pointing to siblings, so it lacks explicit when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove-scheduled-workout-occurrence-toolRemove Scheduled Workout OccurrenceADestructiveInspect
Skip one occurrence of a recurring scheduled workout, or all occurrences from that date forward. Does not delete the schedule entry itself.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The occurrence date to skip. | |
| scope | Yes | "instance" skips just that date; "future" skips it and every later occurrence. | |
| scheduled_workout_id | Yes | From list_scheduled_workouts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The scheduled-workout entry's id (unchanged). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true and readOnlyHint=false. The description adds value by clarifying that the schedule entry is preserved, which would otherwise be ambiguous given the destructive hint. It also explains the effect on future occurrences, giving agents a clear behavioral model beyond the bare annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core behavior is front-loaded, and the key exclusion is stated immediately after. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive-but-scoped operation, the description clearly explains what is skipped and what is not deleted. With a full input schema, output schema, and clear annotations, the description covers the essential decision-making context. It does not discuss reversibility or effects on completed occurrences, but these are minor given the structured output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter. The description adds modest semantic nuance by paraphrasing the 'scope' behavior ('from that date forward'), but it does not add new parameter-level detail beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Skip') and resource ('occurrence of a recurring scheduled workout'), and clarifies the two scope options. It explicitly distinguishes itself from deletion by noting it does not delete the schedule entry itself, which differentiates it from sibling delete-scheduled-workout-tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: to skip one or future occurrences of a recurring workout. It gives one important exclusion ('does not delete the schedule entry itself'), but it does not explicitly name alternative tools or state conditions like 'use delete-scheduled-workout-tool when you want to remove the entire schedule.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-exercise-library-toolSearch Exercise LibraryARead-onlyInspect
Search the exercise library (the shared ~800-exercise catalog plus this user's own custom exercises) by name, equipment, muscle group, or category.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Search exercises by name. | |
| category | No | Filter by exercise category. | |
| equipment | No | Filter by equipment (e.g. "barbell", "dumbbell"). | |
| muscle_group | No | Filter by primary or secondary muscle group. |
Output Schema
| Name | Required | Description |
|---|---|---|
| exercises | No | |
| last_page | No | |
| current_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: it searches both the shared catalog and the user's custom exercises, and it supports filtering by multiple dimensions. It does not mention edge behavior such as result limits, but the output schema likely covers return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the verb and resource, then lists the filter dimensions without repetition or filler. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, fully-optional-parameter search tool with 100% schema coverage and an output schema, the description plus annotations is sufficient for an agent to select and invoke it correctly. No critical information about purpose or scope is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (search, category, equipment, muscle_group) are already documented in the schema. The description simply restates the filter dimensions without adding syntax details or value constraints, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') plus a clear resource ('the exercise library'), and enumerates the four search dimensions: name, equipment, muscle group, and category. It also distinguishes the tool's scope by noting it covers the shared ~800-exercise catalog plus the user's own custom exercises, which separates it from the workout-management sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: look up exercises from the library by one or more supported filters. It does not explicitly state when not to use this tool or name alternatives, but the sibling tools are all workout CRUD/history operations, so an agent can reasonably infer this is the right tool for exercise lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle-scheduled-workout-toolToggle Scheduled WorkoutAInspect
Pause or resume a scheduled-workout entry (flips is_active). Paused entries stop generating reminders/occurrences until resumed.
| Name | Required | Description | Default |
|---|---|---|---|
| scheduled_workout_id | Yes | From list_scheduled_workouts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| is_active | No | The entry's new active/paused state. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint=false and destructiveHint=false, so the description carries a lighter burden. It adds valuable context beyond annotations by specifying that the tool flips a boolean and that paused entries stop generating reminders/occurrences until resumed. This is exactly the kind of behavioral disclosure that annotations don't capture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the action, names the resource, explains the mechanism, and states the behavioral consequence. Zero filler words—every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter, no nested objects, an output schema present, and annotations covering safety, the description provides everything an agent needs to invoke the tool correctly. It explains the effect on future occurrences and implies recoverability, making it complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, and the schema description ('From list_scheduled_workouts.') already tells the agent where to obtain the ID. The tool description adds no additional parameter-specific insight, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Pause or resume') on a specific resource ('scheduled-workout entry') and even explains the underlying mechanism ('flips is_active'). This clearly distinguishes it from siblings like create, update, or delete scheduled workout, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it obvious when to use this tool: when you want to pause or resume a scheduled workout. It explains the effect (reminders/occurrences stop) and implies reversibility. However, it does not explicitly name alternatives or exclusion criteria, such as 'use update-scheduled-workout-tool for changing other fields,' so it just misses a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-scheduled-workout-toolUpdate Scheduled WorkoutAInspect
Edit an existing scheduled-workout entry (timing/recurrence). Does not modify the workout itself.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| start_date | Yes | ||
| repeat_days | No | 0=Sunday..6=Saturday. Only used when repeat_type is "custom". | |
| repeat_type | Yes | ||
| excluded_dates | No | Occurrence dates to skip. | |
| scheduled_time | No | 24h "HH:MM". | |
| reminder_minutes | No | ||
| scheduled_workout_id | Yes | From list_scheduled_workouts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The updated scheduled-workout entry's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a mutating, non-destructive operation. The description adds value by specifying exactly what is edited (timing/recurrence) and explicitly ruling out changes to the workout itself, which is useful behavioral context beyond the annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry the core purpose and a clear non-goal with no filler. The primary action is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool, the description is minimal and relies heavily on the schema and annotations. It does not disclose potential side effects around recurrence updates or explain the meaning of several parameters. It is adequate for basic invocation but leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description's 'timing/recurrence' grouping loosely maps to the date/time and repeat parameters, but it does not explain unannotated fields such as reminder_minutes, start_date, or end_date. Schema descriptions cover only about half the parameters, and the description does not fully compensate for the remaining gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Edit'), a concrete resource ('existing scheduled-workout entry'), and a clear scope ('timing/recurrence'). It also distinguishes itself from other tools by stating it does not modify the workout itself, clarifying what the tool is and is not for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Existing' signals the tool is for already-created scheduled workouts, and 'timing/recurrence' makes it clear which kinds of updates belong here. The non-goal sentence provides an explicit exclusion, though it does not name alternative sibling tools such as create, delete, or toggle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
- First observed
create-scheduled-workout-tool - First observed
create-workout-tool - First observed
delete-scheduled-workout-tool - First observed
duplicate-workout-tool - First observed
get-stats-tool - First observed
get-workout-history-session-tool - First observed
get-workout-tool - First observed
list-scheduled-workouts-tool - First observed
list-workout-history-tool - First observed
list-workouts-tool - First observed
remove-scheduled-workout-occurrence-tool - First observed
search-exercise-library-tool - First observed
toggle-scheduled-workout-tool - First observed
update-scheduled-workout-tool
Publisher details
- Operator
- Unknown
- Operator website
- https://joti.kompetic.com · Publisher source
- Vendor relationship
- First-party
- Documentation
- https://joti.kompetic.com/connect · Publisher source
- Trust center
- Unknown
- Restrictions
- Included with a Joti app subscription
Related MCP Connectors
List, fetch, create, edit (replace), delete and schedule structured workouts on Garmin Connect (runn
Query workouts, browse exercises, and explore fitness data from BearTrail
Read-only access to your PumpX workout log: sessions, lift history, PRs, routines, measurements.
Read wearables and lab health data — sleep, activity, workouts, timeseries, lab tests and orders.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables reading Fitbod training history, generating workouts via Fitbod's engine, configuring workout programs, and tracking body composition over time.2MIT
- AlicenseAqualityDmaintenanceProvides read-only access to Nolio training data including planned workouts, completed sessions, metrics, records, and notes.84MIT
- FlicenseNot gradedqualityBmaintenanceProvides read access to Garmin Connect health and training data (sleep, heart rate, stress, HRV, activities) and supports writes like creating workouts, editing activities, and exporting files.-
- AlicenseNot gradedqualityCmaintenanceEnables triathlon coaches and athletes to interact with Garmin Connect, including retrieving health/activity data, building and uploading structured workouts (cycling, running, swimming, brick), and accessing coaching analytics like readiness, load, and performance trends.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.