MCP server for Octiv Fitness — lets Claude query your gym schedule and WODs
Server has 5 read-only tools with clear verb-noun naming (get_*, list_*). All tools have descriptions (avg 180 chars, within baseline 194). Input schemas are present with type declarations and descriptions. Parameter descriptions lack format constraints (e.g., date format stated in description but no regex/pattern in schema). Error handling is minimal; no recovery guidance or actionable error messages. No tool annotations (readOnlyHint, etc.). Composition is sound, tools are single-responsibility and chainable. Security: credentials injected via env vars (good), but no audit logging or permission gates documented.
Fetch the classes you are personally booked into for a given date range. Defaults to the next 7 days if no dates are provided.
List all available training programmes for your gym. Use this to discover programme IDs (e.g. to pass to get_wod).
Fetch the class schedule for a specific date or date range from Octiv Fitness.
Fetch the full class schedule for the current week (Monday–Sunday) from Octiv Fitness. Shows all classes with times, instructor, capacity, and whether you are booked in.
Fetch the Workout of the Day (WOD) from Octiv Fitness for a specific date or date range. Returns the warm-up, exercises (with descriptions and measuring units), and cool-down. If no programme is specified and OCTIV_PROGRAMME_IDS is not set, returns the available programmes so the user can choose one.
Output schemas not documented. Rubric requires 'Document the output schema. LLMs need to know what fields to expect.' No response structure defined for any tool, LLMs cannot plan downstream calls or extract data reliably.
Date parameters lack format constraints in schema. Descriptions state 'YYYY-MM-DD format' but schema has no pattern or format field.
No error handling or recovery guidance. Tools may fail (auth, API timeout, invalid dates) but no error responses document what to do next. Rubric: 'Error responses must tell the LLM what to do next.' Missing actionable error messages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
No tool annotations. Rubric rewards 'tool annotations (readOnlyHint/destructiveHint/idempotentHint)' in Spec Alignment. All 5 tools are read-only but lack readOnlyHint annotation, missed signal to clients.
get_wod has conditional logic (returns programmes if none specified) but this fallback behavior is not formalized as a separate tool or documented as a multi-step pattern. Composition could be clearer.