animus-document-engine
Provides document conversion and preview capabilities using LibreOffice compiled to WebAssembly, enabling format conversion (e.g., to PDF) and page previews.
Click on "Install 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., "@animus-document-engineRender this spec as an Excel file"
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.
animus-document-engine
An MCP (stdio) service that renders, parses, converts, and edits Office documents — Excel (.xlsx), PowerPoint (.pptx), Word (.docx) — from a structured JSON spec. It is identity-free and stateless: it never touches subjects, S3, or users. The animus-launchapp portal orchestrates it (storage + scoping + subjects); this engine is the reusable rendering core.
Part of REQUIREMENT-053 — Documents as subjects.
Why a spec
The spec is the source of truth. An AI authors a spec (not raw OOXML); a deterministic renderer turns it into a real file. Editing = mutate the spec and re-render — lossless, reviewable, and diffable. Binary payloads cross the MCP boundary as base64.
Related MCP server: mcp-office-parser
Tools
Tool | In | Out |
|
| base64 OOXML bytes |
|
| spec (xlsx only in v1) |
|
| edited, re-validated spec |
|
| base64 converted bytes (e.g. |
|
| base64 PDF or PNG thumbnail |
convert_document / preview_document use LibreOffice compiled to WebAssembly
(@matbee/libreoffice-converter) — no native soffice needed. The ~112 MB WASM
lives in this service, never in the portal image.
Spec shapes (v1)
// xlsx
{ "sheets": [ { "name": "Revenue",
"columns": [ { "header": "Month" }, { "header": "USD" } ],
"rows": [ ["Jul", 1200], ["Aug", 1500] ] } ] }
// pptx
{ "title": "Kickoff",
"slides": [ { "title": "Agenda", "bullets": ["Scope", "Timeline"] },
{ "title": "Next", "body": "…", "notes": "speaker note" } ] }
// docx
{ "title": "Spec",
"blocks": [ { "type": "heading", "level": 1, "text": "Overview" },
{ "type": "paragraph", "text": "…" },
{ "type": "bullets", "items": ["a", "b"] },
{ "type": "table", "rows": [["a","b"],["c","d"]] } ] }apply_edits ops: {op:"set",path,value}, {op:"append",target,value},
{op:"remove",target,index}, {op:"replace",value} (target = sheets|slides|blocks).
Run
npm install
npm run build
node dist/index.js # MCP stdio serverWire it into an Animus workflow phase (or any MCP client) as a stdio server:
{ "mcpServers": { "document-engine": { "command": "node", "args": ["dist/index.js"] } } }Dev
npm run dev # tsx watch (stdio server)
npm run typecheck # tsc --noEmit
npm run smoke # render all 3 formats + xlsx parse/edit round-trip
tsx scripts/mcp-smoke.ts # spawn the built server, call tools over MCPScope (v1) & roadmap
Generate all three formats — solid (pptxgenjs / docx / exceljs).
Parse — xlsx (data + headers). pptx/docx in-place parsing is DEFERRED to a future Python worker (python-pptx / python-docx are the only libraries that faithfully round-trip arbitrary decks/docs); the engine errors loudly rather than silently dropping content.
Convert/preview — via LibreOffice-WASM.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/launchapp-dev/animus-document-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server