Darwin-owned Files

Six offline file operations accept caller-supplied data and return actual file bytes or complete extracted text. The server makes no outbound network requests, fetches no URLs, opens no caller files and writes no calendar events. The MCP endpoint is /providers/files/mcp.

Markdown to PDF

markdown_to_pdf accepts a markdown string. It renders text headings, paragraphs and lists to PDF pages. Text must be representable in Windows-1252. Images, HTML and unsupported characters are rejected; this is not a browser renderer. Returned bytes have MIME type application/pdf.

CSV to XLSX

csv_to_xlsx accepts the exact csv string plus explicit numericColumns and totalColumns arrays. It creates one worksheet named Data and a totals row with SUM formulas and cached totals. Column names must match the CSV header. Other cells are literal strings, not inferred formulas. Invalid numeric values, ragged rows and duplicate headers are rejected. Numeric precision is limited to 15 significant digits.

XLSX to CSV

xlsx_to_csv accepts xlsxBase64 containing the actual workbook bytes. It emits one UTF-8 CSV artifact per worksheet and retains actual sheet names in metadata. It reads stored cell values and existing formula caches; it does not execute formulas or infer date formatting. Missing formula caches, macros, external relationships and unsafe archive expansion are rejected. Tool availability must be checked through normal discovery.

ZIP named texts

zip_text_files accepts files, an array of objects with name and text. It places exactly those UTF-8 bytes at the requested safe relative paths. Nested paths are supported. Traversal, duplicate or colliding names, device names and excessive data are rejected. No external files are read. The output MIME type is application/zip.

Event brief to iCalendar

event_brief_to_ics accepts eventBrief and an explicit UTC-second timestamp createdAt for DTSTAMP. The brief contains Start as YYYY-MM-DD HH:MM followed by an IANA timezone, Duration as a number of minutes, and Title as text; an optional Markdown heading may precede those fields. The output is a text/calendar file with UTC DTSTART and DTEND. Ambiguous and nonexistent daylight-saving times are rejected. The original timezone is retained as X-DARWIN-SOURCE-TZID. No event is added to a calendar.

DOCX to text

docx_to_text accepts documentBase64, containing canonical base64 of actual DOCX bytes, and optional boolean includeHeadersFooters (default false). It reuses Creora's bounded document parser and returns the whole text, source and text SHA-256, ordered source parts, and explicit complete/no-external-writes fields. It reads no caller path or URL. Obtain private file bytes through your normal authorized file access first. No OCR, PDF, macros, field evaluation, external relationships or silent truncation is supported. DOCX input is limited to 128 KiB compressed; the existing parser also enforces finite XML, member, expansion and UTF-8 output budgets. Unsupported documents fail without a partial result.

Real outputs and multi-step use

Every artifact includes MIME type, byte size, SHA-256 and actual base64 bytes. The MCP response also includes an embedded resource with the same bytes. Its urn:sha256 identity is not a public download URL; your execution client must retain the bytes to offer a downloadable file. Source digests identify the supplied input bytes.

For a CSV-to-XLSX-to-CSV workflow, pass the actual XLSX bytes returned by the first operation to the second. To ZIP those CSVs, pass their actual decoded UTF-8 text and intended names. The server does not automatically run another tool, replace missing data or claim a saved workflow completed.

Bounds and privacy

Each source is limited to 128 KiB, a serialized request to 384 KiB and combined output to 256 KiB. Archive processing has finite entry, expansion, sheet, row and column bounds. The process protects availability with four request slots, ten conversion attempts per rolling minute and one hundred per rolling day. These process-local counters reset on replacement and do not override your execution provider's durable quotas.

No account, payment or provider API key is required by this server. Caller inputs and outputs are not published as public documents or logged by the service. Conversion failures return explicit errors without artifact metadata.

Documentation license

Copyright 2026 Darwin. This documentation text is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). Attribute Darwin-owned Files documentation and link to this page and the license. This grant covers this documentation text only, not caller data, generated artifacts, converter source or third-party material.