{"openapi":"3.1.0","info":{"title":"Fischer960 API","version":"0.1.0","description":"A fully local, hand-curated reference for nine real chess variants: Chess960 (Fischer Random Chess), King of the Hill, Three-check, Bughouse, Crazyhouse, Atomic, Horde, Antichess (Losing Chess) and Four-Player Chess, with original rule summaries, setup/castling rules, topic-level rule lookups, a cross-variant glossary, comparisons, feature search, history notes and beginner tips.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://fischer960.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/fischer960/docs"},"termsOfService":"https://connectorbay.com/fischer960/terms"},"servers":[{"url":"https://fischer960.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/fischer960/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/variant_info":{"post":{"operationId":"variant_info","summary":"Full detail for one chess variant: objective, board/setup, every difference from standard chess, the","description":"Full detail for one chess variant: objective, board/setup, every difference from standard chess, the\n    complete topic-by-topic rules, tagged features, difficulty, typical pace and a short history note. Use for\n    \"what is Crazyhouse\", \"explain Four-Player Chess\", \"how is Atomic different from normal chess\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A chess variant's name or alias.","examples":["chess960","bughouse","horde","king of the hill"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"variant_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/rule_lookup":{"post":{"operationId":"rule_lookup","summary":"Answers a specific rules question for one named variant by topic — e.g. Chess960 + \"castling\", Atomic +","description":"Answers a specific rules question for one named variant by topic — e.g. Chess960 + \"castling\", Atomic +\n    \"explosion\", Bughouse + \"communication\", Antichess + \"capture\". Matches the topic against that variant's\n    own rule headings first, then against the rule text itself. Use for \"what's the castling rule in Chess960\",\n    \"how do drops work in Crazyhouse\", \"what happens when you capture in Atomic\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A chess variant's name or alias.","examples":["chess960","atomic","antichess"],"minLength":1,"title":"Variant","type":"string"},"topic":{"description":"A rules topic to look up within that variant.","examples":["castling","winning condition","explosion","mandatory capture","drops"],"minLength":1,"title":"Topic","type":"string"}},"required":["variant","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/starting_position_rule":{"post":{"operationId":"starting_position_rule","summary":"Explains a variant's starting setup specifically, including castling where relevant. Most useful for","description":"Explains a variant's starting setup specifically, including castling where relevant. Most useful for\n    Chess960's randomization-and-castling rules and Horde's asymmetric pawn wall, but returns the starting\n    setup for every variant, including ones that just use the standard chess position. Use for \"how does\n    Chess960 randomize the back rank\", \"what's Chess960's castling rule\", \"how is Horde's board set up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A chess variant's name or alias.","examples":["chess960","horde","four-player chess"],"minLength":1,"title":"Variant","type":"string"}},"required":["variant"],"title":"starting_position_ruleArguments","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 chess-variant vocabulary used across this reference — drop, reserve, sitting, bare king,","description":"Definitions of chess-variant vocabulary used across this reference — drop, reserve, sitting, bare king,\n    blast radius, virtual castling, mandatory capture, check count, and more. Use for \"what does 'drop' mean\n    in chess\", \"what's a bare king\", \"what's virtual castling\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific cross-variant term to look up; omit to list all.","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/variant_comparison":{"post":{"operationId":"variant_comparison","summary":"A side-by-side comparison of two named variants' objective, category, player count, difficulty, pace","description":"A side-by-side comparison of two named variants' objective, category, player count, difficulty, pace\n    and tagged features, plus which features they share and which are unique to each. Use for \"compare Atomic\n    and Crazyhouse\", \"Chess960 vs King of the Hill, what's different\", \"Bughouse vs Four-Player Chess\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"a":{"description":"The first variant's name or alias.","examples":["atomic"],"minLength":1,"title":"A","type":"string"},"b":{"description":"The second variant's name or alias.","examples":["crazyhouse"],"minLength":1,"title":"B","type":"string"}},"required":["a","b"],"title":"variant_comparisonArguments","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/find_variant_by_feature":{"post":{"operationId":"find_variant_by_feature","summary":"Suggests variants matching a plain-language quality, keyword-matched against each variant's tagged","description":"Suggests variants matching a plain-language quality, keyword-matched against each variant's tagged\n    features, category, summary and rule differences. Use for \"what chess variants have team play\", \"any\n    variant that's usually fast\", \"which variant rarely ends in a draw\", \"variants with a randomized setup\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"feature":{"description":"A plain-language quality to search for.","examples":["team play","fast games","no draws","piece drops","randomized setup","large board"],"minLength":1,"title":"Feature","type":"string"}},"required":["feature"],"title":"find_variant_by_featureArguments","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/history_note":{"post":{"operationId":"history_note","summary":"A variant's origin, approximate date, notable figures and any other historical notes. Use for \"when was","description":"A variant's origin, approximate date, notable figures and any other historical notes. Use for \"when was\n    Chess960 invented\", \"who created Fischer Random chess\", \"history of Bughouse\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A chess variant's name or alias.","minLength":1,"title":"Variant","type":"string"}},"required":["variant"],"title":"history_noteArguments","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 short, curated list of tips for starting to play one named variant. Use for \"tips for playing","description":"A short, curated list of tips for starting to play one named variant. Use for \"tips for playing\n    Antichess\", \"how do I get started with Bughouse\", \"beginner advice for Horde\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A chess variant's name or alias.","minLength":1,"title":"Variant","type":"string"},"count":{"default":5,"description":"How many tips to return.","maximum":10,"minimum":1,"title":"Count","type":"integer"}},"required":["variant"],"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}}}}