Almost every extraction tool covers PDF and Word. The reason to reach for this one is the long tail — Hangul documents, signed email, AppleWorks and Lotus files, images that need OCR — where the alternative is a manual conversion step. The trade is that documents go to the Unstructured API, so it is the wrong choice for anything you cannot send off the machine.
An MCP server that hands a model the contents of a document it otherwise cannot open. It calls the Unstructured partitioning API, so the format coverage is unusually wide: alongside the obvious PDF and Office files it handles email, ebooks, images, Hangul and Korean office formats, spreadsheets, and older formats like `.wk2` and `.dbf`. The author labels the repository work in progress.
- Text and structure extracted from a document so the model can reason over its content rather than its filename
- Documents: `.pdf`, `.doc`, `.docx`, `.odt`, `.rtf`, `.pages`, `.epub`, `.txt`, `.md`, `.rst`, `.org`, `.html`, `.htm`, `.xml`
- Spreadsheets and data files: `.xls`, `.xlsx`, `.xlsm`, `.xlsb`, `.csv`, `.tsv`, `.dif`, `.dbf`, `.fods`
- Presentations: `.ppt`, `.pptx`, `.pptm`, `.pot`, `.potm`
- Email and signed mail: `.eml`, `.p7s`
- Images that need reading rather than viewing: `.png`, `.jpg`, `.jpeg`, `.tiff`, `.bmp`, `.heic`, `.gif`, `.webp`, `.svg`
- Legacy and regional formats most extractors drop: `.hwp`, `.uof`, `.uos1`, `.uos2`, `.abw`, `.cwk`, `.mcw`, `.sdp`, `.sgl`, `.wk2`
An Unstructured API key in `UNSTRUCTURED_API_KEY`, placed in a `.env` in the project root — extraction happens on Unstructured's side, so document content leaves your machine and usage bills to that account. Clone the repository, set up the `uv` environment, and run `uv run doc_processor.py`; the client config points at the project directory with absolute paths. The README is explicit that this is work in progress.
