MCP Collabora Holix
# 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](https://www.collaboraonline.com/). 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.
- Site: <https://www.collaboraonline.com/>
- Repository: <https://github.com/CollaboraOnline/online>
- Source and code review: <https://gerrit.collaboraoffice.com/>
- Read-only source mirror: <https://github.com/CollaboraOnline/online.mirror>
[Русский](README.ru.md) · [Tool reference](docs/en/reference.md) · [Справочник](docs/ru/reference.md)
## 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.
## 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 `=Other!A1` |
| 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_tool` returns text. Use `office_sheet_tool` with `read` for 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](docs/en/reference.md).
## Install
Python 3.12 or newer.
```bash
pip install "git+https://github.com/javded-itres/mcp-collabora-holix.git"
mcp-collabora-holix --help 2>/dev/null || true
python -m holix_office
```
`python -m holix_office` waits on stdin for an MCP client. That is expected. Set the workspace before the client starts the process:
```bash
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`:
```yaml
mcp_servers:
holix_office:
transport: stdio
command: mcp-collabora-holix
args: []
env:
HOLIX_OFFICE_WORKSPACE: /absolute/path/to/documents
```
Start 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`.
```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:
```bash
claude mcp add --transport stdio --env HOLIX_OFFICE_WORKSPACE=/absolute/path/to/documents mcp-collabora-holix -- mcp-collabora-holix
```
If `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
```bash
openclaw mcp add mcp-collabora-holix \
--command mcp-collabora-holix \
--env HOLIX_OFFICE_WORKSPACE=/absolute/path/to/documents
openclaw mcp doctor mcp-collabora-holix --probe
```
The same server in OpenClaw config:
```text
mcp:
servers:
mcp-collabora-holix:
command: mcp-collabora-holix
transport: stdio
enabled: true
env:
HOLIX_OFFICE_WORKSPACE: /absolute/path/to/documents
```
### Hermes
`~/.hermes/config.yaml`:
```yaml
mcp_servers:
mcp-collabora-holix:
command: mcp-collabora-holix
args: []
env:
HOLIX_OFFICE_WORKSPACE: /absolute/path/to/documents
```
Then `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:
```toml
[mcp_servers.mcp-collabora-holix]
command = "mcp-collabora-holix"
args = []
[mcp_servers.mcp-collabora-holix.env]
HOLIX_OFFICE_WORKSPACE = "/absolute/path/to/documents"
```
Or:
```bash
codex mcp add mcp-collabora-holix --env HOLIX_OFFICE_WORKSPACE=/absolute/path/to/documents -- mcp-collabora-holix
```
In the Codex TUI, `/mcp` lists the server.
## Workspace
| Variable | Meaning |
|---|---|
| `HOLIX_OFFICE_WORKSPACE` | Absolute path of the folder the tools may touch |
| `HOLIX_STUDIO_WORKSPACE_ROOT` | Set by Holix Studio. Used when the public variable is absent |
| `HOLIX_PROFILE` | 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.
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.