com.sonarconnections/sonar-connections

Sonar Connections

Source-attributed events, open data and availability

Endpointhttps://mcpconnector-gtlizqtvza-uw.a.run.app/public (streamable-http)
Registry version0.1.0
Now55 tools · grade D (55) · pin ts_5a1e9aa75e1ca1cf263246c652ab4354 · protocol 2025-06-18
First / last listed2026-10-28 00:40 UTC / 2026-10-28 00:40 UTC
Grade over time2026-10-28: D (55), 55 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-28 00:40 UTC
55 tools, grade D (55)

Tools: booth_set_away biz_set_item_availability event_redeem_code event_set_intent event_find_matches event_inbox event_card_links event_card_save_linkedin booth_connect booth_enter_raffle booth_claim_swag booth_take_invite event_reply event_say_hello event_requests event_accept event_text_alerts events_list events_get events_overview events_floor_card event_wallet_pass event_pass_reissue event_pass_revoke events_personal_card event_pass_notice event_meetup_announce event_meetup_rsvp event_session_move event_session_rename event_session_cancel event_session_add event_organizer_overview site_list site_get site_edit site_publish site_undo_publish site_create event_change_detail event_change_undo event_send_request event_guest_requests event_guest_request_handled ui_card_diag events_booths events_offers events_whats_on events_speakers biz_info biz_availability biz_menu biz_order biz_order_status biz_storefront

Current tools (55)

