mcp-genoffice
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SERVER_SRC | No | Unset this to exercise the auto-clone path | |
| FIXTURE_SRC | No | Override the fixture source for e2e tests | /tmp/genoffice |
| GENOFFICE_PIN | No | The SHA pin for the genoffice checkout in src/engine.ts | |
| GENOFFICE_SRC | No | Optional: point at your own genoffice clone; otherwise the server auto-clones the pinned revision into ~/.cache/mcp-genoffice/src |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| genoffice_extract_textA | Extract readable text from an Office or PDF file using GenOffice engines (docx/xlsx/pptx/pdf). Returns the document content as markdown-ish text with slide/table structure. Use this to read the content of a document before editing it. |
| genoffice_docx_blocksA | Parse a .docx with the GenOffice engine and list its top-level blocks (paragraphs/headings/tables) with their index, type, style and text. Use this BEFORE genoffice_docx_patch to pick the block indexes you want to rewrite. |
| genoffice_docx_patchA | Rewrite one or more paragraphs of a .docx using the GenOffice byte-preserving roundtrip: only the edited blocks are regenerated as OOXML fragments; every untouched block keeps its original bytes, so layout, styles, headers, comments and other parts survive. Paragraph formatting (styleId/rawPPr) is carried over. Input: file path + edits [{index, text}] where index comes from genoffice_docx_blocks (0-based visible order). Output: a new patched file (never modifies the original). |
| genoffice_docx_watermarkA | Set a text watermark on a .docx using the GenOffice engine: the header part is regenerated with the watermark paragraph while the document body keeps its original bytes (byte-preserving roundtrip). Pass an empty string to remove the watermark. Writes a NEW file, never modifies the original. |
| genoffice_docx_createA | Create a NEW .docx from scratch using the GenOffice engine (buildBlankDocx). Optionally pass paragraphs (each string becomes one paragraph; use \n inside a string for line breaks within the same paragraph). Writes the file to outPath. |
| genoffice_docx_deleteA | Delete one or more top-level blocks (paragraphs/headings) from a .docx using the GenOffice byte-preserving roundtrip: the deleted blocks are spliced out, all remaining blocks keep their original bytes. Indexes come from genoffice_docx_blocks (0-based visible order). Writes a NEW file. |
| genoffice_pptx_slidesA | Open a .pptx with the GenOffice engine and list every slide with its text elements (id, name, type, text preview). Use this BEFORE genoffice_pptx_patch to identify which slide and element to edit. |
| genoffice_pptx_patchA | Replace the text of one or more text elements on a slide of a .pptx, using GenOffice element-level byte-preserving patching: only the edited elements are regenerated; every untouched element and zip part keeps its original bytes. The first run/paragraph of each element is used as the formatting template (font, size, color, alignment, bullets survive). Multi-line text with \n creates one paragraph per line. Writes a NEW file, never modifies the original. |
| genoffice_pptx_createA | Create a NEW .pptx from scratch using the GenOffice engine (createBlankPptx): a deck with one blank slide. Use genoffice_pptx_patch afterwards to fill in titles and content. Writes the file to outPath. |
| genoffice_pptx_deleteA | Delete one or more text/shape elements from a slide of a .pptx using the GenOffice engine (element-level byte-preserving: the edited slide is rebuilt, every other slide and zip part keeps its original bytes). Elements are matched by name or id from genoffice_pptx_slides. Writes a NEW file. |
| genoffice_app_statusA | Check whether the GenOffice desktop app is installed and whether its CDP debug port is up. Returns the app bundle version, the running process version (when the debugger is live) and the current page title/url. Read-only; does not launch anything. |
| genoffice_app_launchA | Launch the installed GenOffice app with the CDP debug port open so the agent can drive it (screenshots, DOM evaluation). If the app is already running WITHOUT the debug port, it is terminated first (single-instance lock would otherwise swallow the relaunch) — set killExisting=false to abort instead. Handles the auto-updater relaunch by retrying until the port answers. macOS uses |
| genoffice_app_open_fileA | Open an Office/PDF file in the GenOffice desktop app via the macOS |
| genoffice_app_screenshotA | Capture a PNG screenshot of the GenOffice app window over CDP and save it to outPath. Requires the app running with the debug port (genoffice_app_launch). Use together with vision to inspect the current UI state. |
| genoffice_app_evalA | Evaluate a JavaScript expression in the GenOffice app page context over CDP (DOM reads/writes). Read-only by default (mutate=true required to change the page). Use for inspecting UI state that the read tools do not cover. Requires the app running with the debug port. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
The file-based tools (docx/pptx) are clearly separated by format and operation (create/patch/delete/blocks/slides), and the app-control tools are distinct from file tools. There is minor potential confusion between genoffice_docx_patch and genoffice_docx_delete, and between genoffice_extract_text and genoffice_docx_blocks (both read content), but descriptions are detailed enough to disambiguate.
All tools follow a consistent genoffice_<domain>_<verb> pattern, with domains (docx, pptx, app) and verbs (create, patch, delete, status, launch) applied consistently. No camelCase mixing or irregular verb styles. The pattern is highly predictable.
15 tools is at the upper boundary of the well-scoped range but reasonable given the server covers both file manipulation (8 tools) and app control (5 tools) plus shared extraction. Each tool earns its place for distinct operations.
The server provides solid lifecycle coverage for docx and pptx (create, read, patch, delete) plus extract_text for cross-format reading and app control tools. Minor gaps include no xlsx-specific editing tools despite xlsx being mentioned in extraction, no pptx slide reordering, and no docx block insertion (only rewrite/delete).