Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

all2md

by thomas-villaniversion 1.19.0i★ –iRuns on your computer
Registry nameio.github.thomas-villani/all2md

Install

Overview

Description from the maker (original English)

Read, convert, search, diff and outline PDF, Word, PowerPoint, HTML and 40+ formats as Markdown.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Docs, sheets & office work

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Download the maker’s .mcpb file

The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.

Run this in your terminal

claude mcp add all2md -- uvx all2md mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "all2md": {
      "command": "uvx",
      "args": [
        "all2md",
        "mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "all2md": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "all2md",
        "mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account thomas-villani, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Docs, sheets & office worki

  • More stars than 0% of the other 3544 servers in this category
  • Published to the registry more recently than 94% of the other 3544 servers in this category
  • Basic checks equal to or better than 100% of the other 3544 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is all2md safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.19.0) reached the registry yesterday.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv), MCPB on your computer.

What can I use instead?

In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Agent-Native Google Calendar - manage events, sync, and public booking

Runs in the cloud★ 7,620MITUpdated 2 months ago
Install

Excel MCP Server

by haris-musa

Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.

Runs on your computer★ 4,276MITUpdated 7 days ago
Install

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

Runs on your computer★ 847MITUpdated 4 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

all2md

Read, convert, search, and chunk PDFs, Office files, e-books, emails, and 40+ other formats, as Markdown and back again. From Python, from your terminal, or from your AI assistant.

A Word document, read in the terminal with all2md read .

Try it in ten seconds

With uv there is nothing to install first:

uvx --from "all2md[all]" rcat report.pdf          # read any document in the terminal

uvx --from "all2md[all]" all2md report.docx # print it as Markdown

Keep it around as a tool, with all2md, rcat and the all2md-mcp server on your PATH:

uv tool install "all2md[all]"

Or use it as a library:

uv add "all2md[pdf,docx]"      # or: pip install "all2md[pdf,docx]"
from all2md import to_markdown

markdown = to_markdown("report.pdf")

Pick your path

I want to…Start withRead
Read documents without leaving the terminalrcat report.docx, all2md read docs/Read in the terminal
Convert files, one or a thousand, in either directionall2md ./inbox -r --output-dir ./mdConvert
Parse documents in my Python codeto_markdown("report.pdf")Python API
Find text inside PDFs, Word files and slide decksall2md grep "deadline" contracts/ -rSearch
Feed documents to a RAG pipelineall2md chunk handbook.pdfRAG and chunking
Let Claude or another assistant work with my filesthe one-click Claude Desktop extensionAI assistants (MCP)
Know how far to trust the outputall2md report scan.pdfMeasured fidelity

Read documents in your terminal

rcat is cat for documents. It renders PDFs, Word and PowerPoint files (the 97-2003 .doc and .ppt too), spreadsheets, e-books, emails, notebooks, man pages and every other format all2md reads, with headings, tables, syntax-highlighted code, links with their targets, footnotes, math and admonitions. No browser, no office suite, and it works over SSH. If you reach for glow to read Markdown or doxx to read Word files, rcat is the same idea for every format.

rcat report.docx                              # read a Word document

rcat deck.pptx --outline # just the slide titles rcat handbook.pdf --extract "Installation" # one section, by heading rcat contract.pdf --pager # page through it curl -sL https://example.com/spec.pdf | rcat -

For anything longer, all2md read (or rcat -i) opens the interactive viewer shown above: an outline beside the text, jumps between headings, the links on screen, and, given a folder, a tree of the documents in it.

all2md read handbook.pdf

all2md read docs/ # choose from the documents in a folder

When you would rather have a browser, all2md view report.docx opens a styled HTML preview, all2md view ./docs -r browses a whole folder with on-demand conversion, and all2md edit notes.md opens a browser editor that saves back to the file.

Styling needs the cli_extras extra and the viewer needs tui; all2md[all] includes both. More in the viewer documentation.

Convert documents from the command line

Any supported format to Markdown, and Markdown back to DOCX, PDF, PPTX, HTML, EPUB and more:

all2md report.pdf > report.md                     # to Markdown on stdout

all2md answer.md --out answer.docx # Markdown (an LLM's output, say) to Word all2md ./inbox -r --output-dir ./markdown -p 4 # a whole tree, four at a time all2md ./inbox -r --output-dir ./markdown --watch # keep converting as files arrive all2md scan.pdf --pdf-ocr-enabled # scanned pages, through OCR

Every option of every converter is a CLI flag (all2md --help) or a key in a config file (all2md config generate). Every file command reads stdin and writes stdout with -, so all2md slots into pipelines. Word documents come out as Word shows them: tracked changes resolved by policy, comments with their anchors, footnotes, field results, merged cells, and the list numbers Word actually prints.

