MCP ExplorerExplorer

Libre Office Mcp

@harshithb3304on 9 months ago
5 MIT
FreeCommunity
AI Systems
A server enabling AI assistants to interact with LibreOffice documents.

Overview

What is Libre Office Mcp

LibreOffice MCP is a server that enables AI assistants, such as Claude, to interact directly with LibreOffice documents. It acts as a bridge between AI applications and the LibreOffice suite, allowing for various document manipulations.

Use cases

Use cases include automating document creation for reports, enhancing collaborative writing with AI assistance, and integrating AI-driven content editing in educational tools.

How to use

To use LibreOffice MCP, clone the repository from GitHub, set up a Python environment, and install the necessary dependencies. Ensure you have LibreOffice installed and a compatible AI client like Claude for Desktop.

Key features

Key features include support for LibreWriter, allowing users to create, read, edit, and format documents. It supports operations like adding text, formatting paragraphs, inserting images, and managing tables.

Where to use

LibreOffice MCP can be used in various fields such as education, business, and content creation, where document processing and AI integration are beneficial.

Content

LibreOffice MCP Server

A Model Context Protocol (MCP) server that enables Claude and other AI assistants to interact with LibreOffice documents directly.

Overview

This MCP server provides a bridge between AI assistants like Claude and LibreOffice, allowing the AI to create, read, edit, and format LibreOffice documents. Built on the Model Context Protocol, it exposes LibreOffice functionality as tools that can be called by compatible AI applications.

Features

LibreOffice Suite Support

  • [x] LibreWriter

    • Implemented:
      • [x] Create new documents
      • [x] Open and read text documents
      • [x] Copy documents
      • [x] List documents in a directory
      • [x] Get document properties and metadata
      • [x] Add text to documents
      • [x] Add headings with different levels
      • [x] Add formatted paragraphs
      • [x] Add tables with data
      • [x] Format tables with borders, colors, and header rows
      • [x] Search and replace text
      • [x] Delete specific text
      • [x] Delete paragraphs
      • [x] Insert page breaks (partial implementation)
      • [x] Insert images
      • [x] Format specific text (bold, italic, color, size)
  • [ ] LibreCalc

  • [ ] LibreImpress

Installation

Requirements

  • Python 3.10 or higher
  • LibreOffice installed
  • Claude for Desktop (or another MCP-compatible client)

Setup Instructions

  1. Clone the repository

    git clone https://github.com/harshithb3304/libre-office-mcp.git
    cd libre-office-mcp/libre-writer
    
  2. Set up Python environment

    UV Installation 
    
    #For Windows  
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    #For MacOS/Linux 
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # With uv (recommended)
    uv init
    uv venv
    uv add mcp[cli] httpx
    
    # With pip
    pip install "mcp[cli]" httpx
    
  3. Install LibreOffice

Usage with Claude for Desktop

  1. Configure Claude for Desktop

    Add the following to your Claude for Desktop configuration file:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    {
      "mcpServers": {
        "libreoffice-server": {
          "command": "uv",
          "args": [
            "--directory",
            "C:\\path\\to\\libreoffice-mcp-server",
            "run",
            "main.py"
          ]
        }
      }
    }

    or

    {
      "mcpServers": {
        "libreoffice-server": {
          "command": "python",
          "args": [
            "C:\\path\\to\\the\\main.py"
          ]
        }
      }
    }

    ⚠️ Note: Replace C:\\path\\to\\libreoffice-mcp-server with the actual path to where you cloned the repository.

  2. Restart Claude for Desktop

  3. Interact with LibreOffice

    You can now ask Claude to perform actions like:

    • “Create a new document with a title and three paragraphs”
    • “List all the documents in my Documents folder”
    • “Open my report.odt file and add a table with 4 columns and 5 rows”

Claude LibreOffice Interaction

How It Works

The server consists of three main components:

  1. LibreOffice Helper (helper.py): A Python script that communicates directly with LibreOffice using the UNO bridge API.

  2. MCP Server (libre.py): The main MCP server that exposes LibreOffice functionality as tools for AI assistants.

  3. Launcher (main.py): A script that launches both the helper and the MCP server.

When a request comes in from Claude:

  1. The MCP server receives the request
  2. It forwards the command to the LibreOffice helper via a socket connection
  3. The helper executes the command using LibreOffice’s UNO API
  4. The result is sent back to the MCP server and then to Claude

Configuration Options

The server will use your Documents folder as the default location for creating new documents if no path is specified. You can change this by modifying the get_default_document_path function in libre.py.

Troubleshooting

Common Issues

  • “LibreOffice helper is not running”
    Make sure LibreOffice is installed and the path to the LibreOffice Python executable is correct in main.py.

  • “Connection refused”
    The helper script may not have started correctly. Check if port 8765 is already in use.

  • “Failed to connect to LibreOffice desktop”
    LibreOffice may not be running in headless mode. Check if port 2002 is available.

Contributing

Contributions are welcome! Here are some areas that need improvement:

  • Fixing image insertion functionality
  • Implementing robust text formatting
  • Supporting additional LibreOffice features
  • Improving error handling

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers