upload-file-content
The content stream, if the item represents a file. 💡 TIP: Body is a base64-encoded string of the file bytes; the server decodes it before PUT. Graph accepts up to 250MB here, but the whole string travels as a tool argument and a truncated one decodes to a truncated file with no error, so use cre...
This record as markdown: /tools/jo3zik-ms-365-mcp-server/upload-file-content.md
What upload-file-content does on Ms 365
AI agents use upload-file-content to create or update resources in Ms 365, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Ms 365 environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | Base64-encoded file content. The server decodes it and PUTs the raw bytes to Microsoft Graph. |
confirm | boolean | — | For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly app |
driveId | string | Yes | Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph. |
driveItemId | string | Yes | Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsof |
includeHeaders | boolean | — | Include response headers (including ETag) in the response metadata |
excludeResponse | boolean | — | Exclude the full response body and only return success or failure indication |
Parameters from the server's own tool schema.
Why upload-file-content is rated Medium
An AI agent can call upload-file-content faster than any human can review: one bad instruction and it creates or modifies resources in Ms 365 by the hundred, each call as confident as the last.
Risk signalsAccepts raw HTML/template content (body) · Admin/system-level operation
Attacks that exploit this kind of access
The rule that runs upload-file-content safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Ms 365, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For upload-file-content, this is the rule to start with:
upload-file-content stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Ms 365, apply this rule, and every upload-file-content call is checked against it from then on.
Questions about upload-file-content
The content stream, if the item represents a file. 💡 TIP: Body is a base64-encoded string of the file bytes; the server decodes it before PUT. Graph accepts up to 250MB here, but the whole string travels as a tool argument and a truncated one decodes to a truncated file with no error, so use create-upload-session rather than emitting a large base64 string. For new files use path format: /items/root:/path/to/file.txt:/content. Overwrites existing files without warning. It is categorised as a Write tool in the Ms 365 MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
upload-file-content accepts 6 parameters: body, confirm, driveId, driveItemId, includeHeaders, excludeResponse. Required: body, driveId, driveItemId. The full parameter table on this page comes from the server's own tool schema.
Register the Ms 365 MCP server in PolicyLayer and add a rule for upload-file-content: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Ms 365. Nothing to install.
upload-file-content is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the upload-file-content rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for upload-file-content. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
upload-file-content is provided by the Ms 365 MCP server (@jo3zik/ms-365-mcp-server). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Ms 365, and thousands of servers like it.
This server
Across the catalogue