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

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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

TDQS

A3.6/5.0

Scored across 27 tools

Disambiguation4/5

Most tools have distinct purposes with clear boundaries, such as document operations versus presentation or spreadsheet tools. However, some overlap exists: document_read_text and document_read_range both handle reading content, and document_convert and document_export both involve format conversion, which could cause minor confusion in selection.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern with clear prefixes (document_, presentation_, spreadsheet_) that group related operations. All names use snake_case uniformly, making them predictable and easy to parse for agents.

Tool Count3/5

With 27 tools, the count is borderline high for a single server, potentially overwhelming for agents. While the tools cover a broad range of LibreOffice operations, the number feels heavy and could be streamlined by consolidating overlapping functions like reading or conversion tools.

Completeness5/5

The tool set provides comprehensive coverage for document, presentation, and spreadsheet workflows, including creation, reading, updating, conversion, and metadata operations. There are no obvious gaps; agents can perform full CRUD/lifecycle tasks across all supported file types without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues