Skip to main content

paper2md

Precision PDF-to-Markdown converter for research papers.

Features

  • Title, author, and abstract extraction from diverse paper formats
  • Heading hierarchy detection via font size, weight, and allcaps analysis
  • Math rendering with CM font-to-LaTeX mapping (~120 symbols)
  • Tables detected via line-based layout, output in pipe format
  • Figures from raster (xref), vector (drawings), and clustered composites
  • References with bracket and alphanumeric key parsing
  • OCR fallback for scanned PDFs (PyMuPDF OCR or pytesseract)
  • Multi-column support via 1D clustering with adaptive thresholds
  • MCP server with tools for PDF conversion, structured extraction, and metadata

Installation

pip install paper2md

With MCP server support:

pip install paper2md[mcp]

With OCR support for scanned PDFs:

pip install paper2md[ocr]

Usage

CLI

paper2md paper.pdf -d output/

This writes the Markdown file and all extracted figure images to the output directory.

Python API

from paper2md import convert

result = convert("paper.pdf")
print(result.markdown)

MCP Server

paper2md exposes three MCP tools: convert_pdf, convert_pdf_structured, and extract_metadata. Configure your MCP client to launch paper2md.mcp_server.

Tested Formats

paper2md is tested against papers from the following venues and publishers:

arXiv, NeurIPS, CVPR, ICLR, IEEE, ACM, NAACL, Meta AI, DeepMind, JMLR, Nature, Springer

Requirements

  • Python 3.10+
  • PyMuPDF 1.24+

License

MIT

Metadata

Release files for paper2md 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for paper2md 0.1.0
File Size Uploaded
paper2md-0.1.0.tar.gz 90.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for paper2md 0.1.0
File Interpreter ABI Platform
paper2md-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 155.1 kB

Release files / paper2md-0.1.0.tar.gz

Download URL paper2md-0.1.0.tar.gz
Size 90.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3a38bd1018db8acb638d6b4329a99b9de02991ac8358aa57844e3b2b49506e29
BLAKE2b-256 checksum
How to use checksums
10093ab6bf1bdb6bb57265b0cf3bcc80587a48384a8f5fa45d52abc8477266cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Release files / paper2md-0.1.0-py3-none-any.whl

Download URL paper2md-0.1.0-py3-none-any.whl
Size 64.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
db2ce64a0a0992c838f4a5d68e7fbd46f6a85c754f236afc922d13793812ecdd
BLAKE2b-256 checksum
How to use checksums
3b632b5e81e0a8ed768667c7a2866a9da8f9053858ef665401a865318870d6a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page