concur_upload_receipt
Upload a receipt (PNG, JPG, JPEG, or PDF, up to 25 MB) to SAP Concur and attach it to a specific expense, or save it to your available receipts for later use.
Instructions
Upload a receipt file (png, jpg, jpeg, pdf; up to 25 MB) to SAP Concur. Pass exactly one of: path — a file on this computer, inside the allowed upload folders (CONCUR_UPLOAD_ROOTS when set, otherwise the working directory, ~/Downloads, ~/Documents or ~/Desktop) — local installs only; inline — the bytes as base64, for a small file; or blobKey — a file PUT to an upload URL from concur_upload_slots (the way to send a file to a hosted server). Its contents must match its type; anything else is refused before a byte is sent. With reportId + expenseId it is attached to that expense straight away (append: true adds it to a receipt the expense already has); otherwise it lands in your available receipts. The preview names the file, its size and SHA-256, and the target expense; an upload-slot file is deleted from the slot once Concur has it. 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 |
|---|---|---|---|
| path | No | Local file path (a leading ~ is expanded; relative paths resolve against the working directory). Local installs only. | |
| append | No | When the expense already has a receipt, add this image to it instead of refusing. | |
| inline | No | The file itself: {filename, contentBase64, mimeType?}. Best for small files. | |
| blobKey | No | The blobKey of an upload slot from concur_upload_slots, after the file was PUT to its URL. | |
| reportId | No | Report holding `expenseId` — attach the receipt to that expense. | |
| expenseId | No | Expense to attach the receipt to (needs `reportId`). | |
| 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. |