# office-oxide-mcp [![GitHub stars](https://img.shields.io/github/stars/Aimino-Tech/opendocswork-mcp?style=social)](https://github.com/Aimino-Tech/opendocswork-mcp/stargazers) [![GitHub forks](https://img.shields.io/github/forks/Aimino-Tech/opendocswork-mcp?style=social)](https://github.com/Aimino-Tech/opendocswork-mcp/network/members) [![GitHub issues](https://img.shields.io/github/issues/Aimino-Tech/opendocswork-mcp)](https://github.com/Aimino-Tech/opendocswork-mcp/issues) [![GitHub pull requests](https://img.shields.io/github/issues-pr/Aimino-Tech/opendocswork-mcp)](https://github.com/Aimino-Tech/opendocswork-mcp/pulls) **Rust-native MCP server for Office document processing (Excel, Word, PowerPoint, PDF).** Sub-millisecond, local-first, open source — the "open source Aspose." > **PDFs are a pain.** We live in bureaucratic countries where every form asks for your name, address, and date of birth — over and over. Bank applications, tax forms, insurance claims, government permits, rental agreements. Same fields, different PDFs, endless typing. > **Stop filling forms by hand.** Let office-oxide-mcp do it in milliseconds — whether it's a simple AcroForm, a complex XFA form, or a flat scanned PDF where you need coordinates. Your LLM reads the form, you approve, it fills. Done.

Discord GitHub Discussions License

