{"openapi":"3.1.0","info":{"title":"Cabinet API","version":"0.1.0","description":"A fully local, hand-curated arcade cabinet & classic arcade history reference: 8 cabinet formats (upright, cocktail, cabaret, sit-down/cockpit, mini/bartop, dedicated, conversion/multi-game, deluxe/motion), 28 landmark arcade games referenced factually, 4 era overviews, 14 restoration/collecting tips, 31 arcade glossary terms, 9 high-score/competitive-culture notes, and beginner tips.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://cabinet.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/cabinet/docs"},"termsOfService":"https://connectorbay.com/cabinet/terms"},"servers":[{"url":"https://cabinet.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/cabinet/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/cabinet_type_info":{"post":{"operationId":"cabinet_type_info","summary":"Full detail for one arcade cabinet format: a plain-language summary, its physical characteristics,","description":"Full detail for one arcade cabinet format: a plain-language summary, its physical characteristics,\n    a historical note on when/why it emerged, and common example games. Use for \"what's a cocktail cabinet\",\n    \"what makes a cabinet a cabaret\", \"what's a deluxe motion cabinet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A cabinet type's name or alias.","examples":["upright","cocktail","sit-down","cabaret","bartop","JAMMA cabinet"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"cabinet_type_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/landmark_game_info":{"post":{"operationId":"landmark_game_info","summary":"One real, historically significant arcade game's year, developer, typical cabinet format, and a","description":"One real, historically significant arcade game's year, developer, typical cabinet format, and a\n    one-or-two-sentence factual note on why it mattered historically. This is a historical reference, not a\n    gameplay walkthrough or strategy guide. Use for \"why was Donkey Kong important\", \"what made Street\n    Fighter II a big deal\", \"when did Dragon's Lair come out\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A real arcade game's name.","examples":["Pac-Man","Space Invaders","Street Fighter II","Dragon's Lair","Daytona USA"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"landmark_game_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/era_overview":{"post":{"operationId":"era_overview","summary":"Explains one period of arcade cabinet history — the golden age (roughly the late 1970s-early 1980s),","description":"Explains one period of arcade cabinet history — the golden age (roughly the late 1970s-early 1980s),\n    the 1983 downturn/arcade shakeout, the fighting-game and deluxe-cabinet revival (late 1980s-1990s), or the\n    2000s-onward decline of general arcades and the barcade/collector revival — with approximate years and\n    key developments. Omit `era` to list all four. Use for \"what was the golden age of arcades\", \"how did the\n    1983 crash affect arcades\", \"why did Street Fighter II bring arcades back\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"era":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"An era of arcade history; omit to list all.","examples":["golden age","1983 crash","fighting game boom","decline and barcade revival"],"title":"Era"}},"title":"era_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/restoration_tip":{"post":{"operationId":"restoration_tip","summary":"Cabinet restoration and collecting guidance — CRT monitor safety and convergence, control panel and","description":"Cabinet restoration and collecting guidance — CRT monitor safety and convergence, control panel and\n    overlay refurbishment, marquee/side-art/T-molding replacement, coin door service, capacitor aging, JAMMA\n    board swaps, originality vs. \"restifying\", sourcing a project cabinet, and moving/storage. Flags which\n    topics are electrical-safety-relevant. Omit `topic` to list all, or pass a keyword to search. Use for\n    \"how do I clean a control panel\", \"is it safe to open a CRT monitor\", \"what does JAMMA mean for board swaps\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A restoration/collecting topic; omit to list all.","examples":["CRT safety","control panel","marquee","coin door","capacitors","JAMMA","moving a cabinet"],"title":"Topic"}},"title":"restoration_tipArguments","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 arcade cabinet/culture terms — attract mode, marquee, bezel, JAMMA harness, DIP","description":"Definitions of arcade cabinet/culture terms — attract mode, marquee, bezel, JAMMA harness, DIP\n    switches, kill screen, high-score initials, PCB, vector vs. raster monitor, cocktail cabinet, trackball,\n    spinner, operator, route, location test, and more. Omit `term` to list all, or pass a keyword to search.\n    Use for \"what does JAMMA mean\", \"what's a kill screen\", \"what's the difference between a vector and\n    raster monitor\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific arcade 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/high_score_culture_note":{"post":{"operationId":"high_score_culture_note","summary":"Notes on competitive arcade and high-score culture — the local scoreboard tradition, Twin Galaxies,","description":"Notes on competitive arcade and high-score culture — the local scoreboard tradition, Twin Galaxies,\n    the three-letter initials convention, kill screens as badges of mastery, the Donkey Kong high-score\n    controversy chronicled in \"The King of Kong\", the Street Fighter II tournament boom, Guinness World\n    Records' video game record-keeping, and local vs. online leaderboards. Omit `topic` to list all, or pass\n    a keyword to search. Use for \"who is Twin Galaxies\", \"what's the Billy Mitchell controversy\", \"why do\n    high scores use three letters\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A competitive/high-score culture topic; omit to list all.","examples":["Twin Galaxies","kill screen","King of Kong","Street Fighter tournaments"],"title":"Topic"}},"title":"high_score_culture_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/find_cabinet_type_for_space":{"post":{"operationId":"find_cabinet_type_for_space","summary":"Suggests 1-3 cabinet formats that fit a described space or use case, keyword-matched against each","description":"Suggests 1-3 cabinet formats that fit a described space or use case, keyword-matched against each\n    cabinet type's tagged fit (footprint, social/seating style, budget, immersion). Use for \"what cabinet\n    fits a small apartment\", \"best cabinet format for a bar\", \"I want something immersive for racing games\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"space_description":{"description":"A space or use case, in plain language.","examples":["a small apartment","a bar that wants something social","a dedicated game room for racing games","a countertop in a dorm room"],"minLength":1,"title":"Space Description","type":"string"}},"required":["space_description"],"title":"find_cabinet_type_for_spaceArguments","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/category_list":{"post":{"operationId":"category_list","summary":"Every content category this reference covers (cabinet types, landmark games, eras, restoration tips,","description":"Every content category this reference covers (cabinet types, landmark games, eras, restoration tips,\n    glossary, high-score culture) with how many entries each has. Use for \"what do you cover\", \"what\n    categories are there\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"category_listArguments","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, ordered list of practical tips for someone starting to collect or restore arcade cabinets,","description":"A curated, ordered list of practical tips for someone starting to collect or restore arcade cabinets,\n    from spotting a sound project cabinet through safe first restoration steps. Use for \"give me beginner\n    arcade collecting tips\", \"how do I start restoring an arcade cabinet\".","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}}}}