Labsco
MCP SERVER

LibreOffice

by patrup

Create, read, convert and edit LibreOffice documents — and watch the changes appear in a live window.

Office Suites & Cloud File Storage
Summary
The live window is the difference.

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.

What it is

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.

What you get
  • `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
Requirements

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`.

Setup effort

One command — uv sync