# MinerU Open MCP

Turns PDFs, images and Office files into Markdown from inside your agent chat. Useful when you need to feed a report or paper to the model.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 229
- Author: opendatalab
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/opendatalab/MinerU-Ecosystem
- Updated: 2026-09-22
- HTML: https://affpapa.org/en/nevibecode/mcp/mineru-open-mcp

## What it does

MinerU Open MCP is a Python server that exposes the MinerU Open API to your agent. Through it, Claude, Codex, Cursor and other clients read PDF, images, `doc`, `docx`, `ppt`, `pptx`, `xls`, `xlsx` and `html`, and get Markdown back. Formulas come out as LaTeX, tables as HTML, headers and footers are dropped, and reading order is preserved.

There are two modes. Precision Extract needs a token, accepts up to 200 MB and 200 pages, supports batch runs and returns Markdown, JSON or Zip with optional DOCX, HTML and LaTeX export. Quick Parse skips auth but caps at 10 MB and 20 pages, Markdown only, one file at a time. The token goes in `MINERU_API_TOKEN`, the output folder in `OUTPUT_DIR`.

It runs through `uvx`, so `uv` has to be installed first. Without a token the server still starts, but it hits the quick-mode limits — worth checking which path you actually need. For large scans and batch work, go with Precision Extract.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `MINERU_API_TOKEN`, `OUTPUT_DIR` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env MINERU_API_TOKEN=<MINERU_API_TOKEN> --env OUTPUT_DIR=<OUTPUT_DIR> --transport stdio mineru-open-mcp -- uvx mineru-open-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mineru-open-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add mineru-open-mcp --env MINERU_API_TOKEN=<MINERU_API_TOKEN> --env OUTPUT_DIR=<OUTPUT_DIR> -- uvx mineru-open-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mineru-open-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mineru-open-mcp": {
            "command": "uvx",
            "args": [
                "mineru-open-mcp"
            ],
            "env": {
                "MINERU_API_TOKEN": "<MINERU_API_TOKEN>",
                "OUTPUT_DIR": "<OUTPUT_DIR>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mineru-open-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mineru-open-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "mineru-open-mcp"
            ],
            "env": {
                "MINERU_API_TOKEN": "<MINERU_API_TOKEN>",
                "OUTPUT_DIR": "<OUTPUT_DIR>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mineru-open-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e MINERU_API_TOKEN=<MINERU_API_TOKEN> -e OUTPUT_DIR=<OUTPUT_DIR> mineru-open-mcp uvx mineru-open-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mineru-open-mcp <command>

## When to use it
- pull text out of a PDF with tricky layout and tables
- convert scans and handwritten pages to Markdown
- capture formulas from a research paper as LaTeX
- process a batch of Office files in one pass
- hand a web page's content to the agent without copy-paste

## Example prompts
- Parse `report.pdf` and save the Markdown to `./output/`
- Extract the tables from `paper.pdf` and export them as HTML
- Crawl this page and show me the text as Markdown

## Similar
- [liteparse](https://affpapa.org/en/nevibecode/skills/liteparse.md) — skill · 4100 installs
- [paddleocr-doc-parsing](https://affpapa.org/en/nevibecode/skills/freestylefly-paddleocr-doc-parsing.md) — skill · 369 installs
- [markitdown](https://affpapa.org/en/nevibecode/skills/julianobarbosa-markitdown.md) — skill · 1600 installs
- [markdown-converter](https://affpapa.org/en/nevibecode/skills/steipete-markdown-converter.md) — skill · 339 installs
- [PDF OCR Extraction](https://affpapa.org/en/nevibecode/skills/pdf-ocr-extraction.md) — skill · 5700 installs
- [nutrient-document-processing](https://affpapa.org/en/nevibecode/skills/nutrient-document-processing.md) — skill · 4500 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
