Skip to main content
Glama

MCP-MinerU

PyPI version Python 3.10+ License

MCP server for document and image parsing via MinerU. Extract text, tables, and formulas from PDFs, screenshots, and scanned documents with MLX acceleration on Apple Silicon.

Installation

claude mcp add --transport stdio --scope user mineru -- \
  uvx --from mcp-mineru python -m mcp_mineru.server

This command installs and configures the server for all your Claude Code projects using uvx (no manual installation required).

Alternative methods: See Installation Guide for PyPI, source installation, and Claude Desktop configuration.

Related MCP server: PDF MCP Flow

Features

  • Multiple format support: PDF, JPEG, PNG, and other image formats

  • OCR capabilities: Built-in text extraction from screenshots and photos

  • Table recognition: Preserves structure when extracting tables

  • Formula extraction: Converts mathematical equations to LaTeX

  • MLX acceleration: Optimized for Apple Silicon (M1/M2/M3/M4)

  • Multiple backends: Choose speed vs quality tradeoffs

Quick Start

Parse a PDF document

User: "Analyze the tables in research_paper.pdf"
Claude: [Calls parse_pdf tool] "The paper contains 3 tables..."

Extract text from a screenshot

User: "What does this screenshot say? image.png"
Claude: [Calls parse_pdf tool] "The screenshot contains..."

Check system capabilities

User: "Which backend should I use?"
Claude: [Calls list_backends tool] "Your system has Apple Silicon M4..."

For more examples, see Usage Examples.

Tools

parse_pdf

Parse PDF and image files to extract structured content as Markdown.

Parameters:

  • file_path (required): Absolute path to file (PDF, JPEG, PNG, etc.)

  • backend (optional): pipeline | vlm-mlx-engine | vlm-transformers

  • formula_enable (optional): Enable formula recognition (default: true)

  • table_enable (optional): Enable table recognition (default: true)

  • start_page (optional): Starting page for PDFs (default: 0)

  • end_page (optional): Ending page for PDFs (default: -1)

list_backends

Check system capabilities and get backend recommendations.

Returns: System information, available backends, and performance recommendations.

Supported Formats

  • PDF documents (.pdf)

  • JPEG images (.jpg, .jpeg)

  • PNG images (.png)

  • Other image formats (WebP, GIF, etc.)

Performance

Benchmarked on Apple Silicon M4 (16GB RAM):

  • pipeline: ~32s/page, CPU-only, good quality

  • vlm-mlx-engine: ~38s/page, Apple Silicon optimized, excellent quality

  • vlm-transformers: ~148s/page, highest quality, slowest

Documentation

Development

git clone https://github.com/TINKPA/mcp-mineru.git
cd mcp-mineru
uv pip install -e ".[dev]"

# Run tests
pytest

# Format code
black src/
ruff check src/

License

Apache License 2.0 - see LICENSE file for details.

Acknowledgments

Built on top of MinerU by OpenDataLab.

Available Tools

2 tools
list_backendsB

Check system capabilities and list recommended backends for document and image parsing

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It merely states the function without disclosing behavioral details such as what 'system capabilities' includes, whether the operation is read-only, the return format, or potential error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundancy or filler. Every word contributes to conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description is incomplete. It does not explain the returned data format, how to interpret 'recommended backends,' or provide context for using the sibling parse_pdf, leaving the agent with insufficient guidance for effective invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema trivially covers everything. The description adds no parameter-specific semantics, but none are needed; baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with specific verbs 'check' and 'list' and identifies the resource (system capabilities, recommended backends). It effectively distinguishes from the sibling parse_pdf, which handles actual parsing rather than capability listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus parse_pdf or alternatives. The description implies checking capabilities before parsing, but it lacks explicit context, exclusions, or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_pdfA

Parse PDF and image files (PDF, JPEG, PNG, etc.) to extract text, tables, formulas, and structure using MinerU vunknown. Supports multiple backends including MLX-accelerated inference on Apple Silicon. Works with documents, screenshots, photos, and scanned images.

ParametersJSON Schema
NameRequiredDescriptionDefault
backendNoBackend to use: - pipeline: Fast, general-purpose (recommended for most cases) - vlm-mlx-engine: Fastest on Apple Silicon (M1/M2/M3/M4) - vlm-transformers: VLM model, slower but more accuratepipeline
end_pageNoEnding page number (-1 for all pages)
file_pathYesAbsolute path to the file to parse (supports PDF, JPEG, PNG, and other image formats)
start_pageNoStarting page number (0-indexed)
table_enableNoEnable table recognition
formula_enableNoEnable formula recognition

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for behavioral disclosure. It mentions supported formats and backend behaviors (e.g., MLX acceleration on Apple Silicon) but does not disclose output format, error handling, or any potential side effects. This is a moderate level of transparency—better than nothing but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: two sentences quickly state what the tool does, then add context about backends and use cases. There is no redundant or filler content. The minor oddity of 'vunknown' does not affect conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has six parameters and no output schema, the description covers the core functionality, supported input types, and backend options, which is largely sufficient for an agent to understand the tool's role. However, it does not explain return structure or potential limitations, leaving small gaps. Still, it's fairly complete for a parsing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already fully documented in the input schema. The description adds no new semantic details beyond repeating that PDF/JPEG/PNG files are supported and that tables/formulas are extracted, which are already present in the schema property descriptions. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool parses PDF and image files to extract text, tables, formulas, and structure. The specific verb 'Parse' and the listed resource types distinguish it from the sibling tool list_backends, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool—for documents, screenshots, photos, and scanned images—and notes backend options including Apple Silicon acceleration. However, it does not explicitly mention exclusions or compare against list_backends, so it's not a 5, but it offers sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.1.0
    • First observedlist_backends
    • First observedparse_pdf

TDQS

A3.9/5.0
Disambiguation5/5

parse_pdf and list_backends have completely distinct purposes: one performs the actual document/image parsing, while the other reports system capabilities. No overlap or ambiguity exists between them.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern in snake_case (parse_pdf, list_backends). The naming is predictable and uniform across the set.

Tool Count3/5

With only two tools, the server feels minimal for its stated purpose of document and image parsing. While the scope is narrow, a slightly more complete set (e.g., separate format detection or result retrieval) might be expected in a fuller-featured server.

Completeness5/5

For the domain of document parsing, parse_pdf covers the core extraction of text, tables, formulas, and structure across multiple file types, while list_backends addresses capability discovery. There are no obvious dead ends or missing critical operations within this focused scope.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TINKPA/mcp-mineru'

If you have feedback or need assistance with the MCP directory API, please join our Discord server