Complete reference of every tool the GroupDocs.Assembly MCP server exposes to AI agents, with parameters, example prompts, and results. Captured from a live tools/list call against server version 26.11.0 (raw capture: tools-list.generated.json in this section’s source).
Reports the active licensing mode and, under metered licensing, consumption
How the tools address templates and data
Templates and data files are names in the storage folder (or inline content). The data can also be inline JSON the agent writes itself:
Argument
Shape
Example
template
a FileInput — the document with <<…>> tags
{ "filePath": "contract-template.docx" }
dataJson
inline JSON: an object whose keys are the template’s data names, or an array
"{\"customer\":{\"Name\":\"Contoso Pharma\"}}"
data
a FileInput — .json, .xml, .csv/.tsv, or a spreadsheet, Word or presentation table
{ "filePath": "sales.xlsx" }
dataSourceName
the name the template uses for the data, when the server cannot work it out
"ds" in <<foreach [c in ds]>>
recordsPath
per-record only: where the array sits inside a JSON object
"contributors"
file
a FileInput — any template or data file to inspect
{ "filePath": "customers.json" }
Pass eitherdataJsonordata, not both. How the template sees the data:
data you give what the template sees how to name it
----------------------- ------------------------------------ ----------------
JSON object its keys: contract, customer, items nothing to do
JSON array / XML / CSV one collection worked out from
spreadsheet / Word table (columns are the members) the template, or
dataSourceName
"2026-11-12T00:00:00" a date - format it in the template <<[d]:"d MMMM yyyy">>
{{name}} in a template left as text - not Assembly syntax use <<[name]>>
Output names.assemble_document writes <template>_assembled.<ext> unless you pass outputName; format picks the extension (pdf, docx, html, md, xlsx, pptx, eml…; default: the template’s own). assemble_per_record writes one file per record, named by fileNameField (Contoso Pharma.pdf) or by a running number. Files are written to the storage folder (or GROUPDOCS_MCP_OUTPUT_PATH); the template and the data are never modified.
Dates in JSON data. Write them as ISO with a time — "2026-11-12T00:00:00" — and format them in the template: <<[contract.Date]:"d MMMM yyyy">> prints 12 November 2026. Two traps, both seen on server 26.11.0: a date-only string ("2026-11-12") is read as a date and shifted by the machine’s UTC offset — on a UTC+2 machine it printed as 11 November, even with a format string — and "12.11.2026" is read month-first, as 11 December. An unformatted date prints like 11/12/2026 12:00:00 AM. The Docker image runs in UTC.
The FileInput shape
template, data and file all take the same object — pass either a name from your storage folder or inline content: