File Operations
Manage files within a hosted agent session. All file operations require an active session with a running sandbox.
Overview
Hosted agent sessions provide a persistent filesystem rooted at $HOME (/home/session). Files written to this path survive across requests within the same session. Use the session file tools to upload input data, download outputs, and manage the session filesystem externally.
⚠️ Warning: All file paths are relative to
$HOME. For example,filePath: '/data/input.csv'maps to/home/session/data/input.csvinside the container.
MCP Tool Details
Upload File
Use session_file_upload to write a file into the session:
| Parameter | Required | Description |
|---|---|---|
projectEndpoint | ✅ | AI Foundry project endpoint |
agentName | ✅ | Name of the hosted agent |
sessionId | ✅ | Active session ID |
filePath | ✅ | Destination path (e.g., /data/input.csv) |
contentBase64 | ✅ | File content as a base64-encoded string |
💡 Tip: For text files, encode the content to base64 before passing it. For binary files (images, PDFs), read the raw bytes and base64-encode them.
Download File
Use session_file_download to retrieve a file from the session:
| Parameter | Required | Description |
|---|---|---|
projectEndpoint | ✅ | AI Foundry project endpoint |
agentName | ✅ | Name of the hosted agent |
sessionId | ✅ | Active session ID |
filePath | ✅ | Path to the file to download (e.g., /data/output.csv) |
Returns: File content as a base64-encoded string.
List Files
Use session_file_list to browse the session filesystem:
| Parameter | Required | Description |
|---|---|---|
projectEndpoint | ✅ | AI Foundry project endpoint |
agentName | ✅ | Name of the hosted agent |
sessionId | ✅ | Active session ID |
path | ❌ | Directory path to list (defaults to root /) |
Returns: List of files and directories with metadata.
Delete File
Use session_file_delete to remove a file or directory:
| Parameter | Required | Description |
|---|---|---|
projectEndpoint | ✅ | AI Foundry project endpoint |
agentName | ✅ | Name of the hosted agent |
sessionId | ✅ | Active session ID |
filePath | ✅ | Path to delete |
recursive | ❌ | Set true to recursively delete a directory and its contents (default false) |
⚠️ Warning: Non-recursive delete on a non-empty directory will fail. Use
recursive: truefor directories with contents.
Get File Metadata
Use session_file_stat to inspect a file or directory:
| Parameter | Required | Description |
|---|---|---|
projectEndpoint | ✅ | AI Foundry project endpoint |
agentName | ✅ | Name of the hosted agent |
sessionId | ✅ | Active session ID |
filePath | ✅ | Path to inspect |
Returns: File name, size, whether it is a directory, and last modified time.
Create Directory
Use session_file_mkdir to create directories:
| Parameter | Required | Description |
|---|---|---|
projectEndpoint | ✅ | AI Foundry project endpoint |
agentName | ✅ | Name of the hosted agent |
sessionId | ✅ | Active session ID |
path | ✅ | Directory path to create (e.g., /data/results) |
createParents | ❌ | Create parent directories if needed (default true) |
mode | ❌ | Unix permission mode (e.g., 755). Uses system default if omitted |
Common Patterns
Upload Input → Invoke → Download Output
1. session_create → get sessionId
2. session_file_mkdir → create /data/input/
3. session_file_upload → upload input files to /data/input/
4. agent_invoke → tell agent to process /data/input/
5. session_file_list → check /data/output/ for results
6. session_file_download → retrieve output files
7. session_delete → clean up when doneCheck Agent-Generated Files
1. session_file_list → browse $HOME to see what the agent created
2. session_file_stat → check size/type of specific files
3. session_file_download → retrieve files of interestStorage Limits
- Maximum
$HOMEsize: 10 GiB per session - Files outside
$HOME(e.g.,/tmp) are ephemeral and may be cleared between requests
Error Handling
| Error | Cause | Resolution |
|---|---|---|
| Session not active | Session expired or not yet running | Use session_get to check status; create a new session if expired |
| File not found | Invalid path or file does not exist | Use session_file_list to verify the path |
| Directory not empty | Non-recursive delete on a directory with contents | Use recursive: true |
| Storage limit exceeded | $HOME exceeds 10 GiB | Delete unnecessary files with session_file_delete |