MCP tools reference

Partiful MCP tools

13 tools for Partiful on the Cotlet MCP server. Your agent picks them from tools/list.

MCP server
https://cotlet.dev/mcp/v1
Connects with
Your own Partiful host account
Integration page
Partiful
Partiful Endpoints
Endpoint Access Description
partiful_list_events read Events you host, with date, status and guest counts.
partiful_get_event read Full event: title, description, start and end, location, RSVP deadline, guest limit, Guest Approval and waitlist settings, link.
partiful_list_guests read Guests of an event with RSVP status, check-in and Guest Questionnaire answers.
partiful_export_guest_list read The guest list as a CSV file link, the same file as the Export CSV button.
partiful_list_past_guests read People you can invite: your past guests and mutuals, optionally from one past event.
partiful_create_event write New event page. Nobody is invited until you call invite_guests.
partiful_update_event write Change the details or settings of an event you host.
partiful_duplicate_event write Copy an event with its settings to a new date. The copy has no guests yet.
partiful_invite_guests write Invite past guests and mutuals through Partiful, or anyone by email.
partiful_approve_guests write Approve pending guests on a Guest Approval event.
partiful_check_in_guests write Mark guests as checked in at the door, or undo it.
partiful_send_text_blast write Text a message to guests by RSVP status. Partiful allows up to 10 Text Blasts per event.
partiful_cancel_event write Cancel an event. Partiful notifies the guests.

MCP tool partiful_list_events

Returns your events with start time, whether the event is canceled and counts of guests by RSVP status. Use event_id from each item in the other tools. Pages hold up to 50 events; pass next_cursor back as cursor for the next page.

Parameters

Parameters: list_events
NameTypeDescription
when enum upcoming, past or all. Default: upcoming.
limit integer 1 to 50. Default: 20.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_list_events",
    "arguments": {}
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "events": [
      {
        "event_id": "evt_hK3vQ9xL",
        "title": "Rooftop dinner",
        "start_at": "2026-10-17T19:00:00-04:00",
        "status": "active",
        "guests": {
          "going": 28,
          "maybe": 9,
          "cant_go": 4,
          "invited": 31,
          "pending": 0
        }
      },
      {
        "event_id": "evt_pL8wN2aD",
        "title": "Launch party",
        "start_at": "2026-10-24T20:00:00-04:00",
        "status": "active",
        "guests": {
          "going": 52,
          "maybe": 6,
          "cant_go": 11,
          "invited": 60,
          "pending": 3
        }
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

Get event

read

MCP tool partiful_get_event

Returns one event with its details and the settings you chose in Event Settings: guest limit, waitlist, Guest Approval and the Guest Questionnaire questions. Use it before update_event to see what is set now.

Parameters

Parameters: get_event
NameTypeDescription
event_id required string Event ID from list_events.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_get_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_hK3vQ9xL",
    "title": "Rooftop dinner",
    "start_at": "2026-10-17T19:00:00-04:00",
    "end_at": "2026-10-17T23:00:00-04:00",
    "location": "21 Mercer St, New York",
    "description": "Bring a drink to share.",
    "rsvp_deadline": "2026-10-15T18:00:00-04:00",
    "max_guests": 60,
    "waitlist": true,
    "guest_approval": false,
    "questions": [
      "Dietary restrictions"
    ],
    "url": "https://partiful.com/e/hK3vQ9xLexample"
  },
  "isError": false
}

MCP tool partiful_list_guests

Returns the guests of one event, each with RSVP status, whether they are checked in and their answers to your Guest Questionnaire. Filter by status to see only pending guests or only the ones going. Pages hold up to 200 guests; pass next_cursor back as cursor for the next page.

Parameters

