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
Zola Endpoints
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.

MCP 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

Parameters: list_guests
NameTypeDescription
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
}

MCP 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
}

MCP 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

Parameters: track_rsvps
NameTypeDescription
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

read

MCP 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

Parameters: list_gifts
NameTypeDescription
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

write

MCP 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

Parameters: add_guest
NameTypeDescription
first_name required string Guest first name.
last_name required string Guest last name.
email 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
}

MCP 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

Parameters: update_guest_address
NameTypeDescription
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
}

MCP 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

Parameters: invite_guest_to_event
NameTypeDescription
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

write

MCP 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

Parameters: record_rsvp
NameTypeDescription
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
}

MCP 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

Parameters: mark_mail_sent
NameTypeDescription
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
}

MCP 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

Parameters: mark_thank_you_sent
NameTypeDescription
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
}