arcana-table.pages.dev
A WebMCP-powered tabletop where an AI agent co-runs the game — and real exercise earns heroic dice. Do the push-ups, claim the natural 20.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 4 · Act 17 · Transact 0 · Score: Not yet scored
Tool inspector
propose_challenge
HEROIC EFFORT — stake a real exercise against the dice. Offer this before a roll that matters: the player does the reps, the reward auto-applies to their next d20. Always optional. Effort and reward scale together — five push-ups is worth +2, ten is worth +5, twenty-five buys a natural 20 — so ask bigger when you want to pay bigger. OFFER OFTEN: about every second exchange, not once a session. ALWAYS check get_fitness_log first: offer ONLY from its availableExercises list for mode "reps", and ONLY from its availableHolds list for mode "hold" — those are the sets this player can actually do, and the two lists are not interchangeable. The call resolves when the player finishes or declines (or returns "pending" if they take longer than 90s — check back with get_fitness_log).
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
mode |
string | no | reps = counted repetitions (default) · hold = a timed hold, e.g. a plank or a stretch |
exercise |
string | yes | A rep exercise for mode "reps", or a hold for mode "hold" |
reps |
number | no | Repetition count for mode "reps" (1-100). Keep it achievable: 5-25 for most people. |
seconds |
number | no | Hold length in seconds for mode "hold" (5-300). 20-45s is a real hold for most people. |
reward |
string | no | What it buys. PRICE LIST — 5 reps/20s → bonus+2 · 8/25s → bonus+3 · 10/30s → bonus+5 · 12/40s → advantage · 15/45s → bonus+8 · 20/60s → set10 (next d20 is a 10) · 25/90s → nat20 (next d20 is a natural 20). Ask bigger, pay bigger. OMIT this and the size of your ask picks the right one. |
reason |
string | no | Why fate demands sweat right now, in DM voice |
Raw JSON schema
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"reps",
"hold"
],
"description": "reps = counted repetitions (default) · hold = a timed hold, e.g. a plank or a stretch"
},
"exercise": {
"type": "string",
"enum": [
"push-ups",
"crunches",
"jumping jacks",
"squats",
"sit-ups",
"lunges",
"high knees",
"mountain climbers",
"burpees",
"plank",
"side plank",
"high plank",
"wall sit",
"squat hold",
"dead hang",
"hollow hold",
"glute bridge"
],
"description": "A rep exercise for mode \"reps\", or a hold for mode \"hold\""
},
"reps": {
"type": "number",
"description": "Repetition count for mode \"reps\" (1-100). Keep it achievable: 5-25 for most people."
},
"seconds": {
"type": "number",
"description": "Hold length in seconds for mode \"hold\" (5-300). 20-45s is a real hold for most people."
},
"reward": {
"type": "string",
"enum": [
"bonus+2",
"bonus+3",
"bonus+5",
"bonus+8",
"advantage",
"set10",
"nat20"
],
"description": "What it buys. PRICE LIST — 5 reps/20s → bonus+2 · 8/25s → bonus+3 · 10/30s → bonus+5 · 12/40s → advantage · 15/45s → bonus+8 · 20/60s → set10 (next d20 is a 10) · 25/90s → nat20 (next d20 is a natural 20). Ask bigger, pay bigger. OMIT this and the size of your ask picks the right one."
},
"reason": {
"type": "string",
"description": "Why fate demands sweat right now, in DM voice"
}
},
"required": [
"exercise"
]
}
Similar websites
wfsim.app
A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests ar…
commonplace-webmcp.vercel.app
Commonplace is an editable social reading space built for people and their browser agents.
pixelforge-studio.appcaster.chatgpt.site
A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.
pixelite.taskcraft.site
Pixelite