{"openapi":"3.1.0","info":{"title":"Stones API","version":"0.1.0","description":"A fully local, hand-curated Go (Weiqi/Baduk) rules, scoring and strategy reference: rules and special situations, area vs. territory scoring compared, board-size guidance for 9x9/13x13/19x19, generic opening concepts, a handicap-stone placement guide, the kyu/dan/pro-dan rank systems explained, a terms glossary, and curated beginner tips.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://stones.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/stones/docs"},"termsOfService":"https://connectorbay.com/stones/terms"},"servers":[{"url":"https://stones.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/stones/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":"Full detail for one Go rule or special situation: a summary, numbered explanation points, and","description":"Full detail for one Go rule or special situation: a summary, numbered explanation points, and\n    concrete examples. Covers liberties, capture, atari, ko/superko, the suicide rule, eyes, life and death,\n    seki, connecting/cutting, ladders, nets, snapback, self-atari, passing, game end and dead-stone removal,\n    dame, and resignation. Use for \"what's the ko rule\", \"what is seki\", \"how does capturing work\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A Go rule or special-situation topic, by name or alias.","examples":["liberties","ko","life and death","seki","suicide rule","snapback"],"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/scoring_method":{"post":{"operationId":"scoring_method","summary":"Explains one Go scoring system in full: how the final score is computed, typical komi, which","description":"Explains one Go scoring system in full: how the final score is computed, typical komi, which\n    traditions use it, and the key practical difference from the others. Covers area/Chinese-style scoring,\n    territory/Japanese-style scoring, AGA scoring, and Ing scoring. Use for \"area scoring vs territory\n    scoring\", \"how is komi used in Chinese rules\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A scoring method's name or alias.","examples":["area","territory","chinese","japanese","AGA","Ing"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"scoring_methodArguments","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 Go vocabulary — sente, gote, tenuki, fuseki, joseki, moyo, thickness (atsumi), aji,","description":"Definitions of Go vocabulary — sente, gote, tenuki, fuseki, joseki, moyo, thickness (atsumi), aji,\n    tesuji, hane, kosumi, keima, semeai, yose, byo-yomi, hoshi, tengen, komoku, sanrensei, kakari, and more.\n    Omit `term` to list the full glossary. Use for \"what does sente mean\", \"what's a moyo\".","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.","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/board_size_info":{"post":{"operationId":"board_size_info","summary":"Describes one standard Go board size: typical game length, star-point layout, and what it's best","description":"Describes one standard Go board size: typical game length, star-point layout, and what it's best\n    used for (learning/blitz on 9x9, an intermediate stepping stone on 13x13, or standard tournament and\n    ranked play on 19x19). Use for \"what board size should I learn on\", \"how long does a 19x19 game take\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"size":{"description":"A standard board size.","examples":["9x9","13x13","19x19"],"minLength":1,"title":"Size","type":"string"}},"required":["size"],"title":"board_size_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/opening_concept":{"post":{"operationId":"opening_concept","summary":"Explains a whole-board Go opening or strategic concept generically: fuseki (the opening phase and its","description":"Explains a whole-board Go opening or strategic concept generically: fuseki (the opening phase and its\n    corner-side-center priority), joseki (explained only as a general concept — a fair local corner exchange\n    — never a specific proprietary sequence), direction of play, territory vs. influence, and how opening\n    strategy shifts in a handicap game. Use for \"what is fuseki\", \"what does joseki mean\", \"should I play for\n    territory or influence\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"An opening/strategy concept's name or alias.","examples":["fuseki","joseki","direction of play","territory vs influence","handicap opening strategy"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"opening_conceptArguments","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/handicap_guide":{"post":{"operationId":"handicap_guide","summary":"The standard star-point placement for a given number of handicap stones (2 through 9), plus how","description":"The standard star-point placement for a given number of handicap stones (2 through 9), plus how\n    handicap play works (who places stones, who moves first, and how komi is typically adjusted) and a\n    rough rank-gap guideline for choosing a handicap. Use for \"how do handicap stones work\", \"where do 4\n    handicap stones go\", \"how many handicap stones for a 5-rank difference\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"stone_count":{"description":"Number of handicap stones, 2-9.","examples":[2,4,9],"title":"Stone Count","type":"integer"}},"required":["stone_count"],"title":"handicap_guideArguments","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/rank_system_explainer":{"post":{"operationId":"rank_system_explainer","summary":"Explains one Go rank/rating scale: kyu ranks (beginner-to-intermediate, counting down as you","description":"Explains one Go rank/rating scale: kyu ranks (beginner-to-intermediate, counting down as you\n    improve), amateur dan ranks (advanced, counting up), professional dan ranks (a separate, stronger scale\n    awarded by professional associations), or numeric rating systems used alongside kyu/dan labels. Use for\n    \"what's the difference between kyu and dan\", \"is a 1-dan pro stronger than a 1-dan amateur\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"system":{"description":"A rank system's name or alias.","examples":["kyu","dan","pro dan","rating"],"minLength":1,"title":"System","type":"string"}},"required":["system"],"title":"rank_system_explainerArguments","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 curated, importance-ordered shortlist of tips for a player new to Go — board size, liberties, life","description":"A curated, importance-ordered shortlist of tips for a player new to Go — board size, liberties, life\n    and death, joseki caution, review habits, and more. Use for \"what should a beginner focus on\", \"tips for\n    a new Go player\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many tips to return.","maximum":12,"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}}}}