booth_set_awayMarks a booth the person staffs as stepped away, or back; attendees looking at that booth see the presence change. Needs a personal connector token (a shared token reads but changes nothing), `eventId`, `boothId` and `away`. Only a booth the person owns, administers or staffs at that event can be changed, checked against live records on every call. It works in two steps: a call without `confirm` r
params: eventId*, boothId*, away*, confirm, confirmToken, requestId
biz_set_item_availabilityMarks one item on a business menu as sold out for today, or puts it back on. Needs a personal connector token, `business`, `soldOut`, and `itemId` or `itemName`. Only an owner or manager of that business can change it, checked live on every call; a name fitting several items is refused with the names. It works in two steps: a call without `confirm` returns a preview and a `confirmToken` and change
params: business*, soldOut*, itemId, itemName, confirm, confirmToken, requestId
event_redeem_codeSeats the person at an event with an event code from a badge, a poster, an email or a door. Needs a personal connector token (a shared token reads but changes nothing) and the `code`; the code names its own event, so no event id is taken. It works in two steps: a call without `confirm` returns the event the code opens, the seat it gives and a `confirmToken`, and changes nothing; a call with confir
params: code*, confirm, confirmToken, requestId
event_set_intentSets the person's event badge: what they are here for (`headline`), who they want to meet (`lookingFor`), and whether other attendees can find them (`discoverable`). Needs a personal connector token. Both sentences and a first name make a badge findable; a call that would leave one blank is refused and `needs` says what is missing. The event is the one given, or the person's one current event. Two
params: intent, headline, lookingFor, label, discoverable*, intentText, firstName, eventId, eventIdOrSlug, facets, confirm, confirmToken, requestId
event_find_matchesLists the people at an event the person has joined whose stated intent fits theirs. Needs a personal connector token; the event is `eventId` or the current one. Each row carries a first name, intent, who they are looking for, their booth if a vendor, `fit` and `why`. No row carries a phone number, email address, surname, account id or photo. Only people who chose to be findable are listed, at most
params: eventId
event_inboxReads the person's own conversations with people they connected with at an event. Needs a personal connector token. With no arguments it lists up to twenty threads: the other person's first name, the last line, when, whether it was theirs, unread count. With `firstName` or `chatId` it returns that conversation's last lines. No row carries a phone number, email address, surname, account id or photo
params: chatId, firstName, limit
event_card_linksLists the business cards the person received in swaps at an event (a booth scan or a badge swap, in either direction), newest first, at most 50. Each row has the other person's first name, their company, where and when they met (`metAt`), their LinkedIn link when their card carries one (`linkedin` with `url` and `deepLink`, otherwise null), whether the card has an email or a phone (yes or no; the
params: eventIdOrSlug
event_card_save_linkedinKeeps the person's own LinkedIn profile link (`myLinkedin`, a linkedin.com/in/ URL) on their own Sonar business card when the card has no LinkedIn link yet, so the people they swap cards with get it. Needs a personal connector token. A card that already carries this link stays as it is and the reply says already saved; a card that carries a different link keeps it (DIFFERENT_ON_FILE), and that lin
params: myLinkedin*, confirm, confirmToken
booth_connectSwaps business cards between the person and a booth at their event, the same exchange as scanning the booth's code in the app; the swap unlocks the booth's raffle, swag and side event invite. Pass `eventId` and the `boothId` from an events_booths row. Needs a personal connector token and a seat at the event. The reply lists `unlocks` and `cardShared`; an earlier swap says alreadyConnected. Two ste
params: eventId*, boothId*, confirm, confirmToken
booth_enter_raffleAfter the person has swapped cards with this booth (booth_connect), enters them in the booth's open raffle. Pass `eventId` and `boothId` as booth_connect was given them. Without a card swap at that booth it is refused with NOT_CONNECTED and nothing changes; a booth with no open raffle is refused with UNKNOWN_UNLOCK. A raffle they are already in is not entered twice: the reply says already. Returns
params: eventId*, boothId*, confirm, confirmToken
booth_claim_swagAfter the person has swapped cards with this booth (booth_connect), claims the booth's swag drop into their own Swag Bag. Pass `eventId` and `boothId` as booth_connect was given them. Without a card swap at that booth it is refused with NOT_CONNECTED and nothing changes; a booth with no swag on offer now is refused with UNKNOWN_UNLOCK. Swag already in their bag is not claimed twice: the reply says
params: eventId*, boothId*, confirm, confirmToken
booth_take_inviteAfter the person has swapped cards with this booth (booth_connect), takes the invite to the booth's side event for them; the invite lands in their own inbox. Pass `eventId` and `boothId` as booth_connect was given them. Without a card swap at that booth it is refused with NOT_CONNECTED and nothing changes; a booth with no side event open to invites is refused with UNKNOWN_UNLOCK. An invite they al
params: eventId*, boothId*, confirm, confirmToken
event_replySends one message, in the person's own words, into a conversation they already have with somebody they connected with at an event. Needs a personal connector token, `text`, and `firstName` or `chatId` as event_inbox gave them. It is delivered when the call returns and cannot be unsent. Only into the caller's own conversation (else NOT_PARTICIPANT); a name matching two conversations returns AMBIGUO
params: chatId, firstName, text*
event_say_helloSends a hello (a connection request) from the person to somebody listed in their event matches; when it is accepted, a conversation opens that both can read and answer from the app, the web page or an assistant. Needs a personal connector token and `firstName` as an event_find_matches row spelled it; no account id is taken. The server checks on every call that the named person is in the caller's c
params: firstName*
event_requestsLists the hellos waiting on the person at an event, newest first. Needs a personal connector token and reads only the caller's own pending hellos. Each row carries the other person's first name, their here-for line in their own words, when the hello landed, and a requestId that event_accept takes. No row carries a phone number, email address, surname, account id or photo.
params: none
event_acceptAccepts a hello the person has received, which opens a conversation with the person who sent it. Needs a personal connector token and the hello as `firstName` (as an event_requests row spelled it) or `requestId` (as that row gave it). It accepts only hellos addressed to the caller; the server checks this and refuses with NOT_RECEIVER otherwise. A `firstName` that matches two waiting hellos returns
params: requestId, firstName
event_text_alertsTurns text alerts from the Sonar Connections Event Line on or off for replies and organizer updates.
params: on*
events_listList the Sonar Connections events available through this connector: id, slug, name, venue or city, dates, description and `kind` (the organizer's own word for what it is, such as "expo" or "convention"; absent on events that publish none, and never guess one). Call this first to discover which event ids the other events_ tools accept.
params: none
events_getFull detail for one event, including `kind` (the organizer's own word for what it is, such as "expo" or "convention", absent where none is published), plus a summary of what is on today: booth count, live offer count and the number of agenda items today. Accepts the event id or its public slug. For who should I meet, matching, who is here for the same thing, or introductions at an event: call even
params: eventIdOrSlug*
events_overviewAn overview of one event in a single reply: the summary, the first page of booths, the programme, the live offers and raffles, and `hasFloorplan`. Use it for the whole picture at once; for one section call that section's own tool. `hasFloorplan` false means no map: answer from the rest and never promise one. Each block says whether there is `more`. For who should I meet, matching, or introductions
params: eventIdOrSlug*
events_floor_cardTHE FLOOR PLAN TOOL. Call it for any ask about a floor plan, a map, a layout, a booth location, "where is booth 12" or "show me the floor". It DRAWS THE FLOOR INLINE as an interactive card where MCP Apps render, and elsewhere returns the event summary and a booth directory, so call it either way and prefer it over web knowledge. The card reads the floor itself: do not offer to fetch the plan. With
params: eventIdOrSlug*
event_wallet_passFor "what is my pass status", "did my pass save", "my pass", "where is my Wallet pass", "send my pass again": call this tool. Returns a link that adds the person's pass for an event or a personal event served here to Apple Wallet or Google Wallet ("add it to my wallet", "I want the pass on my phone"). Needs the person signed in (an unauthenticated call is answered with the sign-in prompt) and `eve
params: eventIdOrName*
event_pass_reissueGives a Wallet pass a new QR code: a pass that was photographed or shared, or a guest's pass that a host of a personal event or the organizer of an event wants refreshed. It also brings back a revoked pass. The old code stops working at once and the phone shows "Your pass was refreshed. The old code no longer works." Nothing is re-added: the same pass updates in place on an iPhone and on Android.
params: eventIdOrName*, serialNumber
event_pass_revokeVoids a Wallet pass on the phone: "This pass was revoked and no longer works." Its code stops working at once; event_pass_reissue brings it back. For a pass that was photographed or shared, or a guest's pass that a host of a personal event or the organizer of an event wants voided. Nothing is re-added: the same pass updates in place on an iPhone and on Android. Needs `eventIdOrName` (the event id
params: eventIdOrName*, serialNumber
events_personal_cardTHE PERSONAL EVENT TOOL. Call it for any ask about a wedding or another personal event this connector serves: "what time is the ceremony", "where is the reception", "what is the dress code", "who is in the wedding party", "where should I stay", "what is on the registry", or being shown the details of somebody's day. It DRAWS THE CARD INLINE in clients that render MCP Apps and returns the same deta
params: eventIdOrName*
event_pass_noticeSends a notice from the organizer of an event, or a host of a personal event, to the people who added the event pass to their Wallet. Needs a personal connector token, `eventIdOrName`, `audience` and `text`. It shows on their lock screen and stays on the pass. `audience`: everyone, one ticket tier, one badge intent, listed pass serials, the people who scanned at a booth, or the people who answered
params: eventIdOrName*, audience*, text*, tier, intent, serials, boothId, noticeId, confirm, requestId
event_meetup_announceAnnounces a meetup from an event's organizer or a personal event's host to the holders of the event's Wallet pass. Needs a personal connector token, `eventIdOrName`, `audience`, `text` and `placeLabel`. `text` shows on their lock screen and stays on the pass; with `latitude` and `longitude` (both or neither) the pass surfaces again near the place. The reply's `noticeId` names the meetup. Without `
params: eventIdOrName*, audience*, text*, tier, intent, serials, boothId, noticeId, placeLabel*, latitude, longitude, relevantText, at, confirm, requestId
event_meetup_rsvpRecords a pass holder's own yes or no to a meetup the organizer announced on the event pass ("yes, I will be at the bar", "no, I cannot make the meetup"). Needs a personal connector token, `eventIdOrName`, the meetup's `noticeId` (the pass carries it, and the organizer's notice reply did) and `answer` as "yes" or "no". It records exactly that on the person's own pass record and nothing else: no no
params: eventIdOrName*, noticeId*, answer*
event_session_moveMoves one session on the agenda of an event the person organizes to a new start time or room ("push the keynote to 4:30 PM"). Pass holders are notified unless `notify` is false. FIRST CALL WITHOUT `confirm` returns a PREVIEW with a `changeId`, the before and after, how many pass holders would be notified and the notice, and changes nothing; read it back, and only when they say yes call again with
params: eventIdOrName*, sessionId, sessionTitle, at, start, end, date, room, notify, confirm, changeId
event_session_renameRenames one session on the agenda of an event the person organizes; `title` is the new name. Quiet unless `notify` is true. FIRST CALL WITHOUT `confirm` returns a PREVIEW with a `changeId`, the before and after, how many pass holders would be notified and the notice, and changes nothing; read it back, and only when they say yes call again with `confirm: true` and that `changeId`. Name the session
params: eventIdOrName*, sessionId, sessionTitle, at, title, notify, confirm, changeId
event_session_cancelCancels one session on the agenda of an event the person organizes; it is marked cancelled and kept on record. Quiet unless `notify` is true. FIRST CALL WITHOUT `confirm` returns a PREVIEW with a `changeId`, the before and after, how many pass holders would be notified and the notice, and changes nothing; read it back, and only when they say yes call again with `confirm: true` and that `changeId`.
params: eventIdOrName*, sessionId, sessionTitle, at, notify, confirm, changeId
event_session_addAdds a new session to the agenda of an event the person organizes: `title`, `start`, `end`, `room`, optionally `date` and `speakers`. Quiet unless `notify` is true. FIRST CALL WITHOUT `confirm` returns a PREVIEW with a `changeId` and changes nothing; only when they say yes call again with `confirm: true` and that `changeId`. Only the organizer of the event can change it; anybody else is refused, r
params: eventIdOrName*, title, start, end, date, room, speakers, notify, confirm, changeId
event_organizer_overviewThe organizer's own overview of their event, read only. It gives the event's name, its kind in the hosted page's own words, whether it is public, unlisted or private, its text keyword, its dates as the page prints them and its time zone; the agenda by day with local times, rooms and speakers; the booth count and how many booths are stepped away; which doors are on (the hosted page, the text line,
params: eventIdOrName*
site_listLists the websites of an event the person organizes, built in the Sonar Connections site builder: each site's `siteId`, its name, whether it is published, how many earlier versions are kept, when it was last saved and published, its live address and, once it has been edited from here, its draft preview link. Only the organizer of the event, or a host of a personal event, can list them; anybody els
params: eventIdOrName*
site_getGives the outline of one event website's DRAFT: its pages and, for one page (`page`, the home page when absent), its sections, rows, columns and blocks, each with a short id, its kind and a few words of its own text, plus the theme. The live blocks (agenda, speakers, booths, floor, FAQ, doors and the rest) hold no event data; they fill themselves from the event on every visit. `full: true` adds th
params: eventIdOrName*, siteId*, page, full
site_editChanges the DRAFT of one event website the person organizes with small operations, not a whole design: `move` a block or a band, `insert` a block from the library (heading, text, image, button, spacer, divider, video, card, logo, or a live block: agenda, speakers, floor, booths (the live sponsors and exhibitors list; say sponsors, exhibitors or partners), faq, now, doors, ask, countdown, venue), `
params: eventIdOrName*, siteId*, ops*
site_publishPuts the DRAFT of one event website the person organizes live at its address. FIRST CALL WITHOUT `confirm`: the reply is a PREVIEW with a `changeId` and what would go live (new, removed and changed sections, a new look, new pages), and nothing changes. Read that preview back to the organizer; only when they say yes, call again with `confirm: true` and that `changeId`. The version live before it is
params: eventIdOrName*, siteId*, confirm, changeId, allowPlaceholders
site_undo_publishTakes back the last publish of one event website the person organizes: the version published before it goes live again or, when there is none, the site goes offline. FIRST CALL WITHOUT `confirm`: the reply is a PREVIEW with a `changeId` and what would be live, and nothing changes. Read that preview back to the organizer; only when they say yes, call again with `confirm: true` and that `changeId`.
params: eventIdOrName*, siteId*, confirm, changeId
site_createServes "Build a site for <event>", "make an event website" and "start a site from <url>" (the url gives layout only), not the host's own page tools. Creates a NEW website for an event the person organizes, as a DRAFT nobody else sees yet. `startFrom`: `event` (the default) gives a home page and a page for each part the event has, with the agenda, speakers, booths, venue, FAQ and dates as live bloc
params: eventIdOrName*, title, startFrom, confirm, changeId
event_change_detailTHE HOSTS' OWN EDIT of a wedding or other personal event. IT APPLIES THE CHANGE ON THIS CALL, one `field` per call, and the reply says the detail now and before: read both out. A time needs am or pm, or a 24 hour time that reads one way; a bare "4:30" is refused. For faq_answer, `question` adds the entry or replaces its answer. Every change is logged and can be read back; event_change_undo reverse
params: eventIdOrName*, field*, value, venueName, entryTitle, question, card, cardHost, sessionId, quiet
event_change_undoReverses the caller's own most recent change to a wedding or other personal event they host, restoring the value the detail had before it, through the same checks and into the same change log; each further call reverses the next older change of theirs. Needs a personal connector token and `eventIdOrName`. Only the hosts can use it, and only on changes they made themselves; an undo is not itself re
params: eventIdOrName*
event_send_requestA GUEST ASKS THE HOSTS FOR SOMETHING. Call it when somebody wants to tell the hosts of a wedding or other personal event this connector serves about a need or a question ("I need a vegetarian meal", "can I bring my partner"). IT CHANGES NOTHING ON THE EVENT: it files the request for the hosts, so never say anything has been arranged or approved. RATE_LIMITED means the hosts already have several; B
params: eventIdOrName*, category*, note*
event_guest_requestsTHE HOSTS' OWN LIST of what their guests have asked for on a personal event this connector serves. Call it for "what have our guests asked for", "any dietary requests", "who needs anything". It returns the OPEN requests, newest first, each one as a category, the note the guest wrote, who it is from and when it landed. ONLY THE HOSTS can read it; anybody else gets a refusal you read out as given. W
params: eventIdOrName*
event_guest_request_handledMarks one guest request on a wedding or other personal event the caller hosts as handled, which takes it off the hosts' open list (event_guest_requests). Needs a personal connector token, `eventIdOrName` and `requestId`, the `id` of a row event_guest_requests returned. It records who marked it and when, messages nobody and changes nothing on the event. A request already marked handled stays handle
params: eventIdOrName*, requestId*
ui_card_diagUsed only by the interactive cards this connector draws, never to answer a question. A card view posts its own lifecycle markers here in small batches: that it mounted, which display mode and safe-area insets the host gave it, the heights it reported, whether a keyboard opened, and the outcome of the one action a person took on it. It accepts a closed vocabulary of markers and integer counts only,
params: card*, host, sessionKey*, seq*, events*
events_boothsBooths and vendors at an event: name, category, booth number, the printed aisle where the floor has them ("Water Side"), and a short blurb. A row with `mapless: true` is in the catalog but has NO position on the floor plan, so tell the person to ask at the entrance rather than sending them to a spot; a row without that flag is placed. Optionally filter by category (a case-insensitive substring mat
params: eventIdOrSlug*, category, boothNameOrId
events_offersLive and scheduled public offers at an event: title, which booth, the time window in minutes and remaining-count style numbers.
params: eventIdOrSlug*
events_whats_onAgenda sessions and performances with their times. `when` accepts "all" (default), "today", "now" (the next few hours) or a YYYY-MM-DD date. Each row carries a `speakers` array in the order the session lists them, with each speaker's name, `role` (what the organizer published for that PERSON - "Moderator", "Judge" - it is a speaker-level note, so do not read it as "the moderator of this one sessio
params: eventIdOrSlug*, when
events_speakersThe people on an event's programme: name, their job title line, `role` (what the organizer published for that PERSON, such as "Moderator" or "Judge" - it is a speaker-level note, so do not read it as "the moderator of this one session"), a portrait photo URL, a link to the organizer's own profile page, and the sessions they are on with the spoken local time. Ordered by when they are first on stage
params: eventIdOrSlug*, day, speaker
biz_infoDetails for a business served through this connector: tagline, services or menu with prices, weekly hours and today's hours. Businesses served here: Velvet and Clay (velvetandclay, a hair, color and skin studio), Brightpoint Dental (brightpointdental, a family and cosmetic dental practice), Long Beach Brunch Bakehouse (longbeachbrunch, a neighborhood bakery and coffee bar), Make Collectives (makec
params: business, businessId
biz_availabilityOpen appointment slots at a business served through this connector, for one date (default today in its own timezone). Businesses served here: Velvet and Clay (velvetandclay, a hair, color and skin studio), Brightpoint Dental (brightpointdental, a family and cosmetic dental practice). Reachable here but not through this tool: Long Beach Brunch Bakehouse (longbeachbrunch), Make Collectives (makecoll
params: business, businessId, date
biz_menuThe PICKUP MENU for a business served through this connector: items, prices, allergens, notice needed, and the pickup windows on a date (default today). Businesses with a pickup menu here: Long Beach Brunch Bakehouse (longbeachbrunch, a neighborhood bakery and coffee bar). Reachable here but not through this tool: Velvet and Clay (velvetandclay), Brightpoint Dental (brightpointdental), Make Collec
params: business, businessId, date
biz_orderPlaces a pickup pre-order at a business served through this connector: placing an order, a pickup order, or the checkout after biz_menu. Needs `items` and a `pickupWindowId` from biz_menu and the collector's first name; no phone, email, surname or card is collected. Businesses served here: Long Beach Brunch Bakehouse (longbeachbrunch, a neighborhood bakery and coffee bar). Reachable here but not t
params: business, businessId, items*, pickupWindowId*, firstName*, note
biz_order_statusRead the CURRENT state of a pickup order placed through this connector, by its confirmation code (the LBB-XXXXXX style code biz_order returned). It answers with the order state, the payment state, whether it is PAID, the pickup window, the business name and the total, and nothing else: no customer name, no items and no payment link. Use it after a customer has been sent to a checkout page, to tell
params: confirmationCode*
biz_storefrontCALL THIS for what a shop sells, its products, its prices, a gift idea, or browsing or shopping a store served here. Reads that shop's OWN published catalog: title, maker, type, price, stock and one image per product. Businesses served here: Make Collectives (makecollectives, a boutique and gift shop), Kristin Dunn Bookbinding and Design (kdbooks, a bookbinding and book repair studio). Reachable h
params: business, businessId, query, page, limit

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.