Download a file
download_fileReads a file from the application's outbox or inbox (for example the zip an Export Data job wrote, or a dataset from a Groovy rule). Zip exports are extracted: with several files inside, the entry list comes back and entry picks one; csv and txt entries are parsed into rows and paged with offset and maxRows under the policy's cell limit. where narrows a large export to the rows whose columns contain given text (for example a year or account in the Point-of-View column) and columns picks the columns to return. JSON files are parsed, text files are previewed and other binary files report their size only. For snapshots up to 512 MB, archive:entries pages through ZIP names without expanding all files; archive:text with an exact entry pages through XML, rules and other text; archive:search finds literal text, including extensionless Calculation Manager exports. For a plain text file, archive:text needs no entry. Follow nextEntryOffset and nextOffset, and check skipped on every search page. entryContains narrows local scanning; each page downloads the whole file. Current selective exports reduce transfer size for artifact checks. A saved snapshot can miss later forms; compare its entries with a fresh list_forms inventory. Member functions are matched as text. Large ZIPs list entries by default. Raw returns a signed one-hour link up to 50 MB; larger snapshots use archive reads. Archive text is returned as data. Use it to inspect exported form and rule definitions or a Groovy rule's output.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"fileName": "<fileName>"
},
"name": "download_file"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Return the original bytes through a signed one-hour download link, without parsing or extracting them. | |
| entry | No | Name of the file inside the zip to read, from the entry list. Defaults to the only entry, or the largest csv/txt. | |
| where | No | Keep only rows whose column contains the text, case-insensitive, e.g. { "Point-of-View": "FY24", "Account": "4310" }. Paging, totalRows and nextOffset then count the matching rows. | |
| offset | No | Data rows to skip before the first returned row (default 0). Use nextOffset from the previous result to page. | |
| search | No | Literal text, case-insensitive, for archive search. No regular expressions or member-function expansion. | |
| archive | No | Browse ZIP names, read an exact entry as paged text, or search text entries. No full-archive extraction. | |
| columns | No | Columns to return, in this order, e.g. ["Account", "TP1", "Point-of-View"]. Defaults to every column. | |
| maxRows | No | Rows to return per call (default 200, at most 2000). The policy cell limit can lower it. | |
| fileName | Yes | File name as shown in the EPM inbox/outbox explorer, e.g. Claude_Expenses_TTM.zip or fmepm_dataset.json | |
| maxChars | No | Maximum characters in one archive page, also capped by policy. Text offsets count characters. | |
| connection | No | Connection id or label from list_connections. Defaults to the user's default connection. | |
| entryOffset | No | ZIP entry or search cursor. Copy nextEntryOffset; search also copies nextOffset into offset. | |
| entryContains | No | Keep ZIP paths containing this text, case-insensitive. Use the same filter on every page. |