lo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_connectionA | Check whether the lo-mcp LibreOffice extension is reachable. Call this first. If not connected, LibreOffice needs to be running with the lo-mcp extension's server started (lo-mcp menu > Start Server). |
| create_documentA | Create a new, blank Writer document. Returns a doc_id for later calls. |
| open_documentC | Open an existing document from disk. Returns a doc_id. |
| list_documentsA | List documents currently open via lo-mcp, with their doc_id and modified state. |
| get_textC | Read the full text content of a Writer document. |
| insert_textA | Append text at the end of a Writer document. break_before controls what precedes the text: "none" (default, keeps typing in the current paragraph), "line" (soft line break, same paragraph), "paragraph" (starts a new paragraph), or "page" (starts a new paragraph on a new page). bold/italic/underline apply direct character formatting to just the text being inserted. style is a paragraph style name (e.g. "Heading 1", "Title") applied to the paragraph the text lands in; char_style is a character style name (e.g. "Emphasis", "Strong Emphasis") applied to just the inserted run. Use list_styles to see what's actually available in a given document rather than guessing names. |
| set_paragraph_styleA | Apply a paragraph style (e.g. "Heading 1", "Title") to an existing paragraph. Defaults to the last paragraph if paragraph_index is omitted. Index is 0-based (negative indices count from the end, Python-style) and counts paragraphs only — tables don't count. |
| get_paragraph_styleA | Read a paragraph's style name and break type. Defaults to the last paragraph. paragraph_index is 0-based; negative indices count from the end, Python-style. |
| list_stylesA | List style names available in a document for a given style family. family is one of "ParagraphStyles" (default), "CharacterStyles", "PageStyles", "FrameStyles", "NumberingStyles". Use this before calling insert_text(style=...)/char_style=.../set_paragraph_style to find valid names instead of guessing — built-in style sets vary slightly by LibreOffice version and locale, and documents can also define custom styles. |
| insert_tableA | Insert a table at the end of the document. Supports up to 26 columns. data, if given, is a 2D list of row values written into cells (values beyond the table's rows/cols are ignored). header=True bolds row 1. |
| get_table_cellB | Read a table cell's text (e.g. cell="A1"). Uses the first table if table_name is omitted. |
| find_and_replaceC | Replace all occurrences of |
| save_documentB | Save a document in place (if it already has a location) or to a new path. |
| export_documentC | Export a document to Supported formats: odt, pdf, docx, doc, rtf, txt, html. |
| close_documentA | Close a document. Refuses if there are unsaved changes unless force=True. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/blwfish/LibreOffice-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server