MONS Athletics
by monsathletics.com · remote · no sign-in to list tools · v1.0.0 · published by com.monsathletics
Find your next endurance challenge and train for it with your MONS coach.
14 tools: 5 can delete or cancel things, 8 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels5Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things8Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http mons https://monsathletics.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnschedule
The server marks "schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "schedule" says "schedule": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 5Claude Code: deny
ask_coachSends a message to their MONS coach, in the same thread as the app, and returns the coach's reply.No findings
Why it is in this group
- The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Sends a message to their MONS coach, in the same thread as the app, and returns the coach's reply. Use for any training question: soreness, a missed session, how a session should feel. The coach may adjust their workouts.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
edit_scheduleSets what a coming day is for (days), or what a weekday is for every week (weekly).No findings
Why it is in this group
- The name "edit_schedule" says "edit": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Sets what a coming day is for (days), or what a weekday is for every week (weekly). focus none on a day hands it back to the coach for that date only; focus null clears it. Only one weekday can be the long run.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
morning_check_inEach day is planned on its own each morning.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Each day is planned on its own each morning. When the athlete's day is different, this tells the coach how many minutes they have today and what they cannot do, and the coach plans today's sessions again around it. Returns them. Takes up to a minute.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
remove_challengeRemoves a challenge that has not happened yet, by its id from ladder on_the_calendar.No findings
Why it is in this group
- The name "remove_challenge" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Removes a challenge that has not happened yet, by its id from ladder on_the_calendar.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
update_profileChanges how they build endurance (mix) or which kettlebells they have.No findings
Why it is in this group
- The name "update_profile" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Changes how they build endurance (mix) or which kettlebells they have. Send only what changes.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Changes things 8Claude Code: ask
about_monsWhat MONS Athletics is, its training method, who it is for, what it needs (iPhone and Apple Watch), and links to get started.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it What MONS Athletics is, its training method, who it is for, what it needs (iPhone and Apple Watch), and links to get started.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
add_challengePuts a challenge on a date after today.No findings
Why it is in this group
- The name "add_challenge" says "add": a word for a change.
Description, as the server wrote it Puts a challenge on a date after today. challenge_id is a challenge id, as find_next_challenge and ladder give them.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_readinessPicks the challenge to aim for from the person's training, how many weeks they are from it, and the one thing that sets the date.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Picks the challenge to aim for from the person's training, how many weeks they are from it, and the one thing that sets the date. Returns the next question while one is unanswered, then the challenge and verdict. Send every answer so far each time.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
ladderThe challenge ladder in order (collected, next, ready, readiness) and the challenges on the calendar, each with the id remove_challenge takes.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The challenge ladder in order (collected, next, ready, readiness) and the challenges on the calendar, each with the id remove_challenge takes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
my_profileWhether the account is set up and subscribed, the endurance mix, kettlebells, date of birth and max heart rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Whether the account is set up and subscribed, the endurance mix, kettlebells, date of birth and max heart rate.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
scheduleThe coming days: what each day is set to (rest, long run, a sport), the weekly rules, and the sessions so far.1 finding
Why it is in this group
- The name "schedule" says "schedule": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "schedule" says "schedule": a word for a change.
Description, as the server wrote it The coming days: what each day is set to (rest, long run, a sport), the weekly rules, and the sessions so far.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sign_upSets up the signed-in person's MONS account, as the app's onboarding would.No findings
Why it is in this group
- The description's first verb is "set": a word for a change.
Description, as the server wrote it Sets up the signed-in person's MONS account, as the app's onboarding would. Pass the challenge and answers from check_readiness when there are some. Does nothing to an account already set up.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
todayToday's sessions as the coach designed them, or that today is not designed yet.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Today's sessions as the coach designed them, or that today is not designed yet.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 1Claude Code: allow
find_next_challengeTakes the furthest a person has run, ridden or swum and gives the first question about their training, plus every challenge in that sport.No findings
Why it is in this group
- The name "find_next_challenge" says "find": a word for reading.
Description, as the server wrote it Takes the furthest a person has run, ridden or swum and gives the first question about their training, plus every challenge in that sport. check_readiness picks the challenge once the questions are answered.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http mons https://monsathletics.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__mons__find_next_challenge"
],
"ask": [
"mcp__mons__about_mons",
"mcp__mons__check_readiness",
"mcp__mons__sign_up",
"mcp__mons__my_profile",
"mcp__mons__today",
"mcp__mons__schedule",
"mcp__mons__ladder",
"mcp__mons__add_challenge"
],
"deny": [
"mcp__mons__update_profile",
"mcp__mons__morning_check_in",
"mcp__mons__edit_schedule",
"mcp__mons__remove_challenge",
"mcp__mons__ask_coach"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mons. Review it before you use it.