Document tools normally work blind: the model writes a file and you open it afterwards to find out what happened. Opening the document in LibreOffice and refreshing it as edits land turns that into something you can supervise — you see the paragraph appear, and you stop the run when it goes wrong rather than reading the damage later.
An MCP server that drives LibreOffice on your machine: creating Writer, Calc, Impress and Draw documents, reading their contents, converting between formats, editing text, and — the part that sets it apart — opening the document in the LibreOffice GUI so you watch edits land in real time.
- `create_document` for Writer, Calc, Impress and Draw; `read_document_text`; `get_document_info` for metadata
- `convert_document` and `batch_convert_documents` across LibreOffice's export formats, PDF and DOCX included
- `insert_text_at_position` for Writer edits, `merge_text_documents` to combine files, `get_document_statistics` for word and sentence counts
- `read_spreadsheet_data` returning Calc and Excel contents as row-and-column arrays
- `search_documents` to find documents containing given text
- Live viewing: `open_document_in_libreoffice`, `create_live_editing_session`, `watch_document_changes`, `refresh_document_in_libreoffice`
- Resources `documents://` to list documents and `document://{path}` for one document's content
- A LibreOffice extension that embeds the server inside LibreOffice itself, with an HTTP API on `localhost:8765` and access to every open document
LibreOffice 24.2+ reachable from the command line, Python 3.12+, and `uv` for dependencies (`uv sync`). Run `python src/main.py` over stdio; the package is `mcp-libre`. A helper script, `./mcp-helper.sh`, checks prerequisites, runs a demo, and starts a proxy for browser-extension clients on `http://localhost:3006`.
One command — uv sync
