MinerU MCP Server
Summary: This MCP server lets you submit MinerU document-parsing jobs and retrieve structured Markdown/artifact results from URLs, local files, batches, and long PDFs.
Parse a single document URL with options for pipeline/VLM model, page ranges, OCR, formula/table recognition, language, and extra export formats.
Check task progress and obtain a download URL when parsing completes.
Submit and track batch parsing jobs for multiple document URLs with pagination.
Upload local files or scan a directory for batch parsing, preserving original filenames via
data_id.Download batch results into named folders containing Markdown, structured content JSON, and images.
Parse long documents by splitting them into ≤200-page slices, then merge the slices into one Markdown document with re-based page indexes and images.
Work with PDF, DOC/DOCX, PPT/PPTX, PNG, and JPG/JPEG inputs, subject to batch and upload size limits.
Provides document parsing capabilities for JPEG images (along with PNG, PDF, DOC, DOCX, PPT, PPTX formats) through the MinerU API, with support for OCR, formula recognition, table recognition, and page range selection across 109 languages.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MinerU MCP Server parse this PDF from pages 1-5 using VLM model with OCR enabled"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mineru-mcp
MCP server and mineru-cloud CLI for the MinerU document
parsing API, with complete artifact retention, durable operations, and portable
PDF bundles.
Version 2.0.0 is the first npm release with durable operations and portable
bundles. It requires Node.js 20 or newer; stay on mineru-mcp@1 for Node.js 18.
Features
VLM model — Document parsing with a vision-language model
Pipeline model — Document parsing with the pipeline model
Local file upload — Upload files from disk for batch parsing
Batch processing — Submit multiple documents in one request
Download & rename — Extract markdown with original filenames
Page ranges — Extract specific pages only
Long documents —
mineru_parse_longsubmits page-range slices andmineru_merge_slicesstitchesCLI twin —
mineru-cloudcalls the same tools from a shellLanguage and OCR options — Select a language and enable OCR for the pipeline model
Related MCP server: LandingAI ADE MCP Server
Tools
Tool | Description |
| Parse a document URL |
| Check task progress, get download URL |
| Parse multiple URLs |
| Get batch results with pagination |
| Upload local files for batch parsing |
| Retain complete archives, inventory all members, and create named compatibility copies |
| Submit a long document as a batch of page-range slices |
| Join available Markdown and retain immutable slice archives with explicit unknown page provenance |
| Read locally known capabilities; explicit refresh performs discovery |
| Submit with a durable local journal and duplicate-request protection |
| Read a recorded operation; explicit refresh checks remote status |
| Continue safe recorded checkpoints |
| Stop local processing; remote cancellation is unsupported |
| Validate and return an operation's retained bundle |
Installation
Use Node.js 24 for new installations. Node.js 20+ remains supported for compatibility. Cloud commands require a MinerU API key; offline bundle creation requires no credentials.
Local output retention, bundles, and durable operations require macOS or Linux. These paths use directory-bound filesystem operations and fail closed on Windows; the Windows client configuration below does not imply local retention support.
CLI Install (one-liner)
# Claude Code
claude mcp add mineru-mcp -e MINERU_API_KEY=your-api-key -- npx -y mineru-mcp
# Codex CLI (OpenAI)
codex mcp add mineru --env MINERU_API_KEY=your-api-key -- npx -y mineru-mcp
# Gemini CLI (Google)
gemini mcp add -e MINERU_API_KEY=your-api-key mineru npx -y mineru-mcpClaude Desktop
Add to your claude_desktop_config.json:
OS | Config path |
macOS |
|
Windows |
|
Linux |
|
{
"mcpServers": {
"mineru": {
"command": "npx",
"args": ["-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
}
}
}
}VS Code
Add to .vscode/mcp.json (workspace) or open Command Palette > MCP: Open User Configuration (global):
{
"servers": {
"mineru": {
"command": "npx",
"args": ["-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
}
}
}
}Note: VS Code uses
"servers"as the top-level key, not"mcpServers". Other VS Code forks (Trae, Void, PearAI, etc.) typically use this same format.
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"mineru": {
"command": "npx",
"args": ["-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
}
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json (Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json):
{
"mcpServers": {
"mineru": {
"command": "npx",
"args": ["-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
}
}
}
}Cline
Open MCP Servers icon in Cline panel > Configure > Advanced MCP Settings, then add:
{
"mcpServers": {
"mineru": {
"command": "npx",
"args": ["-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
}
}
}
}Cherry Studio
In Settings > MCP Servers > Add Server, set Type to STDIO, Command to npx, Args to -y mineru-mcp, and add environment variable MINERU_API_KEY. Or paste in JSON/Code mode:
{
"mineru": {
"name": "MinerU",
"command": "npx",
"args": ["-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
},
"isActive": true
}
}Witsy
In Settings > MCP Servers, add a new server with Type: stdio, Command: npx, Args: -y mineru-mcp, and set environment variable MINERU_API_KEY to your API key.
Codex CLI (TOML config)
Alternatively, edit ~/.codex/config.toml directly:
[mcp_servers.mineru]
command = "npx"
args = ["-y", "mineru-mcp"]
[mcp_servers.mineru.env]
MINERU_API_KEY = "your-api-key"Gemini CLI (JSON config)
Alternatively, edit ~/.gemini/settings.json directly:
{
"mcpServers": {
"mineru": {
"command": "npx",
"args": ["-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
}
}
}
}Windows
On Windows, npx requires a shell wrapper. Replace "command": "npx" with:
{
"command": "cmd",
"args": ["/c", "npx", "-y", "mineru-mcp"],
"env": {
"MINERU_API_KEY": "your-api-key"
}
}For CLI tools on Windows:
claude mcp add mineru-mcp -e MINERU_API_KEY=your-api-key -- cmd /c npx -y mineru-mcp
codex mcp add mineru --env MINERU_API_KEY=your-api-key -- cmd /c npx -y mineru-mcpChatGPT
ChatGPT only supports remote MCP servers over HTTPS — local stdio servers like this one are not directly supported. You would need to deploy behind a public URL with HTTP transport.
CLI: mineru-cloud
Every tool is also a shell command — the CLI runs the MCP server in-process over an in-memory
transport, so the two can't drift. Same env vars (MINERU_API_KEY, MINERU_BASE_URL,
MINERU_DEFAULT_MODEL).
mineru-cloud list # commands + options (from the tool schemas)
mineru-cloud parse --url https://arxiv.org/pdf/2303.08774 --pages 1-10
mineru-cloud status --task-id <id> --wait # --wait polls every 10s until done/failed
mineru-cloud batch --urls '["https://…/a.pdf","https://…/b.pdf"]'
mineru-cloud download-results --batch-id <id> --output-dir ./papers --wait
# Long document: slice, then stitch
mineru-cloud parse-long --url https://…/book.pdf --total-pages 520 --name book
mineru-cloud merge-slices --batch-id <id> --output-dir ./books --waitOptions mirror the tool parameters with _ → - (--total-pages, --output-dir); numbers,
true/false and JSON arrays are coerced. Install: bun add -g mineru-mcp (or npm i -g).
Offline artifact bundles
Create a portable Scholia v1.0.1 bundle from an existing provider ZIP and the exact source PDF. This command runs offline and does not require an API key:
mineru-cloud bundle --source /absolute/source.pdf --archive /absolute/result.zip \
--output /absolute/bundles --jsonThe command returns bundle_dir, an immutable directory containing bundle.json,
the original PDF, and the byte-identical ZIP. Move the entire directory for import.
Repeated inputs verify the existing bytes and return the same bundle. Optional
--batch-id and --model record caller-supplied metadata. --binding caller_asserted
records a qualified association; the default is unknown. Neither choice proves
that the provider parsed those exact PDF bytes. The command does not infer page
coverage, requested options, or provider versions from filenames.
Only PDF sources qualify for this bundle. Existing non-PDF cloud commands remain available and produce diagnostic inventories. Unsafe archives are retained in quarantine, outside importable bundles. ZIP64, encrypted archives, special files, ambiguous legacy filename encodings, and unsafe or colliding paths are rejected.
Complete downloads and structured status
download-results retains each ZIP under {name}/archives/<sha256>.zip and writes
an inventory.json covering every member, including unknown formats. It also
creates legacy {name}.md, {name}_content.json, and image copies when selection
is unambiguous. A missing or ambiguous Markdown file does not discard the archive.
No shell unzip executable is used. Inventory hashes expanded bytes incrementally;
selected compatibility copies have a separate 64 MiB size limit.
Use --json on lifecycle commands for structured operation IDs, normalized state,
pollability, counts, and errors. --wait uses typed state across the whole batch,
including entries outside the displayed page. It polls every 10 seconds for up to
30 minutes. A failed entry does not hide other pending entries. Unknown provider
states remain explicit. Exit status is 1 for failure and 2 for partial or unknown
results. The 8 existing MCP tool names and their CLI commands remain available.
Slice merges retain each archive under a hash-qualified directory. Earlier image links remain valid after a successor merge. The merged content JSON is a slice receipt with archive references, rather than a flattened array with assumed page offsets. Missing Markdown or failed slices produce an explicit partial result; otherwise coverage and original PDF page provenance remain unknown.
Durable standalone operations
The 6 additional commands share their implementation with MCP:
mineru-cloud capabilities --api v4 --json
mineru-cloud submit --file /absolute/source.pdf --api v4 --model vlm --output-dir /absolute/results --json
mineru-cloud operation-status --operation-id ID --json
mineru-cloud resume --operation-id ID --wait --wait-timeout-seconds 1800 --json
mineru-cloud cancel --operation-id ID --json
mineru-cloud bundle --operation-id ID --jsonMINERU_STATE_DIR selects the journal root; the default is
~/.local/share/mineru-cloud. Keep that directory for recovery. The journal
retains source bytes, request fingerprints, remote IDs, completed output hashes,
and phase checkpoints. Credentials and signed URLs stay in process memory.
Exact duplicate submissions join the recorded operation. A lost allocation or
job ID requires reconciliation and never triggers automatic resubmission.
An ambiguous V4 upload with a saved batch ID resumes by polling that batch.
V1 inspects a known upload before continuing an uncertain completion.
One process holds the writer lock at a time. Normal dead-process locks can be reclaimed with an owner-token check. An interrupted lock-recovery step or a reused PID fails closed with an explicit busy/recovery error. This filesystem journal is separate from Scholia's SQLite lease and reservation system; it does not claim Scholia's worker scheduling or maintenance guarantees.
operation-status reads locally unless --refresh is supplied. resume continues
a safe checkpoint. Finalization uses saved outputs without contacting the provider.
Local cancellation does not cancel remote processing or remove uploaded data.
Remote cancellation and automatic lost-ID association remain unsupported.
Completed bundles preserve archives and every detached output, including unknown
formats. Provider transport completion does not establish full PDF page coverage.
V4 durable submit --pages 1-2,5 accepts positive pages and inclusive ranges.
The request is limited to 16 KiB and 1,024 comma-separated intervals; zero,
descending ranges and numbers outside the JavaScript safe-integer range fail
before source acquisition or provider calls. The original text stays in the
operation identity and provider options. New bundles record sorted, coalesced
requested intervals, all with unknown coverage. This intent does not establish
completed or missing pages, a page map, or full document coverage.
Exact replay of an older ranged operation preserves its original bundle bytes, including its unknown requested scope. A verified later output recovery may publish a successor with normalized range intent and the original predecessor hash. New ranged bundles use a separate writer identity; conflicting occupied addresses and missing recorded bundles fail closed rather than rewriting an earlier receipt. Older selectors outside current admission bounds can only replay a verified existing legacy receipt. They cannot publish a new or enriched bundle or authorize a provider action.
When one output remains unavailable after bounded download attempts, the operation
publishes a partial bundle containing the verified successes and typed failure
details. bundle --operation-id ID can return that retained evidence. An explicit
later resume may recover missing outputs from the same operation and publish a
successor; earlier bundles remain immutable. A partial result is not permission
to submit the document again.
New operation commands use a structured Result envelope in CLI JSON and MCP
structuredContent, while retaining the existing flattened fields for
compatibility. Their CLI exit codes are 0 for ok, 1 for partial or error,
and 2 for invalid arguments. The original eight commands retain their historical
error=1 and partial=2 exit codes. Offline bundle --source ... --archive ...
also retains its existing created/existing receipt shape. Check status,
state, and recovery details rather than interpreting a nonzero exit as
permission to resubmit.
The process-restart tests kill workers at actual source, submission-intent, output-retention, and finalization checkpoints. Verified source orphans created before the first journal can be adopted safely; uncertain remote submissions cannot. Source/output writes are synced before their journal references. These tests establish bounded process-crash behavior, not a universal power-loss or network-filesystem durability guarantee.
The modern V1 adapter uses uploads, parse/jobs, and files/{id}/content.
It does not use the older agent/parse API. Explicit capability refresh queries
health and the separate tiers endpoint. No V4 model is mapped to a V1 tier.
V1 range parsing is unsupported. Hosted V1 execution remains disabled by default
until endpoint-specific validation; fixture tests can inject an adapter.
New network calls require public HTTPS addresses. DNS results are checked and
pinned at connection time; redirects are revalidated and lose API authorization.
Transfer URLs receive only explicitly supplied headers. Private/self-hosted
endpoints require a separately implemented trust policy and are not enabled here.
New submit currently accepts PDFs; the original 8 commands retain non-PDF support.
There is no account quota reservation, automatic scheduler, or operator UI for
uncertain-operation association in this standalone milestone.
Official protocol references are the pinned V1 guide, pinned example, and pinned API server schema. The current guide was checked on September 30, 2026. All new execution behavior is fixture-tested; no live provider validation, version bump, or release is claimed.
Configuration
Environment Variable | Default | Description |
| (required) | Your MinerU API Bearer token |
|
| API base URL |
|
| Default model: |
Get your API key at mineru.net
Usage
Parse a single URL
mineru_parse({
url: "https://example.com/document.pdf",
model: "vlm", // optional: "pipeline" (default) or "vlm"
pages: "1-10,15", // optional: page ranges
ocr: true, // optional: enable OCR (pipeline only)
formula: true, // optional: formula recognition
table: true, // optional: table recognition
language: "en", // optional: language code
formats: ["html"] // optional: extra export formats
})Check task progress
mineru_status({
task_id: "abc-123",
format: "concise" // optional: "concise" (default) or "detailed"
})Concise output: done | abc-123 | https://cdn-mineru.../result.zip
Batch parse URLs
mineru_batch({
urls: ["https://example.com/doc1.pdf", "https://example.com/doc2.pdf"],
model: "vlm"
})Check batch progress
mineru_batch_status({
batch_id: "batch-123",
limit: 10, // optional: max results (default: 10)
offset: 0, // optional: skip first N results
format: "concise" // optional: "concise" or "detailed"
})Upload local files
mineru_upload_batch({
directory: "/path/to/pdfs", // scan directory for supported files
// OR
files: ["/path/to/doc1.pdf", "/path/to/doc2.pdf"], // explicit file list
model: "vlm", // optional
formula: true, // optional
table: true, // optional
language: "en", // optional
formats: ["html"] // optional
})Returns batch_id for tracking. Each file's original name is preserved via data_id (spaces become underscores).
Download results as markdown
mineru_download_results({
batch_id: "batch-123", // from mineru_upload_batch or mineru_batch
output_dir: "/path/to/output",
overwrite: false // optional: overwrite existing files
})Output filenames are derived from data_id (e.g., my_paper_title.md). Spaces in original filenames become underscores.
Typical local file workflow
mineru_upload_batch → mineru_batch_status (poll) → mineru_download_resultsSupported Formats
PDF, DOC, DOCX, PPT, PPTX
PNG, JPG, JPEG
Local limits and provider evidence
Legacy batch commands enforce at most 200 items; legacy local uploads reject
files over 200 MiB. parse-long limits each requested slice to 200 pages. These
are current implementation guards, not verification of a provider account's
current limits, quota, queue priority, or supported plan. Check those separately
when a cloud task is authorized. This checkout's synthetic tests do not measure
hosted parsing accuracy, speed, or language coverage.
Release 2.0.0
Breaking: the minimum runtime is now Node.js 20 (Node.js 18 is end-of-life).
Node.js 18 users should pin mineru-mcp@1.
Moves from the v1 MCP TypeScript SDK (
@modelcontextprotocol/sdk1.29) to the v2 packages@modelcontextprotocol/server,@modelcontextprotocol/clientand@modelcontextprotocol/node. Tool names and inputs and both transports are unchanged. Advertised tool input schemas now declare JSON Schema 2020-12 instead of draft-07 and no longer carryexecution.taskSupport. Input validation errors no longer start withMCP error -32602:.First npm release of the work merged since 1.2.0: durable operations (
mineru_capabilities,mineru_submit,mineru_operation_status,mineru_resume,mineru_cancel,mineru_bundle) with a local journal and checkpoint recovery, complete archive retention and portable PDF bundles, structured lifecycle results on the legacy tools, and offlinemineru-cloud bundle.Dependency refresh:
bun auditreports no known vulnerabilities in the locked tree at release time.
Release 1.1.6
Restores Node.js 18 HTTP compatibility for fresh installs by retaining MCP SDK 1.29.x and its Node 18-compatible Hono adapter. SDK 1.30 permits an adapter that requires Node.js 20. Version 1.1.5 passed the locked dependency checks but the published-package check exposed an HTTP initialization failure on a fresh install. CI now installs the packed package without the repository lock and exercises both transports on Node.js 18. The SDK compatibility bound is intentional; revisit it with this consumer-install gate before adopting a newer SDK.
Release 1.1.5
Maintenance release: audited dependency updates, Express 5 and Zod 4 compatibility, and regression coverage for both transports. The MCP handshake and HTTP startup message now report the package version instead of the stale 1.0.2 value. Tool inputs and document-processing behavior are unchanged.
Development
Read AGENTS.md for the canonical contributor handoff, task authority, recovery invariants and paired Scholia fixture/integration checks.
Use Bun 1.4.2 and the recommended Node.js 24 runtime for development:
bun install --frozen-lockfile
bun audit
bun run build
bun run test
bun run test:packageThe tests use synthetic fixtures and local MinerU API doubles. They exercise the built stdio and HTTP servers, durable operation recovery, exact artifact retention, bundle identity, and filesystem containment without real credentials or provider calls. Temporary fixtures use the canonical system temp directory on macOS and Linux. These checks do not establish live-provider parsing accuracy.
On PRs to main, version-tag pushes and manual registry recovery, CI audits
dependencies, builds, and runs the full suite on both macOS and Linux
with Node.js 24. Each platform also installs a fresh packed package without the
repository lock and tests it on Node.js 20. This consumer-install gate preserves
the Node 20 minimum: it fails if any resolved dependency requires a newer Node.js
major or if the v1 MCP SDK returns transitively. Dependabot updates the Bun manifest and lockfile
together. Ordinary pushes to main do not trigger this workflow.
Publishing
With explicit release authorization, bump package.json, the top-level version
in server.json, and its matching npm package
versions, complete the checks above, merge, then push the matching vX.Y.Z tag.
Before publication, CI requires the tag and all of these versions to match.
The existing ci check requires every macOS/Linux verification job to pass
before the separate publishing job
can run. CI resolves the requested checkout once, then verifies and publishes
that exact commit. Publication uses Node.js 24 and GitHub OIDC: it publishes to
npm, waits for the exact package version to become available, then registers
it with the MCP Registry.
If registry registration fails after npm succeeds, retry only registration using
the existing immutable tag:
gh workflow run publish-mcp.yml --ref main -f registry_tag=vX.Y.ZReplace vX.Y.Z with the already-published tag. Recovery resolves
refs/tags/vX.Y.Z, verifies that tag's checkout, skips npm publication, and
retries only MCP Registry registration.
License
MIT
Links
MinerU — Document parsing service
MinerU GitHub — Open source version
MCP Specification — Model Context Protocol
Available Tools
8 toolsmineru_batchA
Parse multiple URLs in one batch (max 200). Preferred over mineru_upload_batch — faster and more reliable. Use public URLs (arXiv, SSRN, publisher sites) when available.
Inputs: urls (required), ocr, model, table, +3 more.
mineru_batch_statusC
Get batch results. Supports pagination for large batches.
Inputs: batch_id (required), limit, format, offset.
mineru_download_resultsA
Download batch results and extract named paper folders. Each folder contains {name}.md, {name}_content.json (structured TOC), and images/. Output includes parsed title — verify it matches the expected paper.
Inputs: batch_id (required), output_dir (required), overwrite.
mineru_merge_slicesA
Stitch the slices of a mineru_parse_long batch into one {name}/{name}.md (+ {name}_content.json with page_idx re-based to the whole document, + images/). Slices are ordered by their page range; each is marked with an HTML comment. Waits for nothing — if any slice is still processing, it reports and you re-run later.
Inputs: batch_id (required), output_dir (required), overwrite.
mineru_parseB
Parse a document URL. Returns task_id to check status.
Inputs: url (required), ocr, model, pages, +4 more.
mineru_parse_longA
Parse a document LONGER than 200 pages (MinerU's per-file cap) by submitting it as one batch of ≤200-page slices with page_ranges. Give total_pages (from mdls -name kMDItemNumberOfPages, pdfinfo, or the viewer) — it is auto-detected only for local files on macOS. Returns a batch_id; poll with mineru_batch_status, then stitch with mineru_merge_slices. Files ≤200 pages: use mineru_parse instead.
Inputs: ocr, url, file, name, +6 more.
mineru_statusB
Check task progress. Returns download URL when done.
Inputs: task_id (required), format.
mineru_upload_batchA
Upload local files for batch parsing. SLOW: uploads can take minutes and may timeout. Prefer mineru_batch with public URLs (arXiv, SSRN, publisher sites) when available — it's faster and more reliable. Only use this for files not available online.
Inputs: files, model, table, formats, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool targets a distinct action or resource: status checking, single parse, batch parse, batch status, local upload, result download, slice merging, and long-document parsing. The descriptions explicitly clarify when to use each, especially the overlap between mineru_parse/mineru_parse_long and mineru_batch/mineru_upload_batch, leaving no ambiguity.
All tool names share the 'mineru_' prefix, but the second part mixes verbs (parse, upload, download, merge) with nouns (status, batch, results). This is readable and predictable, though not strictly verb_noun like the calibration example. The minor inconsistency (e.g., 'mineru_batch_status' vs 'mineru_status') does not cause confusion.
With 8 tools, the server covers the core document parsing workflow without excess. Each tool has a clear role: parsing (single/batch/long), status checks, result retrieval, and local file upload. This is well-scoped for the domain.
The tool set covers the full parse lifecycle: submit, check status, download results, and merge slices for long documents. The only notable gap is the lack of a direct single-local-file parse path (requires using upload_batch even for one file), but this is a minor workaround and does not severely impede agents.
Maintenance
Related MCP Connectors
Extract text, pages and metadata from PDFs in bulk, with OCR for scanned files.
Parse PDF/Word/PPT/HTML to Markdown; tables as JSON, image extraction, RAG chunking, page ranges.
Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
Convert PDF, Word, Excel and scanned documents to Markdown, tables and RAG chunks. OCR.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables batch conversion of PDF files to HTML format using Mineru's official PDF parsing API. Supports automatic file scanning, customizable parsing parameters, and organized output with renamed image assets.-
- FlicenseNot gradedqualityDmaintenanceEnables extraction of text, tables, and structured data from PDFs, images, and office documents using LandingAI's Agentic Document Extraction API. Supports both direct parsing and background job processing for large files with privacy-focused processing.-
- AlicenseNot gradedqualityDmaintenanceEnables document parsing through the Mineru API with support for multiple formats (PDF, DOC, DOCX, PPT, images), OCR, formula recognition, and table extraction in multiple languages.1ISC
- AlicenseBqualityDmaintenanceConverts documents (PDF, Word, PPT, images, HTML) to Markdown via MinerU API. Supports URL and local file inputs with OCR, formula/table recognition, and automatic large file handling.55MIT