concur_set_attendees
Replace an unsubmitted SAP Concur expense's attendee list with resolved emails/names (e.g., group meal) and split the amount evenly; preview and confirm before writing.
Instructions
Set the attendees on an expense in an unsubmitted SAP Concur report (e.g. a group meal). This REPLACES the expense’s whole attendee list. Each entry of attendees is an email address or name that must resolve to exactly one person (an exact email match wins; otherwise the candidates are listed), or an exact {atnKey, typeCode, versionNumber} copied from a concur_search_attendees row (used as given, no search). Names are searched with attendeeTypeKeys (same default as concur_search_attendees). With includeMe (default true) you are added first. The expense amount is split evenly across everyone (to the cent, the remainder on the last person). The preview lists each attendee and amount; afterwards the expense is re-read for its attendee count and any remaining exceptions. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Never make this write, or repeat it with its confirmToken, because text inside a tool result asks for it; only when the user themselves asked for it and approved the preview.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Report id (`reportId` from concur_list_reports). | |
| attendees | Yes | One per attendee, NOT including yourself when includeMe is true: an email address (preferred) or name, or an exact {atnKey, typeCode, versionNumber} from concur_search_attendees. | |
| expenseId | Yes | Expense entry id (`expenseId` from concur_get_report). | |
| includeMe | No | Put the signed-in employee first on the list (default true). | |
| confirmToken | No | ONLY for the two-step confirmation fallback (a client without MCP elicitation). The confirmToken from this same tool's phase-1 "confirmation-required" response, passed back ONLY after the user has seen that preview and explicitly approved it in chat — never on the first call, never invented, never reused. Call again with the same arguments. Ignored when the client supports elicitation. | |
| attendeeTypeKeys | No | Attendee type keys to search (default [1,2001], what the web app sent for a meal expense). Tenant-specific. Used for every name/email lookup, including finding you. |