Parameters: list_guests
NameTypeDescription
event_id required string Event ID from list_events.
status enum all, going, maybe, cant_go, invited, waitlist or pending. Default: all.
checked_in boolean Only guests who are checked in (true) or not (false).
limit integer 1 to 200. 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": "partiful_list_guests",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "guests": [
      {
        "guest_id": "g_41aa",
        "name": "Maya Chen",
        "status": "going",
        "checked_in": false,
        "answers": [
          {
            "question": "Dietary restrictions",
            "answer": "Vegetarian"
          }
        ]
      },
      {
        "guest_id": "g_41ab",
        "name": "Leo Park",
        "status": "going",
        "checked_in": false,
        "answers": [
          {
            "question": "Dietary restrictions",
            "answer": "Peanut allergy"
          }
        ]
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

MCP tool partiful_export_guest_list

Returns a link to the CSV that Partiful's Export CSV button produces, limited to the RSVP statuses you choose. It includes Guest Questionnaire answers. Your agent or n8n flow reads the file and appends the rows to a sheet or CRM.

Parameters

Parameters: export_guest_list
NameTypeDescription
event_id required string Event ID from list_events.
statuses string[] RSVP statuses to include: going, maybe, cant_go, invited, waitlist, pending. Default: all.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_export_guest_list",
    "arguments": {
      "event_id": "evt_hK3vQ9xL",
      "statuses": [
        "going"
      ]
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_hK3vQ9xL",
    "statuses": [
      "going"
    ],
    "guests": 28,
    "download_url": "https://cotlet.dev/api/v1/files/exports/partiful/evt_hK3vQ9xL-going.csv"
  },
  "isError": false
}

MCP tool partiful_list_past_guests

Returns people you can invite again: guests who attended your events and mutuals. Filter to one past event to invite only the people who came to it. Use user_id from each item in invite_guests. Pages hold up to 200 people.

Parameters

Parameters: list_past_guests
NameTypeDescription
from_event_id string Only people from this past event.
query string Search by name.
limit integer 1 to 200. Default: 50.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_list_past_guests",
    "arguments": {}
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "people": [
      {
        "user_id": "u_2f81",
        "name": "Maya Chen",
        "attended": 3
      },
      {
        "user_id": "u_2f93",
        "name": "Leo Park",
        "attended": 2
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

Create event

write

MCP tool partiful_create_event

Creates an event page on your account. Nobody is invited and nothing is sent, so there is no confirmation; one call to update_event or cancel_event changes it. Guest Approval and the Guest Questionnaire are set here, the same way as in Event Settings.

Parameters

Parameters: create_event
NameTypeDescription
title required string Event title.
start_at required datetime ISO 8601 with time zone.
end_at datetime ISO 8601 with time zone.
location string Address or place name.
description string Event details shown on the page.
rsvp_deadline datetime Last moment guests can RSVP.
max_guests integer Guest limit; with the waitlist on, extra RSVPs go to the waitlist.
guest_approval boolean Guests ask to get on the list and you approve them. Default: false.
questions string[] Guest Questionnaire questions, short answer.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_create_event",
    "arguments": {
      "title": "title",
      "start_at": "2026-10-01T09:00:00Z"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_bK7dR3nM",
    "title": "Book club: November",
    "start_at": "2026-11-14T19:00:00-05:00",
    "status": "active",
    "url": "https://partiful.com/e/bK7dR3nMexample"
  },
  "isError": false
}

Update event

write

MCP tool partiful_update_event

Changes the fields you pass and leaves the rest as it is. It sends nothing itself, so there is no confirmation, and another call restores the old values. Use get_event first to see the current values.

Parameters

Parameters: update_event
NameTypeDescription
event_id required string Event ID from list_events.
fields required object Any of title, start_at, end_at, location, description, rsvp_deadline, max_guests, guest_approval.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_update_event",
    "arguments": {
      "event_id": "event_8c41d2",
      "fields": "fields"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_hK3vQ9xL",
    "updated": [
      "location"
    ],
    "location": "88 Bleecker St, New York"
  },
  "isError": false
}

MCP tool partiful_duplicate_event

Does what Clone Event does in Partiful: copies the event details to a new event on the date you give. Guests are not copied, so re-invite them with invite_guests. It sends nothing, so there is no confirmation.

