Skip to main content

Read Markdown

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: true also interprets valid ISO date strings in XLSX; it is opt-in and raw: true keeps 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 notes with cell/text and optional author; use dropdowns with a target range and either inline items or a one-row/one-column source range, including a qualified range on another sheet. In sheet_edit, set_note writes or clears notes and add_dropdown adds 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 use reply_thread or edit_thread. Editing a comment containing mentions is refused.
  • Native charts: charts during creation or add_chart in sheet_edit can 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_table turns 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_create is 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 with doc_edit.
  • doc_create creates a blank native DOCX or copies a DOCX/DOCM document as a template. sheet_create and deck_create also support blank files and exact native template copies. Template mode uses from and expected_template_revision; it preserves existing contents, including existing slides/sheets, and does not execute macros. Do not combine an initial grid or slide list with from. 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.