{"openapi":"3.1.0","info":{"title":"Hostkit API","version":"0.1.0","description":"A fully local, hand-curated host/hostess etiquette guide: dinner parties, overnight guests, everyday hospitality, invitations/RSVPs, gift-giving and thank-yous, handling awkward moments, event-timeline checklists and a hosting-terms glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://hostkit.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/hostkit/docs"},"termsOfService":"https://connectorbay.com/hostkit/terms"},"servers":[{"url":"https://hostkit.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/hostkit/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/etiquette_info":{"post":{"operationId":"etiquette_info","summary":"Full detail for one hosting-etiquette tip: category, practical guidance, and when it applies. Use for \"how","description":"Full detail for one hosting-etiquette tip: category, practical guidance, and when it applies. Use for \"how\n    do I seat guests\", \"how do I handle dietary restrictions\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A hosting topic or tip name.","examples":["seating arrangements","dietary restrictions","guest won't leave"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"etiquette_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/etiquette_search":{"post":{"operationId":"etiquette_search","summary":"Keyword search across every tip's name, category, guidance and tagged situations. Use for \"tips about","description":"Keyword search across every tip's name, category, guidance and tagged situations. Use for \"tips about\n    RSVPs\", \"anything about overnight guests\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search for.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"etiquette_searchArguments","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/tips_by_category":{"post":{"operationId":"tips_by_category","summary":"Every tip in one category. Use category_list for valid names. Use for \"list all dinner party tips\".","description":"Every tip in one category. Use category_list for valid names. Use for \"list all dinner party tips\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"description":"A category name.","examples":["Dinner Parties","Overnight Guests"],"title":"Category","type":"string"}},"required":["category"],"title":"tips_by_categoryArguments","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 tip category with how many tips are in it. Use for \"what hosting topics do you cover\".","description":"Every tip category with how many tips are in it. Use for \"what hosting topics do you cover\".","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/find_tip_for_situation":{"post":{"operationId":"find_tip_for_situation","summary":"Suggests 1-4 tips for a stated hosting situation. Use for \"a guest won't leave, what do I do\", \"tension","description":"Suggests 1-4 tips for a stated hosting situation. Use for \"a guest won't leave, what do I do\", \"tension\n    between two guests\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"situation":{"description":"A situation, in plain language.","examples":["guest won't leave","guest has a dietary restriction","guests arguing at party"],"minLength":1,"title":"Situation","type":"string"}},"required":["situation"],"title":"find_tip_for_situationArguments","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/hosting_checklist":{"post":{"operationId":"hosting_checklist","summary":"A phased, timeline-based hosting checklist for one event type — dinner party, overnight guest stay, casual","description":"A phased, timeline-based hosting checklist for one event type — dinner party, overnight guest stay, casual\n    get-together, or holiday gathering. Use for \"checklist for hosting a dinner party\", \"what should I do before\n    an overnight guest arrives\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_type":{"description":"An event type.","examples":["Dinner Party","Overnight Guest Stay","Casual Get-Together","Holiday Gathering"],"minLength":1,"title":"Event Type","type":"string"}},"required":["event_type"],"title":"hosting_checklistArguments","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/event_type_list":{"post":{"operationId":"event_type_list","summary":"Every event type with a hosting checklist available. Use for \"what kinds of hosting checklists do you","description":"Every event type with a hosting checklist available. Use for \"what kinds of hosting checklists do you\n    have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"event_type_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/etiquette_glossary":{"post":{"operationId":"etiquette_glossary","summary":"Definitions of common hosting terms — RSVP, plus-one, hostess gift, potluck, BYOB, open house, place card,","description":"Definitions of common hosting terms — RSVP, plus-one, hostess gift, potluck, BYOB, open house, place card,\n    regrets only, dress code cue, soft close. Use for \"what does RSVP mean\", \"what's a soft close\".","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":"etiquette_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/essential_hosting_basics":{"post":{"operationId":"essential_hosting_basics","summary":"A shortlist of the most essential hosting basics across every category. Use for \"what are the most","description":"A shortlist of the most essential hosting basics across every category. Use for \"what are the most\n    important hosting basics\", \"hosting 101\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":6,"description":"How many essentials to return.","maximum":10,"minimum":1,"title":"Count","type":"integer"}},"title":"essential_hosting_basicsArguments","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}}}}