Skip to main content

Available Tools

The MCP server exposes 19 tools organized into three groups. Each tool maps to a public REST endpoint and returns the same response shape — you can cross-reference any field against the API Reference.
Tools are advertised to your client only if your dashboard privileges include the required RBAC permission. If list_attendees doesn’t appear in your client, your role lacks TICKETS_READ_TICKETS. Ask an admin to grant it.

Reading events

list_events
tool
List the organization’s events. Returns paginated results sorted by creation date.Required privilege: EVENTS_READ_EVENTSArguments: page, page_size (max 200), status (CSV: active, inactive; default active)Equivalent REST: GET /events
get_event
tool
Fetch one event by ID. Cross-tenant IDs return Event not found. with no existence leak.Required privilege: EVENTS_READ_EVENTSArguments: event_id (required)Equivalent REST: GET /events/:id

Reading attendees & tickets

list_attendees
tool
List attendees (tickets) for one of your events. Each attendee includes name, email, status, ticket-class info, and check-in timestamp. Form answers live on applications, not attendees — use list_applications for that.Required privilege: TICKETS_READ_TICKETSArguments: event_id (required), page, page_size, status (CSV: valid, checked_in, pending_approval, invited; default valid,checked_in)Equivalent REST: GET /events/:id/attendees
get_attendee
tool
Fetch one attendee (ticket) by ID, scoped to an event you own.Required privilege: TICKETS_READ_TICKETSArguments: event_id, attendee_id (both required)Equivalent REST: GET /events/:id/attendees/:attendeeId
list_ticket_classes
tool
List all ticket classes (products) for an event.Required privilege: EVENTS_READ_EVENTSArguments: event_id (required)Equivalent REST: GET /events/:id/ticket-classes
get_ticket_class
tool
Fetch one ticket class by ID for an event you own.Required privilege: EVENTS_READ_EVENTSArguments: event_id, ticket_class_id (both required)Equivalent REST: GET /events/:id/ticket-classes/:tcId

Reading forms & submissions

list_forms
tool
List the organization’s forms. Each form includes its questions array — the schema you need to interpret answers from list_applications.Required privilege: FORMS_READ_FORMSArguments: page, page_size, status (CSV: active, inactive; default active)Equivalent REST: GET /forms
get_form
tool
Fetch one form by ID, including the full questions array. Use each question’s id to map answers back to the question that produced them.Required privilege: FORMS_READ_FORMSArguments: form_id (required)Equivalent REST: GET /forms/:id
list_applications
tool
Primary tool for analyzing form submissions. Each application carries an answers array keyed by question_id — pair with get_form to render answers grouped by question.Required privilege: FORMS_READ_FORMSArguments: page, page_size, form_id (filter to one form), contact_id (filter to one submitter), status (CSV: Draft, Pending, Accepted, Rejected; default all)Equivalent REST: GET /applications
get_application
tool
Fetch one submission by ID, including all answers.Required privilege: FORMS_READ_FORMSArguments: application_id (required)Equivalent REST: GET /applications/:id

Reading custom fields

list_custom_fields
tool
List the organization’s custom field definitions. Filter by record_type (contact, event, etc.) to scope to a specific record family.Required privilege: FIELDS_READ_FIELDSArguments: page, page_size, record_type (optional filter)Equivalent REST: GET /custom-fields
get_custom_field
tool
Fetch one custom field definition by ID.Required privilege: FIELDS_READ_FIELDSArguments: field_id (required)Equivalent REST: GET /custom-fields/:id

Reading payments

list_payments
tool
List successful payments by default. Filter by event, product, form, status, or date range. Each payment carries the relational keys (event_id, application_id, form_id, contact_user_id) so you can join across resources.Required privilege: PAYMENTS_READ_PAYMENTSArguments: page, page_size, event_id, product_id, form_id, from (ISO timestamp), to (ISO timestamp), status (CSV; default succeeded)Equivalent REST: GET /payments
get_payment
tool
Fetch one payment by ID. Includes customer email and the Stripe payment ID for cross-referencing.Required privilege: PAYMENTS_READ_PAYMENTSArguments: payment_id (required)Equivalent REST: GET /payments/:id

Contacts & lists

These tools predate the read surface above and have a slightly different shape — they accept a spaceId argument for space-level scoping and return spaceIds on each contact.
get_contacts
tool
Paginated contact list. Omit spaceId for an org-wide view; pass a space ID to scope to one space.Required privilege: CONTACTS_READ_CONTACTSArguments: page, page_size (max 50), sortBy, sortOrder, spaceId, listIds (CSV)
search_contacts
tool
Full-text search across contact name, email, phone, and other text fields. Backed by Algolia.Required privilege: CONTACTS_READ_CONTACTSArguments: query (required), page, page_size (max 50)
get_lists
tool
List the organization’s contact lists. Filter by name with search.Required privilege: LISTS_READ_LISTSArguments: search (optional)
add_contacts_to_list
tool
Add contacts to a list. Each contact ID is verified to belong to your organization before the write happens — invalid IDs are skipped, not failed.Required privilege: CONTACTS_UPDATE_CONTACTSArguments: listId (required), contactIds (CSV, required)
remove_contacts_from_list
tool
Remove contacts from a list. Same org-membership verification as the add tool.Required privilege: CONTACTS_UPDATE_CONTACTSArguments: listId (required), contactIds (CSV, required)

Common patterns

”Analyze submissions to form X”

  1. get_form with form_id → returns the question schema (each question’s id, title, type).
  2. list_applications with form_id → returns the matching submissions, each carrying answers keyed by question_id.
  3. Claude correlates answers[].question_idquestions[].id and renders grouped output.

”Find paying attendees of event Y”

  1. list_attendees with event_id → list of tickets.
  2. list_payments with event_id, status: succeeded → list of payments.
  3. Claude joins on customer_email or contact_user_id.

”Group last month’s submissions by status”

  1. list_applications with status: Pending,Accepted,Rejected (or omit for all).
  2. Claude buckets the results client-side. Status is on every application.

Limits

  • Rate limit: 120 requests / 60 seconds per token (sliding window). Burstable up to 120 in a single window.
  • Page size: max 200 for the new read tools, max 50 for the contacts tools.
  • Token cache: validated tokens are cached server-side for 5 minutes — revocation propagates within that window.
  • User context cache: RBAC privileges are cached for 5 minutes — privilege changes take effect within that window.