{"openapi":"3.1.0","info":{"title":"Lanparty API","version":"0.1.0","description":"A fully local, hand-curated LAN party & local-multiplayer gaming event reference: history, attendee-level networking basics, venue/power/seating/checklist logistics that scale with real attendee-count math, local-multiplayer game genres by group size and duration, an etiquette guide, and a glossary of LAN/networking terms.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://lanparty.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/lanparty/docs"},"termsOfService":"https://connectorbay.com/lanparty/terms"},"servers":[{"url":"https://lanparty.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/lanparty/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/event_planning_tip":{"post":{"operationId":"event_planning_tip","summary":"Logistics tips for one LAN-party planning topic: venue, power, seating, network setup, schedule, food,","description":"Logistics tips for one LAN-party planning topic: venue, power, seating, network setup, schedule, food,\n    noise, cleanup, or budget. Use for \"what should I check about the venue\", \"how do I plan power for a LAN\n    party\", \"how much table space per person\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A planning topic.","examples":["venue","power","seating","network","schedule","food","noise","cleanup","budget"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"event_planning_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/history_note":{"post":{"operationId":"history_note","summary":"The history of LAN parties, from pre-Ethernet dial-up/BBS culture through the Doom-era LAN deathmatch","description":"The history of LAN parties, from pre-Ethernet dial-up/BBS culture through the Doom-era LAN deathmatch\n    boom, the 'bring your own computer' golden age, the broadband-driven decline, competitive esports keeping\n    the format alive, and today's community revival. Pass an era/keyword to filter, or omit it for everything.\n    Use for \"when did LAN parties start\", \"why did LAN parties decline\", \"history of LAN parties\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"era":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"An era, year range, or keyword to filter by; omit for the full timeline.","examples":["1990s","golden age","esports","revival"],"title":"Era"}},"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/genre_suggestion":{"post":{"operationId":"genre_suggestion","summary":"Up to 5 local-multiplayer game genres that fit a given group size, ranked by how naturally the group","description":"Up to 5 local-multiplayer game genres that fit a given group size, ranked by how naturally the group\n    size fits each genre's typical range, each with a one-line reason it works for that kind of group. Use for\n    \"what games work well for 4 people on a couch\", \"best game genres for a 12-person LAN party\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_size":{"description":"Number of people playing together.","examples":[2,4,8,16],"maximum":64,"minimum":1,"title":"Group Size","type":"integer"}},"required":["group_size"],"title":"genre_suggestionArguments","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 LAN/networking basics (LAN vs WAN, switch vs hub vs router, IP address, DHCP, ping,","description":"Definitions of LAN/networking basics (LAN vs WAN, switch vs hub vs router, IP address, DHCP, ping,\n    packet loss, dedicated vs listen server) and LAN-party jargon (BYOC, rig, bracket, seeding, single vs\n    double elimination). Use for \"what does BYOC mean\", \"what's the difference between a switch and a hub\",\n    \"what is seeding in a tournament\".","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":["LAN","BYOC","ping","bracket"],"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/etiquette_tip":{"post":{"operationId":"etiquette_tip","summary":"Attendee etiquette guidance by topic: bringing your own gear, volume/headphone norms, sportsmanship","description":"Attendee etiquette guidance by topic: bringing your own gear, volume/headphone norms, sportsmanship\n    and trash talk, sharing power outlets, cleanup duty, spectating, breaks and rest, streaming/photo consent,\n    and hosting duties. Use for \"is trash talk okay at a LAN party\", \"can I unplug someone else's power strip\",\n    \"etiquette for spectating a match\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"An etiquette topic.","examples":["byoc_setup","volume","sportsmanship","sharing_power","cleanup_duty","spectating","breaks_and_rest","streaming_and_photos","hosting"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"etiquette_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/checklist_generator":{"post":{"operationId":"checklist_generator","summary":"Scales a real logistics checklist, power strips, extension cords, network switches, Ethernet cables,","description":"Scales a real logistics checklist, power strips, extension cords, network switches, Ethernet cables,\n    tables, trash bins, and recommended tech leads, to a given attendee count using real per-attendee ratios,\n    plus a fixed baseline checklist and an electrical safety note. Use for \"how many power strips do I need for\n    20 people\", \"what do I need for a 50-person LAN party\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"attendee_count":{"description":"How many attendees the event is planned for.","examples":[8,20,50],"maximum":300,"minimum":2,"title":"Attendee Count","type":"integer"}},"required":["attendee_count"],"title":"checklist_generatorArguments","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_setup_for_group":{"post":{"operationId":"find_setup_for_group","summary":"Combines a group size and event duration into a recommended local-multiplayer genre mix, a schedule","description":"Combines a group size and event duration into a recommended local-multiplayer genre mix, a schedule\n    shape (how to structure brackets vs free-play), and a setup note on shared-screen vs individual-rig play.\n    Use for \"what should we play for 10 people over a full day\", \"plan a LAN party for 4 people for a few hours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_size":{"description":"Number of people attending.","examples":[4,10,20],"maximum":64,"minimum":1,"title":"Group Size","type":"integer"},"duration":{"description":"How long the event runs.","examples":["a few hours","half day","full day","overnight","the whole weekend"],"minLength":1,"title":"Duration","type":"string"}},"required":["group_size","duration"],"title":"find_setup_for_groupArguments","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 the most important tips for a first-time LAN party organizer, from most to least","description":"A ranked shortlist of the most important tips for a first-time LAN party organizer, from most to least\n    essential. Use for \"what should a first-time LAN party host know\", \"tips for organizing my first LAN party\".","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}}}}