Skip to main content
Glama
eren0315
by eren0315

Nano PDF MCP

A memory-efficient Model Context Protocol (MCP) server for reading and splitting large PDF files.
Built with fastmcp and pymupdf (PyMuPDF).

English | 한국어

Tools

Tool

Description

get_pdf_info

Retrieves file metadata and total page count — Use this before calling read_pdf

read_pdf

Extracts text by streaming the specified page range

split_pdf

Creates a new PDF with only the specified pages

save_markdown_summary

Saves AI-summarized content to a .md file

1. get_pdf_info(filepath) → Check total page count
2. read_pdf(filepath, start_page, end_page) → Read text
3. save_markdown_summary(output_filepath, markdown_content) → Save summary

Related MCP server: pdf-mcp

Installation

No need to clone or install locally!
If uv is installed, it runs instantly with a single command below.

Installing uv (If not installed)

  • macOS / Linux:

    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows:

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Claude Desktop

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "nano-pdf-mcp": {
      "command": "uvx",
      "args": ["nano-pdf-mcp"]
    }
  }
}

Antigravity

Add the following to your .gemini/settings.json:

{
  "mcpServers": {
    "nano-pdf-mcp": {
      "command": "uvx",
      "args": ["nano-pdf-mcp"]
    }
  }
}

Architecture

  • Memory Efficiency: Streams and processes large PDFs page by page (no full loading into memory)

  • Fast Splitting: Copies only C-level pointers via insert_pdf — no re-encoding

  • Safe Logging: All logs are output to stderr (prevents stdio communication pollution)

  • Clear Errors: Instantly returns error messages for invalid ranges/paths

Available Tools

3 tools
read_pdfA

Reads text from a specific range of pages in a PDF file in a memory-efficient way. It streams pages one by one without loading the entire document into memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_pageYesThe page number to stop reading at (1-based index, inclusive)
filepathYesAbsolute path to the PDF file to read
start_pageYesThe page number to start reading from (1-based index)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses memory-efficient streaming behavior and that it reads text (not modifies). Adds context beyond input schema.

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?

Two sentences, front-loaded with main action, efficient and no wasted words.

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?

For a simple read tool with full schema and output schema, description adequately covers behavior and efficiency. Could mention error handling but not necessary.

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 baseline is 3. Description does not add additional meaning to parameters beyond what schema provides.

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?

Clearly states verb 'reads', resource 'PDF file', and scope 'specific range of pages'. Distinct from siblings (save_markdown_summary, split_pdf) which serve different purposes.

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?

Description implies usage for reading PDF text from a page range, but does not explicitly state when to use or exclude alternatives. Sibling tools have different functions, making context clear.

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

save_markdown_summaryA

Saves organized, AI-summarized, or extracted markdown content to a file. Use this tool after reading a PDF to document findings without retaining the original PDF's garbage layout.

ParametersJSON Schema
NameRequiredDescriptionDefault
output_filepathYesAbsolute path where the markdown (.md) file should be saved
markdown_contentYesThe markdown formatted content to save

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It does not specify what happens if the file already exists, required permissions, or any constraints on content size. The mention of 'garbage layout' implies cleanup but lacks concrete details.

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

Conciseness4/5

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

Two concise sentences, front-loaded with purpose. No unnecessary words, though could benefit from breaking into bullet points for clarity.

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

Completeness3/5

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

Given the tool's simplicity (2 params, no annotations), the description covers basic usage but lacks details on error handling, file overwrite behavior, or output format, leaving gaps for an AI agent.

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 coverage is 100%, so baseline is 3. The description adds minor context (e.g., 'AI-summarized' content) but does not significantly enhance understanding of the parameters beyond the schema's descriptions.

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 identifies the tool's function: saving organized markdown content to a file. It differentiates from sibling tools (read_pdf, split_pdf) by focusing on output rather than input processing.

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?

Explicitly advises using this tool after reading a PDF to cleanly document findings. While it does not list when not to use it or alternatives, the context is sufficient for basic guidance.

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

split_pdfA

Creates a new PDF containing only the specified page ranges from the source PDF. This operation is extremely memory efficient as it copies C-level pointers rather than re-encoding the content.

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesAbsolute path to the source PDF file
page_rangesYesComma-separated list of page ranges (e.g., '1-5, 8, 11-13')
output_filenameYesAbsolute path where the output PDF should be saved

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description adds behavioral context: mentions memory efficiency and that it copies C-level pointers. This goes beyond the schema. It implies non-destructive behavior ('creates a new PDF'), but could disclose more (e.g., no modification of source).

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?

Two sentences with clear function followed by a performance note. No unnecessary words; both sentences earn their place.

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?

The tool is simple with 3 parameters and no nested objects. An output schema exists (not shown but indicated), so return values are covered. The description explains the core function and a key performance trait. Could mention error handling or modification behavior, but adequate.

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 the schema already describes each parameter. The description adds no additional parameter-level information beyond what the schema provides. Baseline 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?

Clearly states 'Creates a new PDF containing only the specified page ranges' with a specific verb ('creates') and resource ('new PDF with specified pages'). Distinct from siblings read_pdf (read operations) and save_markdown_summary (different output format).

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

Usage Guidelines3/5

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

The description implies usage for extracting page ranges but provides no explicit 'when to use vs alternatives' or 'when not to use'. The memory efficiency hint is a characteristic, not usage guidance.

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

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: read_pdf extracts text, save_markdown_summary saves a summary, and split_pdf creates a new PDF from page ranges. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (read_pdf, save_markdown_summary, split_pdf), making them predictable and easy to understand.

Tool Count4/5

With 3 tools, the server is somewhat minimal but still appropriate for its focused purpose of PDF text extraction and splitting. It could benefit from additional tools like merge or annotation, but the count is reasonable.

Completeness3/5

The tool set covers basic PDF operations (reading, splitting, saving output) but lacks common features like merging, converting formats, or extracting images, leaving notable gaps for a general PDF tool.

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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables comprehensive PDF analysis and manipulation including page size analysis, chapter extraction, splitting, compression, merging, and conversion to images. Provides both MCP server interface for AI assistants and Streamlit web interface for direct user interaction.
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server for reading, rendering, and searching PDF files, specifically optimized for LLMs to extract text, tables, and technical diagrams. It enables metadata retrieval, multi-format text extraction, and page-to-image rendering using PyMuPDF.
    5
    77
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for extracting text from PDF files, supporting local files and URLs.

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/eren0315/nano-pdf-mcp'

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