LibreOffice MCP Tools
Herramientas MCP para LibreOffice
[!WARNING] Este proyecto fue escrito por GitHub Copilot y no ha sido revisado completamente por un humano. El código puede contener errores, problemas de seguridad o comportamientos inesperados. Úselo bajo su propia responsabilidad. No lo utilice en producción sin una revisión exhaustiva.
Un servidor del Protocolo de Contexto de Modelo (MCP) que brinda a los agentes de IA (Claude, Copilot, Gemini, Cursor, etc.) la capacidad de leer, escribir y editar documentos de Office a través de LibreOffice, con un diseño eficiente en el uso de tokens que minimiza el consumo de contexto del LLM.
Inspirado en la arquitectura de chrome-devtools-mcp.
✨ Características
22 herramientas MCP que cubren lectura, escritura, hojas de cálculo y presentaciones
Diseño eficiente en tokens: navegación basada en esquemas, acceso basado en rangos, paginación
Amplia compatibilidad de formatos: DOCX, DOC, XLSX, XLS, PPTX, PPT, ODT, ODS, ODP, RTF, CSV, TXT, PDF
Puente para formatos heredados: conversión automática de
.doc,.xls,.pptmediante LibreOffice antes del análisisNo se requiere LibreOffice para lecturas básicas: los analizadores nativos manejan DOCX, XLSX, PPTX directamente
LibreOffice requerido para: formatos heredados, exportación a PDF, conversión de formatos
Related MCP server: Spire.Doc MCP Server
📋 Formatos admitidos
Formato | Extensiones | Leer | Escribir | Método |
Word 2007+ |
| ✅ | ✅ | Nativo (lectura con mammoth / escritura OOXML con JSZip) |
Word 97-2003 |
| ✅ | ✅ | Puente de LibreOffice |
Excel 2007+ |
| ✅ | ✅ | Nativo (ExcelJS) |
Excel 97-2003 |
| ✅ | ✅ | Puente de LibreOffice |
PowerPoint 2007+ |
| ✅ | ✅ | Nativo (OOXML con JSZip) |
PowerPoint 97-2003 |
| ✅ | ✅ | Puente de LibreOffice |
OpenDocument Text |
| ✅ | ✅ | Puente de LibreOffice |
OpenDocument Spreadsheet |
| ✅ | ✅ | Puente de LibreOffice |
OpenDocument Presentation |
| ✅ | ✅ | Puente de LibreOffice |
Rich Text Format |
| ✅ | ✅ | Puente de LibreOffice |
CSV |
| ✅ | ✅ | Nativo |
| ✅ (texto) | ❌ | CLI de LibreOffice | |
Texto plano |
| ✅ | ✅ | Nativo |
🚀 Inicio rápido
Requisitos previos
Node.js 20+
LibreOffice (opcional para lecturas básicas de DOCX/XLSX/PPTX; requerido para .doc/.xls/.ppt y conversión de formatos)
Windows: Descargar LibreOffice
macOS:
brew install --cask libreofficeLinux:
sudo apt install libreofficeosudo dnf install libreoffice
Instalación
Usando npx (recomendado — no requiere instalación):
{
"mcpServers": {
"libreoffice": {
"command": "npx",
"args": ["-y", "@passerbyflutter/libreoffice-mcp-tools"]
}
}
}Instalación global:
npm install -g @passerbyflutter/libreoffice-mcp-toolsDesde el código fuente:
git clone https://github.com/passerbyflutter/libreoffice-mcp-tools
cd libreoffice-mcp-tools
npm install
npm run buildConfigure su cliente MCP
Añada a la configuración de su cliente MCP (por ejemplo, claude_desktop_config.json de Claude Desktop):
{
"mcpServers": {
"libreoffice": {
"command": "npx",
"args": ["-y", "@passerbyflutter/libreoffice-mcp-tools"],
"env": {
"SOFFICE_PATH": "/path/to/soffice"
}
}
}
}O utilice .mcp.json en la raíz de su proyecto:
{
"mcpServers": {
"libreoffice": {
"command": "npx",
"args": ["-y", "@passerbyflutter/libreoffice-mcp-tools"]
}
}
}Opciones de CLI
node build/bin/libreoffice-mcp.js [options]
--libreoffice-path <path> Path to soffice executable
(default: auto-detected or SOFFICE_PATH env)🛠 Referencia de herramientas
Gestión de documentos
Herramienta | Descripción |
| Abre un archivo → devuelve un identificador |
| Libera el identificador del documento y los archivos temporales |
| Lista todos los documentos abiertos |
| Crea un nuevo documento vacío (writer/calc/impress) |
| Guarda en la ruta actual o en una nueva |
| Exporta a través de LibreOffice (PDF, HTML, CSV, etc.) |
| Convierte el formato de archivo (DOC→DOCX, XLSX→CSV, etc.) |
Lectura (eficiente en tokens)
Herramienta | Descripción |
| Título, autor, recuento de palabras/páginas, fechas |
| Encabezados (Writer) / nombres de hojas (Calc) / títulos de diapositivas (Impress) |
| Texto del documento paginado como Markdown |
| Rango específico de párrafos o diapositivas |
| Encuentra texto con contexto circundante |
Escritura (Writer)
Herramienta | Descripción |
| Inserta al principio/final/después de un encabezado |
| Buscar y reemplazar (primera o todas las apariciones) |
| Inserta un párrafo en un índice específico |
| Aplica un estilo de encabezado/párrafo |
Hoja de cálculo (Calc)
Herramienta | Descripción |
| Nombres de hojas con recuento de filas/columnas |
| Rango de celdas como JSON + tabla markdown |
| Establece el valor o la fórmula de una celda |
| Establece un rango 2D de valores |
| Añade una nueva hoja |
| Obtiene expresiones de fórmulas en un rango |
Presentación (Impress)
Herramienta | Descripción |
| Títulos de diapositivas con índice |
| Contenido completo de la diapositiva (título, cuerpo, notas) |
| Notas del orador |
| Añade una nueva diapositiva (requiere LibreOffice) |
| Actualiza el contenido de la diapositiva |
💡 Flujo de trabajo para ahorrar tokens
Para una máxima eficiencia en el uso de tokens, siga este patrón:
1. document_open(filePath) → get docId
2. document_get_metadata(docId) → understand size/type
3. document_get_outline(docId) → see structure
4. document_read_range(docId, startIndex=N, endIndex=M) → read specific sectionEn lugar de volcar todo el documento, navegue exactamente a lo que necesita.
Flujo de trabajo de hojas de cálculo:
1. document_open(path) → docId
2. spreadsheet_list_sheets(docId) → see all sheets
3. spreadsheet_get_range(docId, sheetName="Sales", range="A1:D20") → targeted data🏗 Arquitectura
src/
├── index.ts # createMcpServer() — MCP server factory
├── LibreOfficeAdapter.ts # soffice subprocess manager
├── DocumentContext.ts # Open document registry
├── DocumentSession.ts # Per-document state + format bridge
├── McpResponse.ts # Response builder (text/JSON/markdown)
├── Mutex.ts # Serializes LibreOffice subprocess calls
├── parsers/
│ ├── DocxParser.ts # DOCX read → {paragraphs, outline, metadata} (mammoth)
│ ├── DocxOoxmlEditor.ts # DOCX write → direct JSZip OOXML manipulation (format-preserving)
│ ├── XlsxParser.ts # XLSX read/write via ExcelJS
│ ├── PptxParser.ts # PPTX read → {slides[]} (JSZip XML)
│ └── PptxOoxmlEditor.ts # PPTX write → add/update slides, create PPTX (JSZip OOXML)
├── formatters/
│ ├── MarkdownFormatter.ts
│ ├── JsonFormatter.ts
│ └── TableFormatter.ts # Spreadsheet → Markdown table
└── tools/
├── documents.ts # open/close/list/create
├── reader.ts # metadata/outline/read/search
├── writer.ts # insert/replace/style
├── spreadsheet.ts # get/set cells/ranges/sheets
├── presentation.ts # slides/notes
└── converter.ts # save/export/convert🧪 Pruebas
# Create sample fixtures
node tests/create-fixtures.mjs
# Run smoke tests
npm test📝 Variables de entorno
Variable | Descripción |
| Ruta al ejecutable |
| Establecer en |
📄 Licencia
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, read, edit, and manipulate LibreOffice documents with support for track changes, comments, search/replace, and real-time document operations through a native extension or HTTP API.9MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to create, read, modify, and convert Word documents without Microsoft Word, supporting 18 tools for document operations, paragraph manipulation, table management, formatting, and conversion between multiple formats including PDF, HTML, and Markdown.6MIT
- AlicenseAqualityFmaintenanceEnables AI assistants to create, read, convert, and manipulate LibreOffice documents programmatically, supporting 50+ file formats including Writer, Calc, Impress documents with real-time editing, batch operations, and document analysis capabilities.1495MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read, edit, and create Microsoft Word documents (.docx) with support for rich text, tables, and images, deployable locally or via SSE.3MIT
Related MCP Connectors
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
AI document editing for agents: draft, edit, export .docx/PDF. 37 MCP tools; agent self-signup.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/passerbyflutter/libreoffice-mcp-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server