Skip to main content
Glama

Send a notice to a group of pass holders (hosts and organizers only)

event_pass_notice
Idempotent

Sends 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 an earlier meetup yes or no. A meetup with a place is event_meetup_announce. Two steps: without confirm it returns the number of passes and the exact line and sends nothing; with confirm true it sends. Only the hosts or the organizer can send; anybody else is refused. "my_booth" returns VENDOR_OFF. Six an hour per event, then RATE_LIMITED. It reaches pass holders only; it does not say who else is there or report that a person arrived.

Input Schema

NameRequiredDescriptionDefault
textYesOne plain line, up to 120 characters.
tierNogeneral, vendor or host.
intentNoBuyer, Vendor, Networker or Social.
boothIdNoThe booth id.
confirmNoAbsent previews; true sends.
serialsNoUp to fifty pass serials.
audienceYeseveryone, tier, intent, serials, booth, meetup_yes or meetup_no.
noticeIdNoThe earlier meetup noticeId.
requestIdNoOptional caller id; one id sends once.
eventIdOrNameYesThe event id or name as the organizer spells it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • removedInput schema / properties / at
      Removed value: -{
      -  "description": "Optional time, with a time zone.",
      -  "maxLength": 40,
      -  "type": "string"
      -}
    • removedInput schema / properties / latitude
      Removed value: -{
      -  "description": "Optional latitude.",
      -  "maximum": 90,
      -  "minimum": -90,
      -  "type": "number"
      -}
    • removedInput schema / properties / longitude
      Removed value: -{
      -  "description": "Optional longitude.",
      -  "maximum": 180,
      -  "minimum": -180,
      -  "type": "number"
      -}
    • removedInput schema / properties / placeLabel
      Removed value: -{
      -  "description": "Optional meetup place.",
      -  "maxLength": 80,
      -  "type": "string"
      -}
    • removedInput schema / properties / relevantText
      Removed value: -{
      -  "description": "Optional line shown near the place.",
      -  "maxLength": 100,
      -  "type": "string"
      -}
  2. Changed15 schema fields changed
    • changedInput schema / properties / at / description
      Previous value: -"OPTIONAL, for a meetup: the hour, as a full timestamp with a time zone (\"2027-06-12T20:00:00-07:00\")."New value: +"Optional time, with a time zone."
    • changedInput schema / properties / audience / description
      Previous value: -"Who the notice is for. \"everyone\" is every pass of the event; \"tier\" one ticket tier (with `tier`); \"intent\" one badge intent (with `intent`); \"serials\" an explicit list (with `serials`); \"booth\" the people who scanned at a booth the organizer names (with `boothId`); \"meetup_yes\" or \"meetup_no\" the people who answered an earlier meetup notice (with its `noticeId`). \"my_booth\" is a vendor sending to their own leads; it is switched off by ruling and returns VENDOR_OFF."New value: +"everyone, tier, intent, serials, booth, meetup_yes or meetup_no."
    • changedInput schema / properties / boothId / description
      Previous value: -"For audience \"booth\" or \"my_booth\": the booth id."New value: +"The booth id."
    • changedInput schema / properties / confirm / description
      Previous value: -"Absent for a preview: the reply gives the number of passes in the group and the exact lock-screen line, and nothing is sent. true sends the notice."New value: +"Absent previews; true sends."
    • changedInput schema / properties / eventIdOrName / description
      Previous value: -"REQUIRED. The event id or the event name as the organizer or the hosts spell it."New value: +"The event id or name as the organizer spells it."
    • changedInput schema / properties / intent / description
      Previous value: -"For audience \"intent\": Buyer, Vendor, Networker or Social."New value: +"Buyer, Vendor, Networker or Social."
    • changedInput schema / properties / latitude / description
      Previous value: -"OPTIONAL, for a meetup: the place's latitude. Both coordinates or neither."New value: +"Optional latitude."
    • changedInput schema / properties / longitude / description
      Previous value: -"OPTIONAL, for a meetup: the place's longitude. Both coordinates or neither."New value: +"Optional longitude."
    • changedInput schema / properties / noticeId / description
      Previous value: -"For audience \"meetup_yes\" or \"meetup_no\": the noticeId an earlier meetup notice answered with."New value: +"The earlier meetup noticeId."
    • changedInput schema / properties / placeLabel / description
      Previous value: -"OPTIONAL, for a meetup: the name of the place (\"The Bar on 2nd\"). With `latitude` and `longitude` the pass surfaces on the lock screen when the person is near it."New value: +"Optional meetup place."
    • changedInput schema / properties / relevantText / description
      Previous value: -"OPTIONAL, for a meetup with coordinates: the line the lock screen shows NEAR the place. Default: \"Sonar meetup inside, show this pass.\""New value: +"Optional line shown near the place."
    • changedInput schema / properties / requestId / description
      Previous value: -"Optional. An id for this notice chosen by the caller; one id sends once."New value: +"Optional caller id; one id sends once."
    • changedInput schema / properties / serials / description
      Previous value: -"For audience \"serials\": the pass serial numbers, at most fifty."New value: +"Up to fifty pass serials."
    • changedInput schema / properties / text / description
      Previous value: -"REQUIRED. The notice, one plain line of up to 120 characters, in the organizer's words. This exact line is what the lock screen shows. No links, no markup."New value: +"One plain line, up to 120 characters."
    • changedInput schema / properties / tier / description
      Previous value: -"For audience \"tier\": general, vendor or host."New value: +"general, vendor or host."
  3. Changed3 schema fields changed
    • changedInput schema / properties / audience / description
      Previous value: -"REQUIRED. WHO the notice is for. \"everyone\" is every pass of the event; \"tier\" one ticket tier (pass `tier`); \"intent\" one badge intent (pass `intent`); \"serials\" an explicit list (pass `serials`); \"booth\" the people who scanned at a booth the organizer names (pass `boothId`); \"meetup_yes\" or \"meetup_no\" the people who answered an earlier meetup notice (pass its `noticeId`). \"my_booth\" is a vendor sending to their own leads and is switched off by ruling: it is refused with VENDOR_OFF, say so and do not retry."New value: +"Who the notice is for. \"everyone\" is every pass of the event; \"tier\" one ticket tier (with `tier`); \"intent\" one badge intent (with `intent`); \"serials\" an explicit list (with `serials`); \"booth\" the people who scanned at a booth the organizer names (with `boothId`); \"meetup_yes\" or \"meetup_no\" the people who answered an earlier meetup notice (with its `noticeId`). \"my_booth\" is a vendor sending to their own leads; it is switched off by ruling and returns VENDOR_OFF."
    • changedInput schema / properties / confirm / description
      Previous value: -"Leave out for a PREVIEW: the reply says how many passes the group holds and the exact lock-screen line, and nothing is sent. Read that back, and only when the organizer says to send it call again with confirm: true."New value: +"Absent for a preview: the reply gives the number of passes in the group and the exact lock-screen line, and nothing is sent. true sends the notice."
    • changedInput schema / properties / requestId / description
      Previous value: -"OPTIONAL. Your own id for this notice; the same id never sends twice."New value: +"Optional. An id for this notice chosen by the caller; one id sends once."
  4. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, idempotentHint=true), the description discloses distinctive behavior: the preview-then-send flow, that the notice persists on the lock screen, a specific rate limit (six an hour per event, then RATE_LIMITED), the VENDOR_OFF outcome for 'my_booth', and the permission refusal path. That is exactly the operational context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the core action and the two-step mechanics, and nearly every clause carries information (error codes, rate limit, authorization). The dense telegraphic phrasing ('my_booth' returns VENDOR_OFF) is efficient but slightly compressed, keeping it just below a top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no output schema, the description covers what an agent needs: required inputs, the preview return value ('the number of passes and the exact line'), the send semantics, and the failure modes. Nothing essential to invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description earns above baseline by explaining what the audience enum members actually mean ('everyone, one ticket tier, one badge intent, listed pass serials, the people who scanned at a booth, or the people who answered an earlier meetup yes or no') and by clarifying that confirm drives preview vs send. It does not explain noticeId, requestId, tier, intent, or boothId relationships, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Sends a notice from the organizer...to the people who added the event pass to their Wallet') and explicitly carves out the scope it does not cover ('It reaches pass holders only; it does not say who else is there or report that a person arrived'). It also names the sibling tool that handles the adjacent case, event_meetup_announce, so an agent can distinguish the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance and a required two-step pattern: 'without `confirm` it returns the number of passes and the exact line and sends nothing; with confirm true it sends.' It names the redirect case ('A meetup with a place is event_meetup_announce') and the authorization condition ('Only the hosts or the organizer can send; anybody else is refused'), leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources