Skip to content

v0.1.0.dev1 — first public pre-release

Pre-release
Pre-release

Choose a tag to compare

@H-Mon H-Mon released this 12 Sep 11:24
· 2 commits to main since this release

First public pre-release of DocuHand — the complete v0.1 tool set.

DocuHand is an MCP server that gives AI agents hands to operate real
Word & WPS documents on Windows via COM: 20-year-old .doc binaries,
documents currently open on screen, and print-fidelity PDF export
through the word processor's own layout engine.

Tools (7)

  • inspect_document — pre-flight health check: true format vs extension, lock state, page/word/paragraph counts, corruption & password detection, protection mode, bookmarks, field codes
  • convert_documents — batch .doc ↔ .docx conversion; Word→WPS automatic failover; per-file fault isolation; sources never deleted
  • fill_template — bookmarks / {{placeholders}} / content controls in auto mode; CJK font protection (NameFarEast); leftover-placeholder scan
  • export_pdf — print-fidelity PDF via ExportAsFixedFormat with a SaveAs(pdf) fallback for older engines; page-range grammar (all | 7 | 3-9)
  • extract_content — text / tables / outline from legacy .doc as structured JSON
  • edit_open_document — attaches to the user's live Word/WPS instance; resolves documents by path or window title; save="ask" never writes disk by default
  • merge_documents — one template × N data rows, per-row fault isolation, collision-free targets

Safety layer

  • DOCUHAND_ALLOWLIST path allowlist · DOCUHAND_READONLY global read-only mode · JSONL audit log
  • Pre-COM container & encryption gates — no modal-dialog hangs on headless servers

Install

uvx docuhand serve

Also on PyPI: https://pypi.org/project/docuhand/0.1.0.dev1/

Engine note: with WPS 12 signed in and cloud sync enabled, any file
opened by any automation (not just DocuHand) is auto-uploaded to WPS
cloud — local execution ≠ engine never uploads. Details in
docs/pitfalls.md #16.

Full changelog: CHANGELOG.md. This is a pre-release
(0.1.0.dev1) — the API surface may still shift before v0.1.0.