Sports Rules
Was that offside? The decision procedure, for soccer and hockey.
Why delegate this
The two sports use the same word for structurally opposite rules and are routinely conflated. Soccer excludes hands and arms and treats an offside position as no offence without involvement; hockey judges skates against the blue-line plane, where since 2021 a skate in the air is onside — except when tagging up.
Tools
offside
Work an offside call through IFAB Law 11 or NHL Rule 83
Returns a verdict plus every step taken. THREE verdicts, not two: offside, onside, and no-offside-offence — the last is real and common, because in soccer an offside POSITION is not an offence without involvement in active play. Soccer: hands and arms never count (boundary at the bottom of the armpit), there is no offence direct from a throw-in, goal kick or corner, and a DELIBERATE play by an opponent resets it while a deflection does not. Hockey: skates decide it, not the stick, and since 2021 a skate in the air above the blue line is onside — but NOT when tagging up on a delayed offside. Not an official ruling.
Direct endpoint:
https://sports-rules.gumballtools.com/api/v1/offsideoffside_rule_contrast
Contrast soccer and hockey offside, dimension by dimension
Returns the structural differences between soccer offside and hockey offside, one dimension at a time. Use it when someone asks how the two compare, and — more usefully — before reasoning about one sport using an intuition from the other, which is the commonest way to get either wrong. They differ on what part of the player is measured, when the picture freezes, whether position alone is an offence, what happens at exactly level, what resets the situation, and which restarts are exempt. Six dimensions, and borrowing the answer from the wrong sport is wrong on most of them. Takes no arguments. Returns the comparison.
Direct endpoint:
https://sports-rules.gumballtools.com/api/v1/contrast
Two ways to call it
Through the aggregator, which gives you every other tool at the same time:
claude mcp add --transport http gumball https://gumballtools.com/api/mcpOr directly, if this is the only capability you want:
claude mcp add --transport http sports-rules https://sports-rules.gumballtools.com/api/mcp