MCP tools reference
Whova MCP tools
11 tools for Whova on the Cotlet MCP server. Your agent picks them from tools/list.
- MCP server
- https://cotlet.dev/mcp/v1
- Connects with
- Your own Whova organizer account for the event
- Integration page
- Whova
| Endpoint | Access | Description |
|---|---|---|
| whova_list_events | read | Events you can manage as an organizer, with dates and status. |
| whova_list_attendees | read | Attendees of an event with email, company, ticket type, audience type and check-in status. |
| whova_list_registrations | read | Registration orders with registrant, ticket type and order date, newest first. |
| whova_list_sessions | read | Agenda sessions with time, tracks, speakers and description, in agenda order. |
| whova_list_speakers | read | Speakers of an event from the Speaker Center, with their sessions. |
| whova_get_post_event_report | read | The post-event report of an event as text sections, available after the event ends. |
| whova_add_session | write | Add a session to the agenda in Session Manager. |
| whova_update_session | write | Change the time, tracks, speakers or description of an existing session. |
| whova_add_attendee | write | Create or update one attendee by name and email. |
| whova_send_announcement | write | Post an announcement for the attendees of an event. |
| whova_message_speakers | write | Email all speakers of an event, or the ones you list, through Whova. |
List events
readMCP tool whova_list_events
Returns every event of your organizer account, newest first. Use event_id from each item in the other tools. Dates are in the time zone of the event.
Parameters
| Name | Type | Description |
|---|---|---|
| status | enum | upcoming, past or all. Default: upcoming. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_list_events",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"events": [
{
"event_id": "284611",
"name": "Northwind Summit 2026",
"start": "2026-10-21",
"end": "2026-10-23",
"status": "upcoming"
},
{
"event_id": "271905",
"name": "Northwind Summit 2025",
"start": "2025-10-14",
"end": "2025-10-16",
"status": "past"
}
]
},
"isError": false
} List attendees
readMCP tool whova_list_attendees
Lists attendees of one event. Filter by ticket type or audience type, or by check-in status to see who has not arrived. Pages hold up to 500 attendees; pass next_cursor back as cursor for the next page.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| ticket_type | string | Only holders of this ticket type, as named in your event. |
| audience_type | string | Only attendees with this audience type, as named in your event. |
| checked_in | boolean | true for checked-in attendees, false for those not checked in. |
| limit | integer | 1 to 500. Default: 100. |
| cursor | string | Next page cursor from the previous call. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_list_attendees",
"arguments": {
"event_id": "event_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"attendees": [
{
"attendee_id": "at_5521",
"first_name": "Maya",
"last_name": "Ortiz",
"email": "maya@example.com",
"company": "Northwind Labs",
"ticket_type": "Full Pass",
"audience_type": "Attendee",
"checked_in": false
}
],
"next_cursor": null
},
"isError": false
} List registrations
readMCP tool whova_list_registrations
Lists registration orders of one event, newest first. Filter by date or ticket type to get only what is new since your last check. Pages hold up to 500 orders; pass next_cursor back as cursor.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| since | date | Only orders placed on or after this date. |
| ticket_type | string | Only orders with this ticket type. |
| limit | integer | 1 to 500. Default: 100. |
| cursor | string | Next page cursor from the previous call. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_list_registrations",
"arguments": {
"event_id": "event_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"orders": [
{
"order_id": "ord_80231",
"registrant": "Maya Ortiz",
"email": "maya@example.com",
"ticket_type": "Full Pass",
"ordered_at": "2026-10-10T14:12:00Z"
},
{
"order_id": "ord_80229",
"registrant": "Leo Brandt",
"email": "leo@example.com",
"ticket_type": "Student",
"ordered_at": "2026-10-10T09:40:00Z"
}
],
"next_cursor": null
},
"isError": false
} List sessions
readMCP tool whova_list_sessions
Lists the sessions of one event in agenda order. Filter by day or track. Use session_id with update_session. Times carry the time zone of the event.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| date | date | Only sessions on this day. |
| track | string | Only sessions in this track. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_list_sessions",
"arguments": {
"event_id": "event_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"sessions": [
{
"session_id": "s_30871",
"title": "Breakout: Pricing workshop",
"start": "2026-10-22T14:00:00-07:00",
"end": "2026-10-22T15:00:00-07:00",
"tracks": [
"Workshops"
],
"speakers": [
"Jon Pike"
]
}
]
},
"isError": false
} List speakers
readMCP tool whova_list_speakers
Lists the speakers of one event with the sessions each one speaks in. Speakers added to a session appear here automatically. Use it to build the recipient list for message_speakers.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| session_id | string | Only speakers of this session. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_list_speakers",
"arguments": {
"event_id": "event_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"speakers": [
{
"speaker_id": "sp_204",
"name": "Dana Reyes",
"email": "dana@example.com",
"sessions": [
"Opening keynote"
]
}
]
},
"isError": false
} MCP tool whova_get_post_event_report
Returns the post-event report of one finished event as titled sections with their figures. Pass section to read one part, for example Sponsors and exhibitors. Whova releases the report only after the organizer requests it under Tools > Report; until then the call fails with a not-ready error.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| section | string | Section title as shown in the report. Default: all sections. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_get_post_event_report",
"arguments": {
"event_id": "271905",
"section": "Sponsors and exhibitors"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"event_id": "271905",
"sections": [
{
"title": "Sponsors and exhibitors",
"text": "Total sponsor impressions, exhibitor leads and attendee profile views, then impressions per sponsor."
}
]
},
"isError": false
} Add session
writeMCP tool whova_add_session
Creates one session in the agenda of one event. Speakers you name also appear in the Speaker Center. The session shows in the event app agenda at once. It reaches no one directly and one update_session or a delete in Whova undoes it, so it runs without asking.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| title required | string | Session title. |
| start required | datetime | Start, ISO 8601 with time zone. |
| end required | datetime | End, ISO 8601 with time zone. |
| tracks | string[] | Tracks the session belongs to, as named in your event. |
| speakers | string[] | Speaker names. |
| description | string | Session description. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_add_session",
"arguments": {
"event_id": "event_8c41d2",
"title": "title",
"start": "2026-10-01T09:00:00Z",
"end": "2026-10-01T09:00:00Z"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"session_id": "s_30902",
"event_id": "284611",
"title": "Opening keynote",
"start": "2026-10-21T09:00:00-07:00",
"end": "2026-10-21T09:45:00-07:00",
"tracks": [
"Main stage"
],
"speakers": [
"Dana Reyes"
],
"status": "created"
},
"isError": false
} Update session
writeMCP tool whova_update_session
Changes the fields you send and leaves the others as they are. Moving a block of sessions means one call per session. It reaches no one directly and one more call restores the old values, so it runs without asking.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| session_id required | string | Session ID from list_sessions. |
| title | string | New title. |
| start | datetime | New start, ISO 8601 with time zone. |
| end | datetime | New end, ISO 8601 with time zone. |
| tracks | string[] | Replaces the tracks. |
| speakers | string[] | Replaces the speakers. |
| description | string | New description. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_update_session",
"arguments": {
"event_id": "284611",
"session_id": "s_30871",
"start": "2026-10-22T15:00:00-07:00",
"end": "2026-10-22T16:00:00-07:00"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"session_id": "s_30871",
"event_id": "284611",
"title": "Breakout: Pricing workshop",
"start": "2026-10-22T15:00:00-07:00",
"end": "2026-10-22T16:00:00-07:00",
"status": "updated"
},
"isError": false
} MCP tool whova_add_attendee
Creates the attendee, or updates the one with the same email. The attendee appears in the event's attendee list. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| first_name required | string | First name. |
| last_name required | string | Last name. |
| email required | string | Attendee email. |
| company | string | Company or organization. |
| title | string | Job title. |
| ticket_type | string | Ticket type, as named in your event. |
| audience_type | string | Audience type, as named in your event. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_add_attendee",
"arguments": {
"event_id": "event_8c41d2",
"first_name": "first name",
"last_name": "last name",
"email": "jane@example.com"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"attendee_id": "at_5530",
"event_id": "284611",
"email": "sam@example.com",
"status": "created"
},
"isError": false
} MCP tool whova_send_announcement
Posts an announcement to the attendees of one event. App users get it as a push notification, and Whova also connects announcements to attendees' email, so people without the app are notified. It reaches every attendee at once. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| message required | string | Announcement text. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_send_announcement",
"arguments": {
"event_id": "284611",
"message": "The opening keynote has moved to Hall B. Doors open at 8:45."
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"announcement_id": "ann_90314",
"event_id": "284611",
"status": "sent"
},
"isError": false
} MCP tool whova_message_speakers
Sends an email to speakers through Whova's speaker messaging. Leave speaker_ids out to email all speakers of the event. Speakers receive it from Whova, not from your own address. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| subject required | string | Email subject. |
| body required | string | Email body. |
| speaker_ids | string[] | Speaker IDs from list_speakers. Default: all speakers. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whova_message_speakers",
"arguments": {
"event_id": "284611",
"subject": "Your session at Northwind Summit: 21 Oct, 9:00 AM",
"body": "Hi Dana, you open the summit with the keynote on 21 Oct, 9:00 to 9:45 AM on the Main stage. Please keep the talk to 40 minutes plus 5 for questions.",
"speaker_ids": [
"sp_204"
]
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"message_id": "msg_4107",
"event_id": "284611",
"recipients": 18,
"status": "sent"
},
"isError": false
}