The quote has the right data and the lines repeat. Now the customer wants a blue heading, a shaded table header, and a smaller caption. We should not need to rebuild working fields to make those changes.
The formatting tools let the agent change existing text and cells while keeping their bindings. There is also a useful route for the opposite situation: the customer has already designed the document in Word and wants it to print BC data.
Updated 25 October 2026: Version 2.0.0 is now released. This post was drafted on 24 October; the instructions below now use the final release, including its font checks and revised table arguments.
Update the server before starting
Use BcWordLayout.Mcp@2.0.0 in the setup from part 1 and restart the MCP server. You no longer need a source checkout for this walkthrough.
Keep the quote from part 2 and work on a copy:
Copy-Item -LiteralPath 'C:\BCLayoutDemo\Quote.docx' `
-Destination 'C:\BCLayoutDemo\Quote-styled.docx'
Describe the visual change
Use BC Word Layout MCP to inspect C:\BCLayoutDemo\Quote-styled.docx.
Make the Sales Quote heading 16 pt, bold, and blue (#0070C0).
Make the line-table header light grey (#E8E8E8),
with bold 8 pt captions and a thin rule below it.
Keep the numeric columns right-aligned.
Do not change the dataset, field bindings, totals, or column order.
Show me a preview and list any warnings.
This gives the agent a small set of observable changes. “Apply our branding” is not enough unless you also provide the branding or a design to follow.
The main tools are set_text_format for text and set_cell_format for cell fills and borders. The text tool can address an existing field, a cell, a row, or one unique piece of static text.
It does not need to remove and reinsert the date field just to change its colour. If a static heading occurs twice, the agent needs to identify the intended target rather than format whichever one it finds first.
Keep the changes you did not ask for
Formatting is selective. Asking for a blue date field should not reset its existing size or font.
For new text, the insert tools accept the same format object. For existing text, omitted members keep their current settings. For example, bold: false means explicitly non-bold; leaving bold out means keep it.
Alignment is separate because it affects the paragraph. Centre-aligning one word can centre the whole line containing it, so ask for alignment only where you intend that result.
For developers storing tool calls, the final v2.0.0 form for the header’s fill and bottom rule is below. It assumes the agent has confirmed that the header is row 0 of table 0:
{
"layoutPath": "C:\\BCLayoutDemo\\Quote-styled.docx",
"tableIndex": 0,
"row": 0,
"fill": "E8E8E8",
"edges": ["bottom"],
"borderStyle": "single",
"borderSize": 4
}
These are arguments for set_cell_format, not a configuration file. borderSize: 4 means half a point. Notice that edges is an array in the released API, not a comma-separated string.
Check fonts before handing over the layout
A font installed on your laptop is not necessarily available in BC online.
Version 2.0.0 warns when a layout uses a font outside Microsoft’s documented installed-font list, unless it is embedded in the document. Supplying an unavailable fontName does not block the edit; the tool reports the concern so you can choose what to do.
Ask the agent to list font warnings before agreeing the design. Compare the result with Microsoft’s BC font guidance, then print in your target sandbox.
A good local preview is not a promise of identical fonts or pagination in BC.
Start from a finished Word design
If the customer already has a designed quote or invoice, give the agent two inputs:
- The design document, with realistic sample values.
- An empty or standard Word layout exported from the correct BC report.
The design supplies the appearance. The exported layout tells the agent which fields are available.
With the project’s al-word-layout-from-design skill installed, a useful first prompt is:
Use al-word-layout-from-design with my supplied design and report layout.
Keep the design's fonts, colours, and layout.
Before building, show me how each sample value maps to a BC field,
a translated caption, static text, or content to remove.
Ask about ambiguous references or payment terms.
Do not create missing fields or treat sample amounts as fixed text.
Wait for me to confirm the mapping.
That confirmation matters more than the colour choices. A sample customer’s PO number should not become BC’s own document number. A payment promise typed into the design should not print unchanged for every customer.
The skill guides this workflow; it is not a new one-call conversion tool. Keep the mapping and preview as review steps.
Reuse a letterhead without rebuilding it
For a simpler case, prepare an unbound Word letterhead with the margins, logo, headers, footers, and styles you want. It must not already contain another report’s bound fields.
The agent can use create_layout with that file as templatePath, and the report’s exported layout as schemaSource. A .docx or .dotx shell is accepted; the output is a .docx. Macro-enabled files are refused.
The existing design content stays. It is not automatically replaced with data just because the file was called a template.
There is one release fix worth knowing when uploading the result: BC can refuse layouts that retain a link to an external Word template. Version 2.0.0 removes that external link when writing a layout, while retaining the document’s stored design. Validation also flags an existing link and points to the repair.
For layouts managed as separate body, header/footer, and theme files, the companion al-word-layout-composite skill covers that workflow. Directly colouring a conventional layout is not the same as setting up a reusable composable theme.
If you saved calls from earlier versions
The five posts now use v2.0.0. Update any older scripts or saved tool calls too:
| Older form | v2.0.0 |
|---|---|
Top-level bold and fontSizePoints |
Members of format. |
set_cell_borders |
set_cell_format, with borderStyle and borderSize. |
| Comma-separated columns, cells, widths, or edges | JSON arrays; columns and cells are objects. |
| Short field names in repeater columns | Full dataset paths. |
Preview rows |
sampleRows. |
Table look or withBorders |
borders: none, headerRule, or grid. |
Plain tables can now be created in headers and footers too; repeating tables remain body-only. Ask the agent to inspect first-page and default parts before changing header or footer content.
Check the result in BC
Run full validation and inspect the preview, then print the document in a sandbox. Check the first page, later pages, translated captions, long descriptions, and the actual font.
Version 2.0.0 also improves how inserted rows follow surrounding formatting. Still, check the new total and detail rows rather than assuming they match the existing document.
The useful outcome is a layout whose appearance has changed while its business meaning has not.
See you at Directions EMEA 2026
Session update, 25 October 2026: I’ll also be talking about this MCP and working with BC Word layouts in my session at Directions EMEA 2026.
- Tuesday, 27 October 2026
- 11:15 am - 12:00 pm (45 minutes)
- W. Europe Standard Time, UTC+01:00
- Room Maillot
If you are attending and working with Word report layouts, it would be good to see you there.