ElixirOffice MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ElixirOffice MCPOpen budget.xlsx and show the values in the first worksheet"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ElixirOffice MCP
An unofficial local stdio MCP server that drives the ElixirOffice desktop editor using a narrow, fixed set of Office JavaScript API commands. It does not edit Office files directly. The integration was verified with the installed ElixirOffice 0.2.1 AppImage on Linux; see architecture and evidence and the capability matrix.
Requirements
ElixirOffice desktop AppImage 0.2.1 or a later version with the same
--remote-debugging-pipeand local API contractsNode.js 22 or later
Linux x86_64 (the AppImage target currently tested)
One MCP server process per ElixirOffice application instance; do not connect multiple servers to the same single-instance app
Related MCP server: mcp-genoffice
Install and run
npm ci
npm run build
ELIXIROFFICE_ALLOWED_ROOTS="$HOME/Documents/agent-work" npm startThe default executable is ~/Applications/ElixirOffice.AppImage. Override it with ELIXIROFFICE_APPIMAGE=/absolute/path/to/ElixirOffice.AppImage. ELIXIROFFICE_ALLOWED_ROOTS is a colon-separated list of existing directories; only regular, non-symlink files below those roots may be opened. By default only the current working directory is authorized. Set ELIXIROFFICE_PROFILE to a dedicated ElixirOffice user-data profile when isolation is desired. The AppImage itself is not modified. On hosts without accessible /dev/fuse, use the host's already-supported AppImage extraction mode with APPIMAGE_EXTRACT_AND_RUN=1; this does not disable Electron's renderer sandbox.
MCP client configuration
Build first, then configure the client to launch this project's local executable. MCP stdio is the only transport; stdout is reserved for protocol messages and diagnostics go to stderr.
Codex config.toml:
[mcp_servers.elixiroffice]
command = "node"
args = ["/absolute/path/to/elixiroffice-mcp/dist/index.js"]
cwd = "/absolute/path/to/elixiroffice-mcp"
env = { ELIXIROFFICE_ALLOWED_ROOTS = "/absolute/path/to/agent-work", ELIXIROFFICE_APPIMAGE = "/absolute/path/to/ElixirOffice.AppImage" }Claude Code .mcp.json:
{
"mcpServers": {
"elixiroffice": {
"command": "node",
"args": ["/absolute/path/to/elixiroffice-mcp/dist/index.js"],
"cwd": "/absolute/path/to/elixiroffice-mcp",
"env": {
"ELIXIROFFICE_ALLOWED_ROOTS": "/absolute/path/to/agent-work",
"ELIXIROFFICE_APPIMAGE": "/absolute/path/to/ElixirOffice.AppImage"
}
}
}
}Available tools
document: open, list, inspect, read Word structure, append/search/replace text, save, and request clean close.spreadsheet: inspect worksheets; read values and formula fields; bulk-write cell values and basic formatting; add and rename sheets.presentation: inspect slides, shape text, and notes; add a slide with optional text.pdf: inspect pages/fields/annotations; add an annotation. Existing form-field filling is wired but not integration-tested.editor_capabilities: report detected version, implemented operations, and limitations.
Every operation uses an opaque documentId returned by document(open). Only one document is controlled at once. The active-document resource exposes read-only metadata.
New-document creation, Save As, export destination selection, close-document return-to-home, and many Office operations are not claimed as working. The MCP app does not automate native file dialogs. Close can return DOCUMENT_CLOSE_NOT_CONFIRMED if the desktop IPC does not return the renderer to home; save and disconnect/relaunch is currently the reliable persistence path. See the matrix before relying on a feature.
Testing
npm test # strict TypeScript compilation and unit tests
npm run test:integration # launches the real installed AppImage; needs a graphical session
npm run test:pdf # live PDF annotation/save/reopen testSet ELIXIROFFICE_TEST_PPTX to a disposable blank PPTX to include the live presentation test in test:integration.
Integration test details, the temporary profile strategy, and cleanup behavior are in docs/testing.md. The suite uses generated disposable DOCX, XLSX, and PDF files under /tmp; an optional blank PPTX can be passed to cover presentation editing. It never opens or changes an existing personal document.
Security and licensing
The MCP server grants file access only to configured roots, rejects symlinks, caps document and result sizes, uses a private inherited debugging pipe rather than a TCP port, and exposes only static allowlisted API operations. It does not accept JavaScript expressions, raw CDP methods, or Electron IPC arguments from an MCP client. The private debugger still gives this local MCP process significant authority over its launched editor renderer; keep the server trusted, local, and configured with narrow roots.
This repository is MIT-licensed. ElixirOffice and the editor components are AGPL-3.0-only. This separate-process integration does not copy or modify upstream source, but distribution, bundling, or derivative changes can raise AGPL obligations; obtain qualified legal advice for a commercial distribution and preserve upstream notices. See docs/architecture.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Document processing over MCP: merge, split and compress PDFs, run OCR, extract document text.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
MCP server for the PDFGate API. Generate PDFs, manage documents and handle e-signatures.
- StorydocOAuthcom.storydoc
Generate and manage Storydoc presentations from any MCP-compatible client.
Related MCP Servers
- FlicenseAqualityCmaintenanceMCP server for Microsoft Office file operations. Read, write, and create Excel, Word, and PowerPoint files directly from your local filesystem.12-
- AlicenseAqualityBmaintenanceAn MCP server for byte-preserving, surgical editing of Office documents (docx, pptx) via the GenOffice engine, enabling extraction, patching, creation, deletion, watermarking, and app/CDP-driven operations without breaking layout.155MIT
- AlicenseNot gradedqualityAmaintenanceLets MCP clients such as Claude Code, Claude Desktop, and Cursor drive local in-browser photo, vector, PDF, spreadsheet, Word, slides, and image editors on the user's machine, with processing kept entirely on-device.35 npmMIT
- AlicenseNot gradedqualityAmaintenanceUniversal MCP bridge and desktop manager for live, in-place manipulation of active WPS Office and Microsoft Office (Excel, Word, PowerPoint) documents without uploading files. Supports macOS & Windows.7MIT