{"openapi":"3.1.0","info":{"title":"Foosball API","version":"0.1.0","description":"A fully local, hand-curated table football (foosball) rules and technique reference: serving, dead-ball, timing and foul rules, named shot techniques (pull, snake, push, pin, tic-tac, bank shot), singles/doubles and standard/tournament table formats, an equipment overview, scoring structure, a glossary and beginner tips. Keyless; fully local; zero upstream calls.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://foosball.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/foosball/docs"},"termsOfService":"https://connectorbay.com/foosball/terms"},"servers":[{"url":"https://foosball.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/foosball/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/rule_lookup":{"post":{"operationId":"rule_lookup","summary":"Explains one foosball rule topic in plain language: serving, dead/stuck balls, time limits and","description":"Explains one foosball rule topic in plain language: serving, dead/stuck balls, time limits and\n    stalling, spinning/jarring fouls, timeouts, possession and passing limits, reaching over the table,\n    winning a game and match point, doubles partner rotation, or forfeits and unsporting conduct. Use for\n    \"what's the rule on spinning\", \"how does serving work\", \"when is a ball considered dead\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A rules topic or keyword.","examples":["serving","spinning fouls","dead ball","time limits","doubles rotation"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"rule_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/term_glossary":{"post":{"operationId":"term_glossary","summary":"Definitions of common foosball vocabulary — 5-bar/3-bar/2-bar/1-bar, tic-tac, jarring, spin foul, dead","description":"Definitions of common foosball vocabulary — 5-bar/3-bar/2-bar/1-bar, tic-tac, jarring, spin foul, dead\n    ball, cherry-picking, bushing vs bearing, telescoping rod, and more. Use for \"what's a 5-bar\", \"what does\n    jarring mean in foosball\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","examples":["5-bar","tic-tac","jarring","bushing"],"title":"Term"}},"title":"term_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/technique_info":{"post":{"operationId":"technique_info","summary":"Full detail on one named foosball shot or passing technique: how to execute it, which rod it's typically","description":"Full detail on one named foosball shot or passing technique: how to execute it, which rod it's typically\n    played from, its difficulty, when to use it, and how it's typically countered. Covers the pull shot, push\n    shot, snake shot, pin shot, tic-tac pass, and bank/wall shot. Use for \"how do you do a snake shot\", \"what's\n    a pin shot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A shot or passing technique's name or alias.","examples":["pull shot","snake shot","push shot","pin shot","tic-tac pass","bank shot"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"technique_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/format_info":{"post":{"operationId":"format_info","summary":"Explains one play format (singles, doubles, cutthroat/three-player) or table type (standard/home table,","description":"Explains one play format (singles, doubles, cutthroat/three-player) or table type (standard/home table,\n    tournament/certified table), including how it typically works and how it differs from the others. Use for\n    \"how does doubles foosball work\", \"what's the difference between a standard and tournament table\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A play format or table type name.","examples":["singles","doubles","cutthroat","standard table","tournament table"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"format_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/equipment_overview":{"post":{"operationId":"equipment_overview","summary":"Every part of a foosball table — cabinet, playfield, walls, goals, rods, men, ball, handles, bearings vs.","description":"Every part of a foosball table — cabinet, playfield, walls, goals, rods, men, ball, handles, bearings vs.\n    bushings, and telescoping rods — with a plain-language explanation of what each does and how it affects\n    play. Use for \"what parts make up a foosball table\", \"what's the difference between bearings and bushings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"equipment_overviewArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/scoring_summary":{"post":{"operationId":"scoring_summary","summary":"How foosball games and matches are typically scored and won: common game-point targets, the optional","description":"How foosball games and matches are typically scored and won: common game-point targets, the optional\n    win-by-two margin rule, match structure (best-of-N games), and how doubles scoring works. Use for \"how many\n    points to win a game of foosball\", \"how is a foosball match structured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"scoring_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/beginner_tips":{"post":{"operationId":"beginner_tips","summary":"A ranked shortlist of practical tips for someone new to foosball — ball control before power, keeping","description":"A ranked shortlist of practical tips for someone new to foosball — ball control before power, keeping\n    men upright, avoiding spin fouls, reading an opponent's setup, and more. Use for \"tips for a foosball\n    beginner\", \"how do I get better at foosball\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many tips to return.","maximum":10,"minimum":1,"title":"Count","type":"integer"}},"title":"beginner_tipsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_topics":{"post":{"operationId":"list_topics","summary":"Lists every valid rule topic, technique name, and format/table-type name this reference covers, plus","description":"Lists every valid rule topic, technique name, and format/table-type name this reference covers, plus\n    how many glossary terms are available — useful for discovering exactly what can be looked up before\n    calling rule_lookup, technique_info, or format_info. Use for \"what rule topics do you cover\", \"what shot\n    techniques do you know\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_topicsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}