See the CLI reference and the cheat sheet.

Python API

to_markdown() handles the common case; convert() goes between any two formats; to_ast() gives you the parsed document to work with.

from all2md import to_markdown, convert, to_ast, from_ast

markdown = to_markdown("report.pdf", pages="1-3", flavor="gfm") convert("notes.md", "notes.docx", target_format="docx")

doc = to_ast("report.docx") # a typed document tree html = from_ast(doc, target_format="html")

The core has no dependencies; each format's extra pulls in only what that format needs. Options are typed dataclasses (PdfOptions, DocxOptions, …) or plain keyword arguments, and AST transforms (remove-images, heading-offset, your own) slot in between parsing and rendering. New formats and transforms plug in through entry points.

If you are an LLM with a coding environment, all2md llm-help prints usage guidance written for you, and all2md install-skills installs it as a skill for Claude Code, Cursor and others.

See the Python API guide, the AST guide, and examples/python.

Search inside any document

grep doesn't look inside a PDF or a .docx. all2md grep does, across any mix of formats, with the usual flags:

all2md grep -i "termination" contracts/ -r            # every format in the tree

all2md grep -C 2 "deadline" contracts/ -r --rich # with context, highlighted all2md search "renewal terms" ./contracts --keyword # ranked BM25 search all2md search "who approved the budget" ./minutes --hybrid all2md diff draft-v1.docx draft-v2.pdf # a colored diff, across formats

Vector and hybrid search need the search extra. Add --cache (or ALL2MD_CACHE=1) to reuse parsed documents across repeated runs.

RAG and chunking

all2md chunk converts and splits in one step. Each chunk carries its section heading and source page span, so answers can cite where they came from.

all2md chunk handbook.pdf --strategy semantic --max-tokens 512 --overlap 64 > chunks.jsonl
import all2md

for c in all2md.chunk("handbook.pdf", strategy="semantic", max_tokens=512, overlap=64): print(c.chunk_id, c.section_heading, c.page, c.token_count)

There are 11 strategies (semantic, heading, section, token, sentence, paragraph, code, …). Tables and code blocks are kept whole, and the output is JSONL ready for any vector store. Real token counts use tiktoken from the chunk extra. See the chunk command.

Give your AI assistant your documents

all2md ships a Model Context Protocol server, so an assistant like Claude can read your PDFs and Office files, write Word documents, edit them in place, search a folder, and compare two versions. You don't need to write any code.

In Claude Desktop (no Python or terminal needed):

  1. Download all2md.mcpb from the latest release.
  2. Open Claude Desktop → Settings → Extensions and drag the file onto the page.
  3. Choose the folder all2md may work in, and whether it may write files.
  4. Ask Claude about the documents in that folder.

Other MCP clients, and the developer configuration

The server is in the MCP Registry as io.github.thomas-villani/all2md. To run it yourself, use uvx (nothing to install):

{

"mcpServers": { "all2md": { "command": "uvx", "args": ["--from", "all2md[all]", "all2md-mcp", "--temp", "--enable-from-md"] } } }

or install it with uv tool install "all2md[mcp]" and use "command": "all2md-mcp". The [mcp] extra covers PDF, Word, PowerPoint, Excel, HTML, EPUB, ODF and reStructuredText; use [all] for everything.

Tools: read_document_as_markdown, save_document_from_markdown, edit_document, plus the read-only search_documents, diff_documents and get_document_outline.

See the MCP documentation for the options and the security model.

Measured fidelity

all2md's conversion quality is measured against independent ground truth, not asserted. Each benchmark lane is published with a control that shows what the measurement looks like when it *should* fail:

  • Born-digital PDFs: publisher PDFs from PubMed Central, scored against the JATS XML deposited beside them.
  • Scanned pages: 981 OmniDocBench pages against human annotation, for the OCR path.
  • Round trips: Markdown → format → Markdown must hold fidelity 100 for this repository's own docs, on every pull request.

Against other converters, on a sealed holdout of 103 PubMed Central articles scored with the same instruments (reading of 2026-08-29):

all2mdpymupdf4llm 1.28.2Docling 2.120.3
Recall of attainable text97.3%97.1%96.2%
Invented text (lower is better)0.55%6.26%2.05%
Table text preserved73.1%60.7%79.3%

Docling's learned table model still leads on tables. The [comparison lane](https://github.com/thomas-villani/all2md/tree/main/

Only the beginning is shown; read the rest in the repo

Ask PopNx