When to use it
- “Save these 12 people as ‘LA dinner invites’.”
- “Add the three I just found to my Q4 List.”
- “Keep the people I imported from HubSpot as a List.”
Parameters
Pass exactly one ofname or list_id.
Only people the workspace already holds are saved: an email on one of its event sign-ups, or a person brought in with import_people. To save people from a CRM, call import_people first and pass its
member_emails here.
Workflow
1
Save
Call with
name or list_id, member_emails and a fresh client_request_id. There is no preview: a save only adds.2
Report what was saved and rejected
Tell the user
added_count, already_present_count and each entry in rejected_refs with its reason.3
Choose the next door
There are two, and the user chooses:
- Send Luma invites: pass the
list_idto activate_list with a Luma event. This sends real invites after a preview and the user’s explicit confirmation. - Record invites the user sent themselves: pass the
list_idto activate_list withdestination_type: "external"and the collab’starget_channel_id. This sends nothing; it records the invites so the funnel counts them.
client_request_id. A committed save is replayed (idempotent_replay: true), so a retried create never makes a second List. Reusing an id with different arguments is refused.
Response
A successful save was not captured for this page, because it would create a List in a production workspace. The shape below is from the tool’s code and contract.Rules the agent must follow
- Never retry a rejected reference against save_list. Import the person first with import_people.
- Never simulate a saved List by holding emails across turns. Save it, then read it back with get_lists.
- Never choose the external door for the user. Use it only when they say they sent the invites themselves.
- A List is not attendance or sign-up.
Errors and gaps
This validation error is real, captured today from a call with no parameters. Validation reports one missing parameter at a time.invalid_parameter: neither or both ofnameandlist_id,member_emailsempty or over 500, or a missing or malformedclient_request_id.insufficient_scope: the OAuth token lacksmcp:tools:write. Nothing is saved.entitlement_required: the plan lacks MCP write.- A conflict when a
client_request_idis reused with different arguments, or the same save is still in flight.
Related
- import_people: bring CRM people in first.
- get_lists: read the List back.
- activate_list: send to Luma, or record invites sent yourself.
- Playbook: Fill the room in the two weeks before.