opendocswork-mcp
Rust-native MCP server for Office document processing (Excel, Word, PowerPoint).
Sub-millisecond, local-first, open source — the "open source Aspose."
Quick Start
cargo install opendocswork-mcp
Or download from GitHub Releases.
Claude Desktop
{
"mcpServers": {
"office": { "command": "opendocswork-mcp", "args": ["--transport", "stdio"] }
}
}
Cursor
{
"mcpServers": {
"opendocswork-mcp": { "command": "opendocswork-mcp", "args": ["--transport", "stdio"] }
}
}
VS Code (Copilot)
{
"servers": {
"opendocswork-mcp": { "command": "opendocswork-mcp", "args": ["--transport", "stdio"] }
}
}
Use Cases
Every document below was generated by opendocswork-mcp — click to download.
| # | Format | Use Case | Skill | Preview |
|---|---|---|---|---|
| 1 | XLSX | Profit & Loss Statement | excel.basic |
|
| 2 | XLSX | Executive KPI Dashboard | excel.basic |
|
| 3 | XLSX | Budget vs Actual Variance | excel.basic |
|
| 4 | XLSX | Balance Sheet with Ratios | excel.basic |
|
| 5 | XLSX | Revenue Forecast | excel.basic |
|
| 6 | XLSX | Cost Analysis | excel.basic |
|
| 7 | DOCX | Invoice | word.invoice |
|
| 8 | DOCX | Annual Business Report | word.report |
|
| 9 | DOCX | IT Service Agreement | word.report |
|
| 10 | DOCX | Digital Strategy Report | word.report |
|
| 11 | Financial Report Export | office_export_pdf |
Interactive showcase →
showcase/use-cases.htmlwith 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 | file_path, output_format |
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
Batch & PDF: office_batch_read, office_batch_convert, office_export_pdf, office_fill_pdf_form, office_list_pdf_fields
Architecture
┌────────────────────────────────────────────────────────┐
│ MCP Transport │
│ rmcp 1.7+ — stdio + Streamable HTTP │
│ 0.38ms per call · 4,845 RPS │
├────────────────────────────────────────────────────────┤
│ Tool Layer │
│ AI Reading · Excel/Word/PPT · Skills · Coherence │
├────────────────────────────────────────────────────────┤
│ OOXML Engine │
│ calamine · rust_xlsxwriter · rdocx · office_oxide │
│ 6 formats: DOCX/XLSX/PPTX/DOC/XLS/PPT │
├────────────────────────────────────────────────────────┤
│ ZIP + XML Layer │
│ quick-xml (zero-copy) · zip · zlib-ng (SIMD) │
├────────────────────────────────────────────────────────┤
│ Semantic Layer │
│ Entity DAG · BFS propagation · Stale detection │
└────────────────────────────────────────────────────────┘
Performance Benchmarks
| Operation | Python | opendocswork-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
cargo build # Debug
cargo build --release # Release
cargo clippy # Lint
cargo doc --open # Docs
Contributing
See CONTRIBUTING.md. All contributions welcome.
License
GNU General Public License v3.0 — see LICENSE.
Metadata
Release files for opendocswork-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| opendocswork_mcp-0.2.0.tar.gz | 16.8 kB | Without provenance | Details for opendocswork_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| opendocswork_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for opendocswork_mcp-0.2.0-py3-none-any.whl |
Total release size: 33.9 kB
Release files / opendocswork_mcp-0.2.0.tar.gz
| Download URL | opendocswork_mcp-0.2.0.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c74c6a1b82eaad9d3c5aa7df18bb29fb6792993d2bdda64759a72fd8aadb269
|
|
BLAKE2b-256 checksum How to use checksums |
55615e51c89b1e19651a81739132d5d08354a2aa73aa4ef179327b5bcdbfef00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / opendocswork_mcp-0.2.0-py3-none-any.whl
| Download URL | opendocswork_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 17.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3490e6dd36218b7513649eba9163c9c4d041990df869a37050477aef163304f9
|
|
BLAKE2b-256 checksum How to use checksums |
d19f9a7e86d8a35cd7efa766b88b2eb4e7269108ae99189f4e935d5274bdce0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for opendocswork-mcp 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.