Skip to main content
Changes state - verify before retry Prepares a secure, one-time upload slot for a real file that lives on a machine you control, so it never has to be pasted into the conversation: a PDF/text document for a knowledge base (kind kb_document, target_id = kb_id), or a CSV/Excel leads file for a batch call (kind batch_leads, target_id = agent_id) or a workflow (kind workflow_leads, target_id = workflow_id). Returns an upload_id valid for 10 minutes. DO NOT call this for a file the user attached in the chat: pass that attachment as the file argument of the target tool instead (preview_batch_call_leads, create_batch_call, add_workflow_leads, upload_knowledge_base_document). The bytes must be PUT to the Azure storage host named in upload_host by whoever holds the file. Set reveal_url: true ONLY if you are a CLI agent or script running with open internet access; then PUT the file to the returned URL with the returned headers and call the finalize tool named in the result. Hosted chat sandboxes (ChatGPT code interpreter, Claude’s default sandbox) cannot reach Azure storage: do not attempt the PUT from one, it will fail on DNS. No in-chat upload panel is available on this server, so the user cannot upload through the chat. Rule of thumb: content under ~50 KB that you already have goes inline as file_text (or file_base64 for a small .xlsx on disk); anything larger on your own disk comes through here. Nothing is stored until the file is actually uploaded.

Parameters

Complete input schema

Registered output schema

Before you call

  • Connect and initialize the MCP client with OAuth or an API key for the intended workspace.
  • Provide the required parameters: kind, target_id, file_name.

Example MCP request

Send tools/call after your client completes MCP initialization. Replace placeholder values with IDs and inputs from your workspace. For object and array parameters, follow the nested requirements in the parameter description instead of treating an empty value as complete.
Successful results include structuredContent and a text content block containing the same JSON. Check isError first, then read structuredContent or parse content[0].text. See MCP responses and errors for the full envelope and failure behavior.

Verify the result

Confirm the response is not marked isError. Call Preview Batch Call Leads to read the affected resource. Verify that the intended state is visible before making another change.

Retry safety

This tool changes workspace state. After a timeout, read the affected resource before retrying so you do not create duplicate or conflicting changes.