Parameters

Parameters: duplicate_event
NameTypeDescription
event_id required string Event ID from list_events.
start_at required datetime Start of the new event, ISO 8601 with time zone.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_duplicate_event",
    "arguments": {
      "event_id": "event_8c41d2",
      "start_at": "2026-10-01T09:00:00Z"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_bK7dR3nM",
    "copied_from": "evt_aQ4tX9cE",
    "start_at": "2026-11-14T19:00:00-05:00",
    "guests": 0
  },
  "isError": false
}

Invite guests

write Confirm

MCP tool partiful_invite_guests

Invites people you pick from list_past_guests and sends email invites to the addresses you give. Partiful caps invites per event at 1,000 in total and 500 by email; a call over the cap fails. Invitees reached by email still log in with their phone number to RSVP. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: invite_guests
NameTypeDescription
event_id required string Event ID from list_events.
user_ids string[] People from list_past_guests.
emails string[] Email addresses to invite.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_invite_guests",
    "arguments": {
      "event_id": "evt_bK7dR3nM",
      "user_ids": [
        "u_2f81",
        "u_2f93"
      ]
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_bK7dR3nM",
    "invited": 2,
    "by_email": 0,
    "status": "sent"
  },
  "isError": false
}

Approve guests

write Confirm

MCP tool partiful_approve_guests

Marks the guests you name as Approved on an event that has Guest Approval on. Only approved guests have access to the event. Guests you leave alone stay Pending. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: approve_guests
NameTypeDescription
event_id required string Event ID from list_events.
guest_ids required string[] Guest IDs from list_guests.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_approve_guests",
    "arguments": {
      "event_id": "evt_pL8wN2aD",
      "guest_ids": [
        "g_41aa",
        "g_41ab"
      ]
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_pL8wN2aD",
    "approved": 2,
    "still_pending": 1
  },
  "isError": false
}

MCP tool partiful_check_in_guests

Checks in the guests you name, like checking them in manually from the guest list. Guests are not notified, and set undo to true to remove a check-in, so it runs without asking first.

Parameters

Parameters: check_in_guests
NameTypeDescription
event_id required string Event ID from list_events.
guest_ids required string[] Guest IDs from list_guests.
undo boolean Remove the check-in instead. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_check_in_guests",
    "arguments": {
      "event_id": "event_8c41d2",
      "guest_ids": [
        "guest ids"
      ]
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_hK3vQ9xL",
    "checked_in": 2,
    "undo": false
  },
  "isError": false
}

Send Text Blast

write Confirm

MCP tool partiful_send_text_blast

Sends one Text Blast to the guests in the statuses you pick, the same as New Blast on the event page. It reaches guests who RSVP'd or were invited directly through Partiful; guests invited by email get it by email until they RSVP. Returns how many people it went to and how many blasts are left. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: send_text_blast
NameTypeDescription
event_id required string Event ID from list_events.
message required string Message text.
statuses required string[] Who receives it: going, maybe, cant_go, invited.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_send_text_blast",
    "arguments": {
      "event_id": "evt_hK3vQ9xL",
      "message": "Door code is 4512. We start at 7:30, see you soon!",
      "statuses": [
        "going",
        "maybe"
      ]
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "blast_id": "bl_8Fq2Lw0Zr4",
    "event_id": "evt_hK3vQ9xL",
    "recipients": 37,
    "by_status": {
      "going": 28,
      "maybe": 9
    },
    "blasts_left": 7,
    "sent_at": "2026-10-17T18:42:05-04:00"
  },
  "isError": false
}

Cancel event

write Confirm

MCP tool partiful_cancel_event

Cancels the event the way Cancel Event does in Partiful. Guests are notified; Partiful has no way to cancel without telling them. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: cancel_event
NameTypeDescription
event_id required string Event ID from list_events.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "partiful_cancel_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "evt_hK3vQ9xL",
    "status": "canceled",
    "guests_notified": true
  },
  "isError": false
}