Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LIBRE_MCP_LOG_LEVELNostderr log levelINFO
LIBRE_MCP_PROFILE_DIRNoper-instance profile root./.lo_profiles
LIBRE_MCP_PYTHON_PATHNobundled python overrideauto
LIBRE_MCP_KEEP_PROFILENokeep profiles for debuggingfalse
LIBRE_MCP_SOFFICE_PATHNosoffice binary overrideauto
LIBRE_MCP_STARTUP_TIMEOUTNoseconds to wait for soffice30

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_documentA

Create a new empty LibreOffice document.

    kind: one of "writer", "calc", "impress", "draw". Returns {doc_id, kind};
    pass doc_id to subsequent tools.

    show: in live mode, whether to open it in a visible window so edits are
    watchable. Defaults to the server's live setting; pass false to build it
    off-screen, true to pop it up. (No effect on a headless server.)
    
open_documentA

Open an existing document from an absolute filesystem path.

    Returns {doc_id, kind, path}. `show` (live mode) opens it in a visible
    window (true) or edits it off-screen (false); defaults to the server's
    live setting.
    
list_documentsA

List currently open documents as {documents: [{doc_id, kind, url}]}.

document_infoC

Get {kind, url, modified} for an open document.

save_documentA

Save a document.

With no path, saves in place (the document must already have a location). With an absolute path, saves a copy; format is inferred from the extension if omitted (e.g. odt, pdf, docx, ods, xlsx, csv, html).

export_documentA

Export a document to an absolute path in the given format.

    format examples: pdf, docx, odt, xlsx, ods, csv, html, txt. Inferred from
    the path extension if omitted.
    
close_documentA

Close an open document.

    Refuses with a warning if the document has unsaved changes (so in-flight
    work — yours or a human's, in a live window — isn't silently discarded);
    save_document first, or pass force=true to close and discard.
    
get_textB

Return the full plain text of a Writer document as {text}.

insert_textB

Append text at the end of a Writer document.

    Set paragraph_break to start a new paragraph before inserting.
    
find_and_replaceA

Replace all occurrences of search with replace. Returns {count}.

Set regex=true to treat search as a regular expression.

page_setupA

Set page margins (cm) and/or page background color (hex) for a Writer doc. margin sets left/right/bottom; top overrides the top margin (raise it to clear a header band).

add_paragraphA

Append a styled paragraph to a Writer doc (the workhorse — use a large bold size for headings). size is points; color is hex; align is left|center|right|justify; space_before/after are cm. style optionally applies a named paragraph style (e.g. "Heading 1").

add_listC

Append a bulleted (or numbered, if ordered=true) list — one string per item.

insert_tableC

Insert a table from a 2D list of rows. With header=true the first row gets the accent background + white bold text.

insert_imageB

Insert an image inline from an absolute path, scaled to width_cm (aspect preserved).

add_page_boxA

Place a page-anchored box (a colored band, header, or pull-quote callout). x/y/w/h are percent (0-100) of the PAGE; fill is the box color (hex, or null for transparent); optional text is styled with color/size/bold/align. Great for letterheads and report headers.

set_cellsA

Write cells in a Calc document. Returns {written}.

    cells is a list of {cell, value?|formula?} entries, e.g.
      [{"cell": "A1", "value": 21}, {"cell": "A2", "formula": "=A1*2"}]
    A "value" that is a number is written numerically; otherwise as text. A
    "formula" (starting with =) is evaluated by Calc. sheet selects the
    target sheet by name or 0-based index (defaults to the first sheet).
    
read_cellsA

Read a cell range (e.g. "A1:C10") as {values: [[...]]}.

    Each row is a list; numeric cells come back as numbers, text as strings.
    Set formula=true to read the underlying formula strings instead of
    evaluated values (e.g. "=A1*2") — useful for inspecting an existing model.
    sheet selects the sheet by name or 0-based index (defaults to first).
    
add_sheetA

Add a worksheet by name (appended, or at index). Returns {name, count}.

style_cellsA

Format a cell range (e.g. "A1:E1"). bold/italic, text color, cell fill, size (pt), font, align (left|center|right), and number_format (a Calc format code, e.g. "$#,##0", "0.0%", "$#,##0;RED"). Only the args you pass are applied.

set_column_widthB

Set the width (cm) of a column or column span, e.g. "A" or "A:E".

add_slideA

Append a slide to an Impress presentation. Returns {index, count}.

A new presentation already has one slide at index 0. layout is an Impress autolayout id (default 1 = title + content).

set_slide_contentB

Set a slide's title and/or bullet body by 0-based slide index.

bullets is a list of strings, one per bullet line.

list_slidesA

List slides as {slides: [{index, title}], count}.

read_slideA

Read a slide's text content by 0-based index.

    Returns {index, title, bullets, text}: `title` is the title placeholder,
    `bullets` the body placeholder split into lines, and `text` every
    non-empty string on the slide in z-order — including graphics-built text
    boxes and shape labels (add_textbox/add_shape), which the placeholders
    don't capture.
    
delete_slideA

Delete a slide by 0-based index. Returns {count}.

set_presentation_sizeA

Set the slide aspect ratio for the whole deck: "16:9" (default) or "4:3".

    Call this once on a new presentation before laying out slides.
    
set_slide_backgroundA

Fill a slide's background. Call this FIRST on a slide (it stacks at the back). Pass color2 for a linear gradient from color→color2 at angle degrees. Colors are hex like "#1a1a1a".

add_textboxB

Place a styled text box. x/y/w/h are percent (0-100) of the slide; size is in points; color is hex; align is left|center|right; valign is top|center|bottom. Use newlines in text for multiple lines.

add_shapeA

Draw a shape: shape is rect|round|ellipse|line. x/y/w/h are percent of the slide. fill is hex (or null for none); pass fill2 for a gradient at angle. line/line_width add a border (1/100 mm). Optional centered text with its own color/size/bold. corner (1/100 mm) rounds "round" rects.

add_imageC

Place an image from an absolute path. x/y/w/h are percent of the slide.

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/krondor-corp/libre-mcp'

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