Create editable Excel, PowerPoint and Word files
Use FileHop’s native creation tools when the user needs a document they can continue editing. sheet_create can create populated grids; deck_create can build slides with native objects; document_create writes a Word document from Markdown or a structured outline. The current source also returns revisions and native outlines for follow-up edits, so the agent can work from actual cell, slide, shape or block addresses.
Check the installed MCP schemas before calling. These examples describe the reviewed source; an older download may expose only blank/template creation.
Build a workbook with real tables
Use sheet_create with directory, name (without extension) and a short summary. Pass top-level columns, rows and optionally sheet_name, or use sheets: [{name, columns, rows}] for multiple sheets in order. For example:
{
"directory": "/Users/me/Shared/Outputs",
"name": "Pipeline",
"summary": "Create the quarterly pipeline workbook",
"sheet_name": "Sales Pipeline",
"columns": ["Account", {"header": "Close date", "numberFormat": "yyyy-mm-dd"}, {"header": "Amount", "numberFormat": "$#,##0.00"}],
"rows": [["0012", {"date": "2025-01-15"}, 12500], ["0074", {"date": "2025-01-16"}, 9800]]
}
Headers are written literally, bold and frozen. With headers, FileHop creates a native Excel table with filters. Ragged rows can be padded with blanks; a row wider than the headers is refused. Column widths are fitted within bounds, and long text wraps rather than forcing arbitrarily wide columns. Use the exact table name from the returned outline for later filtering, sorting and chart sources; names are derived from sheet names, so do not guess them.
- Types: JSON numbers, booleans and null are distinct from strings. Keep identifiers and leading zeros in strings. Supply identifiers with more digits than Excel can store exactly as text. Unsafe integer inputs can be refused to prevent silent rounding.
- Dates and formulas:
{"date":"2025-01-15"}writes an Excel date.parse_dates: truealso interprets valid ISO date strings in XLSX; it is opt-in andraw: truekeeps strings literal. Strings starting with=normally become formulas in XLSX. Check formula errors returned with the created workbook before presenting it. - Notes and dropdowns: Initialize
noteswith cell/text and optional author; usedropdownswith a target range and either inlineitemsor a one-row/one-columnsourcerange, including a qualified range on another sheet. Insheet_edit,set_notewrites or clears notes andadd_dropdownadds validation where none exists. Inline choices are limited to 255 characters including separators; use a source range for longer lists. Notes differ from threaded comments: read existing threads, then usereply_threadoredit_thread. Editing a comment containing mentions is refused. - Native charts:
chartsduring creation oradd_chartinsheet_editcan plot a table or A1 range. Set the anchor cell and optionally name the category and value columns. A qualified source can read another sheet. The chart stays linked to cells in the workbook.add_tableturns an existing rectangular range with literal headers into a native table for subsequent use. - Flat grids: Use
format: "csv"or"tsv"for one grid of top-level columns/rows. These preserve text, emit ISO dates as text and omit native formulas, styles, charts, notes and validation. Choose XLSX when the workbook behavior matters.
Build slides with native objects and editable chart data
deck_create accepts ordered slides with title, subtitle, Markdown body, speaker notes and optional native layout. Use pictures, tables and charts arrays for several objects on a slide. Table input has header and rows. Pictures are shared local files and can use a picture placeholder or a box in points; give meaningful alt text. Select a content layout for tables and charts and preview object placement, especially on dense slides.
Charts can use explicit categories and series or a revision-bound workbook table source. For example, a chart entry in a slide’s charts array can be:
{
"type": "bar",
"title": "Pipeline by account",
"source": {
"file": "/Users/me/Shared/Outputs/Pipeline.xlsx",
"expected_revision": "<saved workbook revision>",
"table": "<exact table name from the workbook outline>",
"category_column": "Account",
"value_columns": ["Amount"]
}
}
Use the workbook’s actual returned path, even when collision handling gave it a suffix. The source is an editable embedded snapshot, not a live link to the external workbook. Use a supported session dependency and explicit refresh when the user needs a tracked refresh workflow. The returned deck outline includes slide IDs, layouts and theme; use the new shape IDs in the change report for follow-up deck_edit calls.
Choose the Word or template route
document_createis the route for a formatted Word document from Markdown or structured blocks. It also supports PDF, HTML and Markdown output. For Word, use the returned heading and body block IDs and revision when continuing withdoc_edit.doc_createcreates a blank native DOCX or copies a DOCX/DOCM document as a template.sheet_createanddeck_createalso support blank files and exact native template copies. Template mode usesfromandexpected_template_revision; it preserves existing contents, including existing slides/sheets, and does not execute macros. Do not combine an initial grid or slide list withfrom. Copy first, then edit the copy using its revision and native addresses.
Verify and hand off
Check the returned path, revision, outline, reported formula errors and any history warning. Use sheet_read, doc_check/doc_render or deck_check/deck_render as appropriate. Surface what the checks covered rather than treating a render as proof of Office parity. Attach the working file and any export to a human review session so the user can inspect and continue editing.