MCP tools reference
Zola MCP tools
10 tools for Zola on the Cotlet MCP server. Your agent picks them from tools/list.
- MCP server
- https://cotlet.dev/mcp/v1
- Connects with
- Your own Zola couple account (email and password, or Google or Apple sign-in)
- Integration page
- Zola
| Endpoint | Access | Description |
|---|---|---|
| zola_list_guests | read | Guests with their list (Definitely Invited or Maybe), events invited to and RSVP state. |
| zola_list_events | read | Your wedding events with type, name, date and start time. |
| zola_track_rsvps | read | RSVPs for one event: who is attending, declined or has not replied, with meal choices. |
| zola_list_gifts | read | Gift tracker: each gift with giver, message, value, giver address, order status and thank-you note status. |
| zola_add_guest | write | Add a guest, optionally with a plus-one, to your guest list. Nothing is sent to the guest. |
| zola_update_guest_address | write | Set the mailing address used for Save the Dates and invitation envelopes. |
| zola_invite_guest_to_event | write | Mark a guest as invited to an event, so they can RSVP to it on your wedding website. |
| zola_record_rsvp | write | Record a reply you got by phone or mail: attending or declined, with meal choice. |
| zola_mark_mail_sent | write | Track that a guest has received a Save the Date or an invitation. |
| zola_mark_thank_you_sent | write | Mark the thank-you note for one or more gifts in the gift tracker as sent. |
List guests
readMCP tool zola_list_guests
Returns the guests on your guest list, each with the list they are on, the events they are invited to and their reply per event. Contact details are left out unless include_contact is true. Use guest_id from each item in the other tools.
Parameters
| Name | Type | Description |
|---|---|---|
| list | enum | definitely_invited, maybe or all. Default: all. |
| include_contact | boolean | Add mailing address, email and phone. Default: false. |
| search | string | Match on guest name. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_list_guests",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"guests": [
{
"guest_id": "gst_a41c07",
"name": "Maria Example",
"list": "definitely_invited",
"events": [
{
"event_id": "evt_ceremony",
"rsvp": "attending"
},
{
"event_id": "evt_reception",
"rsvp": "no_response"
}
]
},
{
"guest_id": "gst_a41c08",
"name": "Tom Example",
"list": "definitely_invited",
"events": [
{
"event_id": "evt_ceremony",
"rsvp": "declined"
}
]
}
]
},
"isError": false
} List events
readMCP tool zola_list_events
Returns the events from "Your Events" in Zola: ceremony, reception, rehearsal dinner and any others you added. Use event_id from each item in the RSVP and invite tools. Guests can only RSVP to events they are invited to.
Parameters
No parameters.
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_list_events",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"events": [
{
"event_id": "evt_ceremony",
"type": "Ceremony",
"name": "Wedding Ceremony",
"date": "2027-06-12",
"start_time": "15:00"
},
{
"event_id": "evt_reception",
"type": "Reception",
"name": "Dinner and Dancing",
"date": "2027-06-12",
"start_time": "18:00"
}
]
},
"isError": false
} Track RSVPs
readMCP tool zola_track_rsvps
Returns the replies for one event with each guest's status, meal choice and answers to the questions you added to the event. Online RSVPs from your wedding website and replies you recorded by hand are both included. Meal totals are counted from the attending guests.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| status | enum | attending, declined, no_response or all. Default: all. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_track_rsvps",
"arguments": {
"event_id": "evt_reception",
"status": "no_response"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"event_id": "evt_reception",
"counts": {
"attending": 2,
"declined": 1,
"no_response": 1
},
"meals": {
"Chicken": 1,
"Fish": 1
},
"rsvps": [
{
"guest_id": "gst_a41c07",
"name": "Maria Example",
"status": "attending",
"meal_choice": "Chicken"
},
{
"guest_id": "gst_a41c08",
"name": "Tom Example",
"status": "attending",
"meal_choice": "Fish"
},
{
"guest_id": "gst_a41c09",
"name": "Ana Example",
"status": "declined",
"meal_choice": null
},
{
"guest_id": "gst_a41c10",
"name": "Sam Example",
"status": "no_response",
"meal_choice": null
}
]
},
"isError": false
} List gifts
readMCP tool zola_list_gifts
Returns the gifts in your gift tracker with the fields Zola's CSV download has: order number, name, quantity, value, gift message, giver's address, order status and thank-you note status. Use gift_id from each item in mark_thank_you_sent.
Parameters
| Name | Type | Description |
|---|---|---|
| thank_you | enum | sent, not_sent or all. Default: all. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_list_gifts",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"gifts": [
{
"gift_id": "gft_8f21c4",
"order_number": "ZO-100412",
"name": "Dutch Oven",
"quantity": 1,
"value": 389,
"giver": "Alex Example",
"message": "Congratulations!",
"address": "12 Example Street, Springfield, IL 62701",
"order_status": "delivered",
"thank_you": "not_sent"
},
{
"gift_id": "gft_8f21d9",
"order_number": "ZO-100417",
"name": "Honeymoon Fund",
"quantity": 1,
"value": 150,
"giver": "Sam Example",
"message": "Have a great trip.",
"address": "4 Sample Road, Portland, OR 97201",
"order_status": "completed",
"thank_you": "not_sent"
}
]
},
"isError": false
} Add guest
writeMCP tool zola_add_guest
Adds a guest to "Definitely Invited" or "Maybe" and returns the new guest_id. A plus-one is added as a second guest in the same party. Nothing is sent to anyone, so add_guest runs without asking first. Events are set with invite_guest_to_event.
Parameters
| Name | Type | Description |
|---|---|---|
| first_name required | string | Guest first name. |
| last_name required | string | Guest last name. |
| string | Guest email. | |
| phone | string | Guest phone number. |
| plus_one | object | first_name and last_name of the plus-one, if known. |
| list | enum | definitely_invited or maybe. Default: definitely_invited. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_add_guest",
"arguments": {
"first_name": "first name",
"last_name": "last name"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"guest_id": "gst_b7720e",
"name": "Maria Example",
"list": "definitely_invited",
"plus_one": {
"guest_id": "gst_b7720f",
"name": "Tom Example"
},
"status": "added"
},
"isError": false
} Update guest address
writeMCP tool zola_update_guest_address
Replaces the mailing address of one guest, the address shown on the "Address Envelopes" page. Nothing is sent to the guest, so it runs without asking first, and calling it again with the old address undoes it.
Parameters
| Name | Type | Description |
|---|---|---|
| guest_id required | string | Guest ID from list_guests. |
| address required | object | address_1, address_2, city, state_province, postal_code, country_code. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_update_guest_address",
"arguments": {
"guest_id": "guest_8c41d2",
"address": "address"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"guest_id": "gst_a41c07",
"address": {
"address_1": "12 Example Street",
"address_2": null,
"city": "Springfield",
"state_province": "IL",
"postal_code": "62701",
"country_code": "US"
},
"status": "updated"
},
"isError": false
} Invite guest to event
writeMCP tool zola_invite_guest_to_event
Adds an event to the events a guest is invited to, the choice you make on the "Invite Guests to Events" tab. Guests can only RSVP to events they are invited to. It sends no message, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| guest_id required | string | Guest ID from list_guests. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_invite_guest_to_event",
"arguments": {
"event_id": "event_8c41d2",
"guest_id": "guest_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"guest_id": "gst_a41c07",
"event_id": "evt_reception",
"invited": true
},
"isError": false
} Record RSVP
writeMCP tool zola_record_rsvp
Records the reply of one guest to one event, the same as entering it under "Track RSVPs". The guest must be invited to the event, and meal_choice must be one of the options set on it. It changes only your own records and one more call corrects it, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| event_id required | string | Event ID from list_events. |
| guest_id required | string | Guest ID from list_guests. |
| status required | enum | attending or declined. |
| meal_choice | string | One of the meal options set on the event. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_record_rsvp",
"arguments": {
"event_id": "evt_reception",
"guest_id": "gst_a41c07",
"status": "attending",
"meal_choice": "Vegetarian"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"guest_id": "gst_a41c07",
"event_id": "evt_reception",
"status": "attending",
"meal_choice": "Vegetarian",
"recorded": true
},
"isError": false
} Mark mail sent
writeMCP tool zola_mark_mail_sent
Updates the mail tracking on the "Address Envelopes" page for one guest. It does not mail anything and reaches no one, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| guest_id required | string | Guest ID from list_guests. |
| type required | enum | save_the_date or invitation. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_mark_mail_sent",
"arguments": {
"guest_id": "guest_8c41d2",
"type": "save_the_date"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"guest_id": "gst_a41c07",
"type": "save_the_date",
"mailed": true
},
"isError": false
} Mark thank-you sent
writeMCP tool zola_mark_thank_you_sent
Sets the thank-you note status of the gifts you pass, as the gift tracker does for one gift at a time. Set sent to false to undo. It changes only your tracker and nothing goes to the giver, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| gift_ids required | string[] | Gift IDs from list_gifts. |
| sent | boolean | false to undo. Default: true. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zola_mark_thank_you_sent",
"arguments": {
"gift_ids": [
"gft_8f21c4",
"gft_8f21d9"
],
"sent": true
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"updated": [
{
"gift_id": "gft_8f21c4",
"gift": "Dutch Oven",
"giver": "Alex Example",
"thank_you": "sent"
},
{
"gift_id": "gft_8f21d9",
"gift": "Honeymoon Fund",
"giver": "Sam Example",
"thank_you": "sent"
}
]
},
"isError": false
}