FlowTruxFlowTrux/Docs
Docsmcp

Files (S3) MCP Server

Organization file storage via S3-compatible storage for workflow data

The Files MCP server provides organization-scoped file storage. Files are organized by organization and workspace, and can be read, written, listed, and shared via presigned download URLs.

How It Works

Files are stored in an S3 bucket with a structured key format:

org_{organizationId}/workspace_{workspaceId}/path/filename

This ensures strict isolation between organizations and workspaces. A file belonging to one organization cannot be accessed by another.

Setup

The Files server requires S3 credentials to be configured at the system level. Once configured, add the server to your organization:

  1. Go to Settings > MCP Servers > Add Server.
  2. Select Files (S3).
  3. Click Save.

The organization and workspace context is automatically injected at runtime -- no additional configuration is needed.

To use the Files server in workflows, assign it to a workspace in Settings > Workspaces > Edit.

Tools

write_file

Write text or JSON content as a file.

ParameterTypeRequiredDescription
namestringYesFile name (e.g., report.csv, data.json)
contentstringYesText content to save (max 10MB)
pathstringNoSubfolder path within workspace (default: uploads)
mime_typestringNoMIME type (auto-detected from extension if omitted)
categorystringNoCategory tag (e.g., backups, reports)
tagsstringNoComma-separated tags for organization

Returns the S3 key and a presigned download URL (valid for 1 hour).

write_binary

Write binary content (base64-encoded) as a file.

ParameterTypeRequiredDescription
namestringYesFile name (e.g., image.png, backup.zip)
base64_contentstringYesBase64-encoded binary content (max 10MB)
mime_typestringYesMIME type (e.g., image/png, application/pdf)
pathstringNoSubfolder path within workspace
categorystringNoCategory tag
tagsstringNoComma-separated tags

read_file

Read file content by S3 key. Text files return content directly; binary files return base64-encoded content.

ParameterTypeRequiredDescription
keystringYesS3 key of the file (from write_file or list_files response)

list_files

List files and folders in the workspace storage.

ParameterTypeRequiredDescription
pathstringNoSubfolder path (empty for workspace root)
limitnumberNoMaximum files to return (default: 100)

delete_file

Delete a file from storage.

ParameterTypeRequiredDescription
keystringYesS3 key of the file to delete

get_download_url

Generate a presigned download URL for sharing.

ParameterTypeRequiredDescription
keystringYesS3 key of the file
expires_innumberNoURL expiry in seconds (default: 3600, max: 86400)

get_file_info

Get file metadata without downloading the content.

ParameterTypeRequiredDescription
keystringYesS3 key of the file

Returns size, content type, category, tags, source workflow/execution IDs, and last modified date.

parse_text

Extract text content from a document stored in S3. Supports PDF, DOCX, PPTX, XLSX, ODT, ODP, ODS, and RTF. Useful for processing resumes, reports, and other office documents before passing to an AI agent.

ParameterTypeRequiredDescription
keystringYesS3 key of the file to parse
max_lengthnumberNoMax text length in characters (default: 100000). Truncates if exceeded.

Returns extracted text, file metadata, and a truncated flag.

Supported formats:

FormatExtensionsDescription
PDF.pdfText extraction (not OCR -- works with text-based PDFs)
Word.docxParagraphs, tables, lists
PowerPoint.pptxSlide text, notes
Excel.xlsxCell values across sheets
OpenDocument.odt, .odp, .odsOpen format equivalents
Rich Text.rtfLegacy rich text format

Example Workflows

Saving workflow output to file storage

  1. Trigger -- Webhook receives data
  2. Agent -- Process data and generate a CSV report
  3. Action -- MCP tool files:write_file with name report-{{trigger.data.date}}.csv
  4. Action -- MCP tool files:get_download_url to create a shareable link
  5. Agent -- Send the download link via Slack or Telegram

Resume screening from email attachment

  1. Trigger -- Cron or manual
  2. Action -- google-workspace:gmail_search for new candidate emails
  3. Action -- google-workspace:gmail_read to get attachment metadata
  4. Action -- google-workspace:gmail_get_attachment to download resume (base64)
  5. Action -- files:write_binary to store resume in S3
  6. Action -- files:parse_text to extract text from the PDF/DOCX
  7. Agent -- Score resume against job description using extracted text
  8. Action -- google-workspace:sheets_append to log result in tracking sheet