# Bearings — Global Bear Community Infrastructure Bearings is a verified directory of the global gay bear community. ## What we contain - Events: bear runs, festivals, cruises, socials (88 active events, 25+ countries) - Places: bars, leather bars, saunas, campgrounds (173 venues) - Clubs: community clubs and organising associations (49 clubs) - Title holders: competition winners 1992–present (148 records, IBR complete) - Competitions: 27 active bear title competitions worldwide - Creators: musicians, DJs, authors, illustrators, filmmakers, historians (46 verified) - Digital spaces: apps, Discord, podcasts, Twitch (35 spaces) - Bear history: community milestones 1987–present (58 records) - Campaigns: active charity fundraising (12 campaigns) - Shops: bear-owned shops, gear, and books by bear authors (24 shops) ## API endpoints GET /api/events — all upcoming events (?country=X &month=September) GET /api/events/ical.ics — iCal feed, subscribable by URL GET /api/events/by-month — event density by month (powers timeline chart) GET /api/places — all active venues (?country=X &place_type=bar) GET /api/clubs — community clubs (?country=X) GET /api/title-holders — competition archive (?title_name=X &year=X) GET /api/title-holders/current — current holders per competition GET /api/creators — community creators (?creator_type=musician) GET /api/digital-spaces — apps, Discord, podcasts (?space_type=discord) GET /api/stories — oral histories and community essays GET /api/bear-history — community milestones 1987–present GET /api/campaigns — active charity campaigns GET /api/treasury — the Base/USDC wallet that keeps the lights on GET /api/bear-future — community funding proposals GET /api/inclusion-flags — CONST-10 inclusion flag reference ## MCP server (for AI agents) A Model Context Protocol server is live at POST /mcp (JSON-RPC over HTTP). Every query tool is read-only; the one write tool (submit_suggestion) only appends to a moderated review queue — it never edits the directory. Point any MCP client at https://bearings.community/mcp to query the directory. Tools: search_events, list_places, get_event, get_place, event_venues, event_titleholders, event_relations, event_schedule, event_media, event_creators, current_title_holders, list_clubs, list_creators, list_campaigns, list_digital_spaces, and submit_suggestion. get_event(id)/get_place(id) fetch one entity by id. event_venues(event_id) returns the linked venues + bear-friendly places with distance_km ("the venue plus nearby stays/brunches"). event_titleholders(event_id) is the reverse lookup ("who to meet"). event_relations(event_id) returns how an event composes into a trip — pairs_with/precedes/follows/combine_with/nearby links to other events or places (itinerary building). event_schedule(event_id) returns the programme (timed sub-items). event_media(event_id) returns producer promo images — posters, schedule posters (kind='schedule'), hero/venue shots — each with source_url + credit; also embedded as `media` in search_events/get_event rows. event_creators(event_id) is the line-up — DJs, musicians, drag performers tied to an event (role + official), also embedded as `lineup` in event rows. search_events filters: country, city, type, from/to (date range), has_inclusion_flag (CONST-10 code, array-contains), has_vibe (taste tag, array-contains), meal (meal component, array-contains), series (series_key — every edition of a recurring event), q. list_places filters add can_stay, bear_owned, has_inclusion_flag, has_vibe. Events also carry series_key (recurring-series identity), ticket_url, price_from, producer, map_url (venue/route/ transit map), vibe_tags (taste/feel) and meal_tags; places carry vibe_tags too. search_events and list_places return rich rows: inclusion flags (inclusion_flag_codes/notes), geo (lat/lng), freshness (active/updated_at/source), plus per-event host-hotel room block, charity, size/attendance — and per-place bear-friendly signals (bear_owned/welcoming/popular), lodging (can_stay/booking_link/misterbnb_link), dining (brunch_available/cuisine_type/price_range) and verified. CONST-6: for events/places in criminalised countries, privacy_mode is true and every field more precise than the country (city/lat/lng/address/host_hotel) is redacted at source. submit_suggestion(kind, subject, detail, source_url, reporter) queues a new-listing or correction into the moderation queue for a steward to review — Bearings decides what becomes canonical (one-way authority). A reporter matching a current title holder is flagged high-trust. ## Governance Run by a volunteer steward and kept transparent. Formal governance is deferred to the future — if Bearings outgrows a single steward, a community model (possibly a DAO) can be introduced then. Legal: unincorporated association. Contact: ursasteward@pm.me