> [!TIP] > Be with us! > > | [Discord link](https://discord.gg/GVYVCwWX) | Join our [Discord community](https://discord.gg/GVYVCwWX) to ask questions, share ideas, and get help with office-oxide-mcp. | > | :----- | :----- | > | [GitHub Discussions](https://github.com/Aimino-Tech/opendocswork-mcp/discussions) | Prefer GitHub? Start a [discussion](https://github.com/Aimino-Tech/opendocswork-mcp/discussions) or open an issue. | > | [GitHub Follow](https://github.com/Aimino-Tech) | Follow [@Aimino-Tech](https://github.com/Aimino-Tech) on GitHub for more projects. |

Discord Widget

--- ## Quick Start ```bash cargo install office-oxide-mcp ``` Or download from [GitHub Releases](https://github.com/Aimino-Tech/office-oxide-mcp/releases). ### Claude Desktop ```json { "mcpServers": { "office": { "command": "office-oxide-mcp", "args": ["--transport", "stdio"] } } } ``` ### Cursor ```json { "mcpServers": { "office-oxide-mcp": { "command": "office-oxide-mcp", "args": ["--transport", "stdio"] } } } ``` ### VS Code (Copilot) ```json { "servers": { "office-oxide-mcp": { "command": "office-oxide-mcp", "args": ["--transport", "stdio"] } } } ``` --- ## Use Cases Every document below was generated by office-oxide-mcp — click to download. | # | Format | Use Case | Skill | Preview | |---|--------|----------|-------|---------| | 1 | XLSX | [Profit & Loss Statement](showcase/generated/01-posch-energy-pnl/01-posch-energy-pnl.xlsx) | `excel.basic` | P&L | | 2 | XLSX | [Executive KPI Dashboard](showcase/generated/02-meyer-automotive-kpi/02-meyer-automotive-kpi.xlsx) | `excel.basic` | KPI | | 3 | XLSX | [Budget vs Actual Variance](showcase/generated/03-liebermann-health-budget/03-liebermann-health-budget.xlsx) | `excel.basic` | Budget | | 4 | XLSX | [Balance Sheet with Ratios](showcase/generated/04-wolfsburg-financial-balance/04-wolfsburg-financial-balance.xlsx) | `excel.basic` | Balance | | 5 | XLSX | [Revenue Forecast](showcase/generated/10-hoffmann-machine/10-hoffmann-machine.xlsx) | `excel.basic` | Forecast | | 6 | XLSX | [Cost Analysis](showcase/generated/11-beck-energy/11-beck-energy.xlsx) | `excel.basic` | Cost | | 7 | DOCX | [Invoice](showcase/generated/05-thyssen-steel/05-thyssen-steel.xlsx) | `word.invoice` | Invoice | | 8 | DOCX | [Annual Business Report](showcase/generated/15-meyer-automotive-report/15-meyer-automotive-report.docx) | `word.report` | Report | | 9 | DOCX | [IT Service Agreement](showcase/generated/17-liebermann-health-contract/17-liebermann-health-contract.docx) | `word.report` | Contract | | 10 | DOCX | [Digital Strategy Report](showcase/generated/16-wolfsburg-digital-strategy/16-wolfsburg-digital-strategy.docx) | `word.report` | Strategy | | 11 | PDF | [Financial Report Export](showcase/generated/06-bauer-construction/06-bauer-construction.xlsx) | `office_export_pdf` | PDF | | 12 | PPTX | [Strategy Consulting Pitch Deck](showcase/generated/01-strategy-consulting-pitch/01-strategy-consulting-pitch.pptx) | `ppt.deck` | Strategy | | 13 | PPTX | [CFO Quarterly Business Review](showcase/generated/02-cfo-qbr-review/02-cfo-qbr-review.pptx) | `ppt.deck` | CFO QBR | | 14 | PPTX | [Product Launch Strategy Deck](showcase/generated/03-product-launch-strategy/03-product-launch-strategy.pptx) | `ppt.deck` | Product | | 15 | PPTX | [M&A Target Analysis Deck](showcase/generated/04-ma-target-analysis/04-ma-target-analysis.pptx) | `ppt.deck` | M&A | | 16 | PPTX | [Digital Transformation Roadmap](showcase/generated/05-digital-transformation/05-digital-transformation.pptx) | `ppt.deck` | DX | > **Interactive showcase → [`showcase/use-cases.html`](showcase/use-cases.html)** with full prompts, JSON-RPC calls, and details. --- ## Tool Overview | Tool | Description | Inputs | |---|---|---| | `list_formats` | All supported Office formats + capabilities | — | | `get_document_info` | File metadata (format, size, readability) | `file_path` | | `office_read` | Read content → JSON / Markdown / Chunks / Text | `file_path`, `output_format` | | `office_fill_pdf_form` | Fill AcroForm/XFA form fields in a PDF | `file_path`, `output_path`, `fields` | | `office_list_pdf_fields` | List all form fields in a PDF with values | `file_path` | | `office_overlay_pdf_text` | Insert text at coordinates on flat PDFs | `file_path`, `output_path`, `fields` | | `office_analyze_pdf_layout` | Analyze PDF layout for overlay coordinates | `file_path` | | `increment` | Increment counter (demo) | — | | `get_value` | Get current counter value (demo) | — | ### Full Suite **AI Reading:** `to_md`, `to_json`, `to_chunks`, `excel_schema`, `coherence_check` **Excel Write:** `office_create_xlsx`, `office_write_cell`, `office_write_range`, `office_format_range`, `office_create_chart`, `office_create_pivot`, `office_add_sheet`, `office_rename_sheet`, `office_delete_sheet`, `office_merge_cells`, `office_set_column_width`, `office_apply_conditional_format` **Word Write:** `office_create_docx`, `office_write_docx_from_md`, `office_replace_text`, `office_set_style`, `office_add_table`, `office_add_image`, `office_add_header_footer`, `office_add_toc`, `office_add_comment`, `office_accept_changes` **PPT Write:** `office_create_pptx`, `office_add_slide`, `office_set_slide_layout`, `office_add_text_box`, `office_add_chart`, `office_add_image` **Skills System:** `skill_run`, `skill_list`, `skill_validate`, `skill_register` **Coherence Engine:** `office_propagate_edit`, `office_check_consistency` **PDF:** `office_read` (markdown/text/json/chunks), `office_fill_pdf_form`, `office_list_pdf_fields`, `office_overlay_pdf_text`, `office_analyze_pdf_layout`, `office_export_pdf` --- ## Architecture ``` ┌────────────────────────────────────────────────────────┐ │ Tool Layer │ │ AI Reading · Excel/Word/PPT · PDF · Skills · Coherence│ ├────────────────────────────────────────────────────────┤ │ Format Engines │ │ calamine · rust_xlsxwriter · rdocx · office_oxide │ │ 6 Office formats + PDF (lopdf) │ ├────────────────────────────────────────────────────────┤ │ ZIP + XML + PDF Layer │ │ quick-xml (zero-copy) · zip · zlib-ng (SIMD) · lopdf│ ├────────────────────────────────────────────────────────┤ │ Semantic Layer │ │ Entity DAG · BFS propagation · Stale detection │ └────────────────────────────────────────────────────────┘ ``` --- ## Performance Benchmarks | Operation | Python | office-oxide-mcp | Speedup | |---|---|---|---| | 10M cell XLSX read (openpyxl) | 239s | ~25s | **~10×** | | 100K cell XLSX write (openpyxl) | 1.8s | 152ms | **~12×** | | DOCX read mean (6K docs) | 11.8ms | 0.8ms | **~14×** | | PPTX read mean (323 slides) | 32.5ms | 0.7ms | **~46×** | | MCP tool call (FastMCP) | 3ms | 0.38ms | **~6×** | | Cold start | 1-5s | <50ms | **~100×** | | Memory (idle) | 42.7MB | <2MB | **~20×** | --- ## Build ```bash cargo build # Debug cargo build --release # Release cargo clippy # Lint cargo doc --open # Docs ``` ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md). All contributions welcome. ## License MIT OR Apache-2.0 — see [LICENSE](LICENSE).