MCP Collabora Holix
Enables AI agents to read and edit office documents that are open in Collabora Online by modifying the underlying DOCX, XLSX, PPTX, ODT, ODS, and ODP files on disk, with Holix Studio reloading the Collabora tab after successful edits.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Collabora HolixReplace 'Draft' with 'Final' in reports/plan.docx and save"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Collabora Holix
An MCP server that reads and edits the office files in one folder: Word, Excel, PowerPoint, and LibreOffice.
It talks to the agent over stdio. The agent calls tools. The tools change the real .docx, .xlsx, .pptx, .odt, .ods, and .odp on disk. Nothing is uploaded to a third-party converter.
This is an MCP server for Collabora Online. Collabora renders and edits the document in the browser. This server changes that same file on disk, and Holix Studio reloads the open Collabora tab after a successful edit.
Repository: https://github.com/CollaboraOnline/online
Source and code review: https://gerrit.collaboraoffice.com/
Read-only source mirror: https://github.com/CollaboraOnline/online.mirror
Русский · Tool reference · Справочник
What it does
Point the server at a directory. Ask the agent to find a document, read it, change the wording, restyle a phrase, add a picture, build a sheet formula, or add a slide. The file on disk is the result.
Holix Studio connects this server by itself when office editing is turned on, and an open Collabora tab reloads after a successful edit. Claude, OpenClaw, Hermes, Codex, and Holix use the same server with the snippets below.
Related MCP server: office-tools
What you can ask for
Documents | DOCX, XLSX, PPTX, ODT, ODS, ODP in the workspace folder |
Text | List files, read text, replace a phrase, append a paragraph to DOCX or ODT |
Create | New empty DOCX, XLSX, PPTX, ODT, ODS, or ODP with an optional title or sheet name |
Appearance | Font, size, bold, italic, underline, color, and paragraph shading. Named styles such as Heading 1 on DOCX and ODT |
Media | PNG, JPEG, GIF, WebP, BMP, and TIFF in all six types. MP4, WebM, and MOV play on PPTX and ODP slides and in an ODT frame. A DOCX stores the video and a link |
Presentations | List, add, retitle, write notes, and delete PPTX and ODP slides |
Sheets | Add sheets, set cells, formulas, hyperlinks, and Excel defined names. ODS formulas accept Excel-style references such as |
Charts | Bar, line, and pie charts on XLSX and PPTX |
Tables | Read, add, and edit a cell in DOCX, PPTX, ODT, and ODP. Add a grid to XLSX or ODS |
Paths are relative to the workspace, for example reports/plan.docx and media/cover.png. The server refuses a path that leaves that directory.
Honest limits
Paragraph shading applies only when the paragraph's whole text is the phrase you name.
Named styles are DOCX and ODT. Charts are XLSX and PPTX. Defined names are XLSX.
A DOCX does not play video. The file is stored and linked.
There are no slide animations, transitions, or master slides.
office_read_toolreturns text. Useoffice_sheet_toolwithreadfor numbers and formulas.Appending a paragraph is DOCX and ODT.
In Holix Studio, a reload replaces unsaved keystrokes in that Collabora tab with the saved file.
The full contracts are in the tool reference.
Install
Python 3.12 or newer.
pip install "git+https://github.com/javded-itres/mcp-collabora-holix.git"
mcp-collabora-holix --help 2>/dev/null || true
python -m holix_officepython -m holix_office waits on stdin for an MCP client. That is expected. Set the workspace before the client starts the process:
export HOLIX_OFFICE_WORKSPACE="$HOME/Documents"Use an absolute path. A new chat is required after you add or change the server, so the client starts a fresh process.
Connect
Holix Studio
No snippet. When office editing is enabled, Studio writes the holix_office server into the Holix profile, assigns it to the main agent, and installs the office_documents skill. The workspace is the profile workspace, not whatever directory the chat happens to use.
Open a new chat after office editing is turned on. The running MCP process does not reload tools by itself.
Holix
In the profile config.yaml:
mcp_servers:
holix_office:
transport: stdio
command: mcp-collabora-holix
args: []
env:
HOLIX_OFFICE_WORKSPACE: /absolute/path/to/documentsStart a new session. Studio users should leave this block alone: Studio owns the holix_office entry it created and will refresh it.
Claude
Claude Desktop, macOS: ~/Library/Application Support/Claude/claude_desktop_config.json. Windows: %APPDATA%\Claude\claude_desktop_config.json.
{
"mcpServers": {
"mcp-collabora-holix": {
"command": "mcp-collabora-holix",
"args": [],
"env": {
"HOLIX_OFFICE_WORKSPACE": "/absolute/path/to/documents"
}
}
}
}Quit Claude Desktop and open it again.
Claude Code, from the project directory:
claude mcp add --transport stdio --env HOLIX_OFFICE_WORKSPACE=/absolute/path/to/documents mcp-collabora-holix -- mcp-collabora-holixIf mcp-collabora-holix is not on PATH, use the full path printed by command -v mcp-collabora-holix, or python with args ["-m", "holix_office"].
OpenClaw
openclaw mcp add mcp-collabora-holix \
--command mcp-collabora-holix \
--env HOLIX_OFFICE_WORKSPACE=/absolute/path/to/documents
openclaw mcp doctor mcp-collabora-holix --probeThe same server in OpenClaw config:
mcp:
servers:
mcp-collabora-holix:
command: mcp-collabora-holix
transport: stdio
enabled: true
env:
HOLIX_OFFICE_WORKSPACE: /absolute/path/to/documentsHermes
~/.hermes/config.yaml:
mcp_servers:
mcp-collabora-holix:
command: mcp-collabora-holix
args: []
env:
HOLIX_OFFICE_WORKSPACE: /absolute/path/to/documentsThen hermes chat. The tools show up as mcp__mcp-collabora-holix__office_list_tool and the other office_* tools.
Codex
~/.codex/config.toml, or .codex/config.toml in a trusted project:
[mcp_servers.mcp-collabora-holix]
command = "mcp-collabora-holix"
args = []
[mcp_servers.mcp-collabora-holix.env]
HOLIX_OFFICE_WORKSPACE = "/absolute/path/to/documents"Or:
codex mcp add mcp-collabora-holix --env HOLIX_OFFICE_WORKSPACE=/absolute/path/to/documents -- mcp-collabora-holixIn the Codex TUI, /mcp lists the server.
Workspace
Variable | Meaning |
| Absolute path of the folder the tools may touch |
| Set by Holix Studio. Used when the public variable is absent |
| Studio profile name, used only to refresh an open editor |
If neither path variable is set, the process working directory is the workspace.
License
MIT. Copyright 2026 Pavel Lukyanov and ITRES contributors.
Available Tools
11 toolsoffice_append_toolB
Append a paragraph to a docx or odt file and reload it in the editor.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose two real traits beyond the name: supported formats (docx/odt) and the side effect of reloading the file in the editor. However it omits whether the file must already exist, whether formatting/metadata is preserved, permission needs, and failure behavior for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is tight, though borderline under-specified rather than maximally economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained. Still, for a write tool with zero annotations and 0% parameter coverage, the definition leaves out preconditions, safety profile, and error handling, which an agent needs to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, so the description must compensate. It adds only that 'text' becomes a paragraph and that 'path' targets a docx/odt file; it says nothing about accepted path forms (relative vs absolute), whether existing content is preserved, or newline handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (append) and resource (a paragraph) against named artifact types (docx/odt), which is clear and distinguishes it from read/replace siblings by implication. It stops short of explicitly naming which sibling to use, so it lacks the explicit differentiation a 5 requires.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'append' implies add-at-end usage, and the contrast with office_replace_tool is inferable, but the description never states when to choose this tool over alternatives or any preconditions. Usage is implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_chart_toolB
Add a bar, line, or pie chart to an xlsx sheet or a pptx slide.
For xlsx, data_range is the values including the series title, for example B1:B4, and categories_range is the labels, for example A2:A4. anchor is the cell where the chart sits, for example E2. For pptx, categories and values are comma-separated lists of the same length, such as Jan,Feb and 10,12.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| sheet | No | ||
| slide | No | ||
| title | No | ||
| anchor | No | E2 | |
| values | No | ||
| categories | No | ||
| chart_type | No | bar | |
| data_range | No | ||
| series_name | No | ||
| categories_range | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it only covers parameter formatting. It never states that the tool mutates the file in place, whether an existing chart is overwritten, whether the file must already exist, or what errors occur on malformed ranges. Side-effect disclosure is largely absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in one sentence, then the two operating modes are described in a clearly separated paragraph with examples. Every sentence carries useful formatting information with no obvious filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters and no annotations, the description covers the file-type-specific parameter usage reasonably but omits sheet/slide selection semantics, title, and series_name behavior. An output schema exists so return values need no explanation, but for a mutation tool of this parameter count the coverage is only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for the hardest parameters: it explains data_range, categories_range, anchor, and the pptx values/categories comma-list format with concrete examples (B1:B4, A2:A4, E2, Jan,Feb / 10,12). It leaves path, sheet, slide, title, and series_name undocumented, so it is not fully complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb ('Add') and resource ('bar, line, or pie chart') and names both target containers ('xlsx sheet or pptx slide'). It does not explicitly differentiate itself from siblings like office_slide_tool or office_sheet_tool, but the chart-specific scope is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the xlsx-vs-pptx branching (which parameters apply to which file type), but there is no explicit when-to-use/when-not statement or pointer to alternatives. An agent can infer the mode from the file, but the guidance is not spelled out as a rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_create_toolA
Create an empty new office document in the workspace.
path is a workspace-relative name ending in docx, xlsx, pptx, odt, ods, or odp; the file must not exist yet. title adds a first heading (docx, odt), a title slide (pptx, odp), and is ignored for spreadsheets. sheet_name renames the first sheet of xlsx or ods (max 31 chars). After creation, edit the file with the other office_* tools.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| title | No | ||
| sheet_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that the file must not pre-exist, that format is inferred from the extension, how title behaves differently per format (heading, title slide, or ignored for spreadsheets), and the 31-char sheet_name limit. It omits permission/auth requirements and what happens on error, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then organizes per-parameter constraints compactly with zero filler sentences. Every clause carries a constraint or a handoff instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers creation semantics, format inference, and per-param constraints for a no-annotation mutation tool. The only real gap is the absence of permission/auth or failure-mode context, which is minor given the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for all three parameters: path (workspace-relative, allowed extensions, must not exist), title (per-format behavior, ignored for spreadsheets), and sheet_name (renames first xlsx/ods sheet, max 31 chars). This adds meaning well beyond the bare string types in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create an empty new office document in the workspace') and implicitly scopes itself against the sibling edit tools by noting 'After creation, edit the file with the other office_* tools.' An agent can distinguish this creation tool from office_replace_tool/office_append_tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: use this to make a brand-new empty file, then hand off to the other office_* tools for editing, and the precondition 'the file must not exist yet' is an explicit exclusion. It stops short of naming which sibling to use when the file already exists (read/replace), so it is clear but not fully routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_format_toolA
Format existing text and reload the file in the editor.
Works for docx, xlsx, pptx, odt, ods, and odp. path is workspace-relative. text is the exact phrase. font is a family such as Calibri. size is points, such as 14. color and fill are RRGGBB. style is a named paragraph style such as Heading 1, and is available for docx and odt. Omit a property to leave it unchanged. Bold, italic, color, font, and size apply to each match. fill shades a paragraph only when that paragraph's whole text is the phrase. Do not unzip the file or rewrite its XML.
| Name | Required | Description | Default |
|---|---|---|---|
| bold | No | ||
| fill | No | ||
| font | No | ||
| path | Yes | ||
| size | No | ||
| text | Yes | ||
| color | No | ||
| style | No | ||
| italic | No | ||
| underline | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses format support, workspace-relative path semantics, that omitting a property preserves the existing value, that bold/italic/color/font/size apply to every match, that fill only applies when the paragraph's whole text is the phrase, and warns against unzipping or rewriting XML. This is rich behavioral context beyond what structured fields provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and reload behavior, then parameter semantics, then edge cases (fill scope, no XML rewriting). Sentences are dense and mostly earn their place, though the parameter enumeration is lengthy for a single-paragraph description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need no explanation, and the description covers format support, all non-obvious parameter semantics, unset-property behavior, and match-scoping. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 10 parameters, so the description must compensate and it does: path and text semantics, font as a family (Calibri), size in points (14), color/fill as RRGGBB, style as a named paragraph style limited to docx/odt, and the 'omit to leave unchanged' rule. Each formatting toggle's match scope is also explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: format existing text and reload the file in the editor. It names the exact supported formats and the mechanism (formatting on text matches), which distinguishes it from sibling tools like office_replace_tool or office_read_tool without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied well through the description of supported formats and behaviors, but there is no explicit statement of when to use this instead of office_replace_tool or another sibling, nor any exclusions. The agent can infer intent from the formatting-specific vocabulary but is not routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_list_toolB
List docx, xlsx, pptx, odt, ods, and odp files in the profile workspace.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It fixes the scope ('profile workspace') and the file extensions, but says nothing about recursion into subfolders, ordering, result limits/pagination, or permissions for a listing operation, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action, the target types, and the scope with zero filler. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple no-parameter listing tool and an output schema exists, so return value structure need not be explained. The main remaining gap is whether the listing is recursive or flat and how the workspace is bounded, which an agent might need to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The extension list is informative but is not a substitute for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (List) and a precise resource (docx, xlsx, pptx, odt, ods, odp files) plus scope (profile workspace), which clearly separates it from the read/replace/append/format siblings. It stops short of explicitly naming or contrasting those alternatives, so it lands just under a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this tool versus the other office_* tools, and no prerequisites or suggested workflow (e.g., list before read). Usage is only implied by the verb 'List', which is the definition of no real guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_media_toolA
Insert a workspace image or video into an office document.
path and media are workspace-relative. Images go into docx, xlsx, pptx, odt, ods, and odp. Video plays on pptx and odp slides and in an odt frame. A docx stores the video and a link. slide is 1-based for presentations and the sheet number for xlsx. width_cm and height_cm set the frame size.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| media | Yes | ||
| slide | No | ||
| width_cm | No | ||
| height_cm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose valuable format-specific quirks: video plays on pptx/odp slides and in an odt frame, a docx only stores the video plus a link, and slide indices are 1-based for presentations but sheet numbers for xlsx. It omits overwrite semantics, permission/auth needs, and failure modes for an insert operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in one line, then layers format and parameter notes with no filler prose. It is a bit dense and could tighten the format enumeration, but every sentence carries usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers the operation, target formats, indexing scheme, and sizing. It falls short on error/overwrite behavior and permission requirements for a write operation with no annotations backing it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate — and it does well: it tells the agent that path and media are workspace-relative, that slide is 1-based for presentations and a sheet number for xlsx, and that width_cm/height_cm set frame size. Only the default values (12 / 6.8 cm) and accepted media file formats are left unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: 'Insert a workspace image or video into an office document.' This clearly distinguishes it from every sibling (list/read/replace/append/format/slide/sheet/chart/table/create), none of which cover media insertion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the format-support notes (images go into docx/xlsx/pptx/odt/ods/odp; video plays on pptx/odp slides and odt frames). There is no explicit when-to-use versus office_chart_tool, office_slide_tool, or office_create_tool, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_read_toolC
Read plain text from a workspace office document.
path: workspace-relative path, for example reports/plan.docx.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| max_chars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Read plain text' implies read-only behavior, but there is no statement about truncation when max_chars is exceeded, behavior on non-office files, permission requirements, or failure modes. This is a significant gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short lines, front-loaded with the core action and followed by the most important parameter example. Nothing is padded, though the format reads like an incomplete doc snippet rather than a finished description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. However, with 0% parameter coverage, no annotations, and no usage guidance, the description leaves the agent guessing about max_chars semantics and about when to choose this over the other office_* read-adjacent tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents 'path' with a concrete example (reports/plan.docx), which is genuinely useful, but 'max_chars' is never mentioned despite having a non-obvious default of 40000 and truncation implications.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('plain text from a workspace office document'), which clearly separates it from mutating siblings like office_replace_tool and office_append_tool. It does not explicitly name an alternative, but the read-only framing makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is provided. An agent is left to infer that this is the read path versus office_list_tool or office_media_tool. The path example is the only usage aid offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_replace_toolB
Replace text in a workspace office document and reload it in the editor.
Contiguous text keeps its formatting. Text split across runs is rewritten as one run in that paragraph. path is workspace-relative.
| Name | Required | Description | Default |
|---|---|---|---|
| new | Yes | ||
| old | Yes | ||
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that the document is reloaded and that contiguous text keeps formatting while split runs are rewritten, but it omits whether all occurrences are replaced, case sensitivity, permission needs, and other mutation side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose, followed by relevant formatting behavior and the path convention. There is no filler and the size matches the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a mutation tool with no annotations and 0% schema description coverage, the description still lacks important replacement semantics and side-effect details needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides only parameter titles. The description clarifies that path is workspace-relative, but old and new are left without matching semantics such as exact match, case sensitivity, or occurrence scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: replace text in a workspace office document and reload it in the editor. It is distinguishable from append/format/read siblings by the verb, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus office_append_tool, office_format_tool, or other siblings, and no when-not guidance. Usage is only implied by the word "replace."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_sheet_toolB
Edit an xlsx or ods workbook: sheets, cells, formulas, and links.
action is list, add, read, set, formula, link, or name. sheet is the sheet name. cell looks like A1. formula is Excel-like, including a link to another sheet such as =Other!A1. link is a hyperlink, for example https://example.com or #'Other'!A1. name creates an xlsx defined name; range_ref looks like Sheet1!$A$1:$B$10. list and read return values and formulas.
| Name | Required | Description | Default |
|---|---|---|---|
| cell | No | ||
| link | No | ||
| path | Yes | ||
| sheet | No | ||
| value | No | ||
| action | Yes | ||
| formula | No | ||
| range_ref | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that list and read return values and formulas, but it does not describe side effects, permissions, reversibility, or what happens to existing workbook content when actions like set, formula, link, or name are used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, followed by action enumeration and parameter explanations. The text is appropriately sized for an eight-parameter multi-action tool, though it reads as a run-on block rather than clearly structured sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with eight parameters, multiple actions, no annotations, and no schema parameter descriptions. The description covers many parameter formats but lacks action-specific parameter requirements, safety or permission context, and sibling differentiation, leaving meaningful gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does substantial work by explaining cell format (A1), formula syntax including cross-sheet links, link formats (URL or #'Other'!A1), defined names, and range_ref syntax. It still omits meaning for path and value, and it does not map required parameters to specific actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Edit) and resource (an xlsx or ods workbook) and enumerates the sheet-level objects involved. It is clear what the tool does, but it does not distinguish itself from siblings such as office_list_tool, office_read_tool, or office_replace_tool, which may overlap with its listed list and read actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action list implies operational usage, but there is no explicit guidance on when to choose this tool over sibling tools that perform similar list, read, or replace operations. The description provides context through action names but stops short of stating when-not-to-use or naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_slide_toolA
Edit a pptx or odp presentation and reload it in the editor.
action is list, add, set, notes, or delete. slide is 1-based. layout for a new pptx slide is title, title_body, section, two, title_only, or blank. Set title and body on add or set. notes replaces the speaker notes on pptx and adds a notes box on odp. Use office_format_tool for fonts on slide text, office_media_tool for pictures and video, office_table_tool and office_chart_tool for tables and charts.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | ||
| notes | No | ||
| slide | No | ||
| title | No | ||
| action | Yes | ||
| layout | No | title_body |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does disclose useful behavior: the presentation is reloaded in the editor, slide is 1-based, and notes replaces speaker notes on pptx vs adds a notes box on odp. However it is silent on the destructive nature of 'delete', permissions/auth requirements, and reversibility, which are material for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then action semantics, then sibling routing, with every sentence carrying information. It is dense but no sentence is wasted; the layout enumerations are slightly list-heavy but justified given 0% schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a seven-parameter mutation tool with no annotations, the description covers actions, parameter meanings, format-specific notes behavior, and cross-tool routing. It stops short of documenting delete's destructiveness and permission requirements, which holds it below a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it explains action values, slide indexing, layout enum values, and the title/body/notes semantics including format-specific behavior. Only 'path' is left unexplained, so the gap is minor relative to the seven parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (edit a pptx/odp presentation) and immediately differentiates scope from siblings by enumerating the actions it owns (list/add/set/notes/delete). It also draws the boundary against office_format_tool, office_media_tool, office_table_tool and office_chart_tool, so an agent can tell it apart without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes other tasks to the correct siblings (fonts -> office_format_tool, pictures/video -> office_media_tool, tables/charts -> office_table_tool/office_chart_tool). The action vocabulary and format-specific notes semantics give concrete when-to-use guidance with no reliance on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
office_table_toolA
Read or write a table in docx, xlsx, pptx, odt, ods, or odp.
action is read, add, or set. rows_json is a JSON list of rows, for example [["Name","Qty"],["A","1"]]. table is 1-based. row and col are 0-based when setting one cell. On xlsx, add writes the grid at A1 and creates an Excel table. On ods, add writes the grid onto the first sheet. slide is 1-based for pptx and odp.
| Name | Required | Description | Default |
|---|---|---|---|
| col | No | ||
| row | No | ||
| path | Yes | ||
| slide | No | ||
| table | No | ||
| value | No | ||
| action | Yes | ||
| header | No | ||
| rows_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose non-obvious side effects: on xlsx, 'add' writes the grid at A1 and creates an Excel table; on ods it writes onto the first sheet. It still omits whether 'set' overwrites existing cells, whether reads mutate anything, and what happens on missing tables, but the format-dependent write behavior is genuinely useful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first line, and every subsequent clause carries information with no filler. The second block is a single dense run of indexing and format rules without visual grouping, which slightly hurts scanability but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers purpose, actions, indexing, and per-format write behavior. For a 9-parameter, multi-format tool with 0% schema coverage and no annotations, the unexplained 'header' and 'value' parameters and the silent overwrite semantics leave clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does for most of the 9 params: it defines the action enum, documents the rows_json format with a concrete example, and resolves the 1-based vs 0-based conventions for table, row, col, and slide. The 'header' and 'value' parameters are never explained, which is a real gap for a table-writing tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb pair ('Read or write') plus the resource ('a table') and enumerates the supported file formats, so the agent knows exactly what domain it operates on. It does not, however, draw a boundary against the adjacent office_sheet_tool / office_slide_tool siblings that also touch xlsx/pptx content, leaving overlap to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'action is read, add, or set' sentence implicitly tells the agent which mode to pick, and the format-specific notes hint at when behavior differs. There is no explicit guidance on when to use this tool versus office_sheet_tool, office_append_tool, or office_replace_tool, nor any stated prerequisite (e.g., the target table must already exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v0.1.0- First observed
office_append_tool - First observed
office_chart_tool - First observed
office_create_tool - First observed
office_format_tool - First observed
office_list_tool - First observed
office_media_tool - First observed
office_read_tool - First observed
office_replace_tool - First observed
office_sheet_tool - First observed
office_slide_tool - First observed
office_table_tool
TDQS
Scored across 11 tools
Each tool targets a distinct resource or action: file listing/reading, text replace/append/format, media insertion, and format-specific editors (slide, sheet, table, chart). The slide tool explicitly delegates to format/media/table/chart tools, preventing overlap. Minor potential confusion between office_replace_tool and office_format_tool, but descriptions clarify their boundaries.
All tools share the predictable office_<name>_tool wrapper, making them easy to scan and use. However, the middle token mixes verbs (list, read, replace, append, format, create) with nouns (media, slide, sheet, chart, table), so it's not a strict verb_noun pattern. Mostly consistent with minor deviations.
11 tools is well-scoped for an office document suite, covering discovery, editing, and format-specific operations without redundancy. Each tool earns its place in the surface.
Coverage includes create, list, read, text replace/append/format, media, and per-format editing (slides, sheets, tables, charts). Missing a file delete or rename/move operation; delete is only partly covered for slides, so minor gaps remain.
Maintenance
Related MCP Connectors
Create, review and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Collaborative word processor you can use with your agent.
Markdown workspace for AI agents: read, write, organize, and share markdown documents.
Create and manage documents, spreadsheets, and presentations from your AI assistant.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, and legacy formats through LibreOffice bridge.2729 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, create, edit Word/Excel/PPT files and manage the filesystem on the user's computer via natural language.MIT
- FlicenseNot gradedqualityBmaintenanceEnables agents to read, analyze, and edit Google Docs, Sheets, Drive files, and local folders with previews, rollback, and clarification, while supporting MCP clients, local models, and API-key-based models.-
- AlicenseAqualityCmaintenanceEnables AI agents to read and edit Word (.docx) and PDF documents with byte-level fidelity, using minimal in-package rewrites for DOCX and text-layer detection with page rendering for PDF, including OCR-free handling of scanned files via image output.7MIT