Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEBUGNoSet to 'lo-mcp:*' for verbose logging
SOFFICE_PATHNoPath to LibreOffice soffice executable

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
document_apply_styleC

Apply a heading or paragraph style to a specific paragraph by index.

document_closeA

Close an open document and release its resources (including any temp files from format bridging).

document_convertA

Convert a document file to a different format using LibreOffice CLI. Creates a new file; original is not modified. Useful for: DOC→DOCX, DOCX→PDF, XLSX→CSV, etc. LibreOffice must be installed.

document_createB

Create a new empty document and open it. Returns a docId. Supports creating: writer (text document → .docx), calc (spreadsheet → .xlsx), impress (presentation → .pptx).

document_exportA

Export a document to a different format using LibreOffice. Supports exporting to: PDF, HTML, TXT, DOCX, XLSX, PPTX, ODT, ODS, ODP, CSV. LibreOffice must be installed.

document_get_metadataA

Get metadata for an open document: title, author, page count, word count, format, file size, dates. Token-efficient: use this before reading document content to understand its size and structure.

document_get_outlineA

Get the structural outline of a document:

  • Writer documents: headings hierarchy (H1, H2, H3...)

  • Calc spreadsheets: list of sheet names with row/column counts

  • Impress presentations: slide titles with index numbers Token-efficient: always call this before document_read_text to understand structure.

document_insert_paragraphC

Insert a new paragraph at a specific index in a Writer document.

document_insert_textB

Insert text into a Writer document at a specified position. Position options: 'start' (beginning), 'end' (end of document), or after a specific heading text.

document_listB

List all currently open documents with their docId, file path, format, and size.

document_openA

Open a document file and return a docId handle for use with other tools. Supports: .docx, .doc, .xlsx, .xls, .pptx, .ppt, .odt, .ods, .odp, .rtf, .csv, .txt, .pdf Legacy binary formats (.doc, .xls, .ppt, .odt, .ods, .odp, .rtf) are automatically converted via LibreOffice before parsing. Returns docId to use with all other document tools.

document_read_rangeA

Read a specific range of a document by paragraph index (for Writer) or slide index (for Impress). More token-efficient than document_read_text when you only need a specific section.

document_read_textA

Read document content as Markdown text. For large documents, use limit/offset for pagination. Default returns up to 4000 characters. Use document_get_outline first to understand structure.

document_replace_textC

Find and replace text in a Writer document. Optionally replace all occurrences.

document_saveB

Save the current state of a document to its file path (or a new path).

document_searchA

Search for text within a document. Returns matching paragraphs/cells/slides with surrounding context.

presentation_add_slideC

Add a new slide to a presentation.

presentation_get_notesB

Get speaker notes for all slides or a specific slide.

presentation_get_slideB

Get the full content of a specific slide: title, body text, and speaker notes.

presentation_list_slidesA

List all slides in a presentation with their index and title. Token-efficient overview before reading content.

presentation_update_slideC

Update the title or body text of an existing slide.

spreadsheet_add_sheetC

Add a new sheet to a spreadsheet workbook.

spreadsheet_get_formulasA

Get all formulas in a spreadsheet range (returns formula expressions, not computed values).

spreadsheet_get_rangeA

Read a range of cells from a spreadsheet sheet. Returns data as structured JSON and a markdown table. Use range like "A1:D10" for specific cells, or omit for paginated full sheet. Token-efficient: specify a range rather than reading the whole sheet.

spreadsheet_list_sheetsB

List all sheets in a spreadsheet with their names, row counts, and column counts.

spreadsheet_set_cellA

Set the value or formula of a single cell in a spreadsheet. Changes are saved immediately.

spreadsheet_set_rangeC

Set multiple cell values in a spreadsheet. Provide a 2D array of values matching the range.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/passerbyflutter/libreoffice-mcp-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server