Skip to main content
Glama

liteparse-mcp

Fast, local PDF parsing as an MCP server — text extraction, bounding boxes, OCR, and visual citations. No cloud. No API key. Powered by LiteParse.

PyPI Python 3.10+ License: MIT


Tools

Tool

Description

parse_pdf

Extract text + bounding boxes (x, y, width, height in PDF points) from a PDF

batch_parse_pdfs

Parse every PDF in a folder; write JSON + screenshots per file

screenshot_pdf

Render pages as base64 PNG images

cited_screenshot

Render a page with highlight boxes drawn over every text item

search_pdf

Find a phrase and return all matching positions with coordinates

Bounding-box coordinates are in PDF points (1 pt = 1/72 in), origin top-left. To convert to pixels: px = pt × (dpi / 72).


Related MCP server: pdf-reader-mcp

Install

pip install liteparse-mcp

Usage

Claude Desktop

Add to ~/AppData/Roaming/Claude/claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "liteparse": {
      "command": "liteparse-mcp"
    }
  }
}

Or with the explicit Python path (if liteparse-mcp is not on PATH):

{
  "mcpServers": {
    "liteparse": {
      "command": "python",
      "args": ["-m", "liteparse_mcp"]
    }
  }
}

Restart Claude Desktop — the five tools appear automatically.

Claude Code

claude mcp add liteparse -- python -m liteparse_mcp

HTTP / SSE (for remote agents or testing)

liteparse-mcp --http
# Server listens on http://127.0.0.1:8765

Example agent prompts

  • "Parse report.pdf and show me where 'efficacy' appears with bounding boxes"

  • "Get a cited screenshot of page 3 of study.pdf"

  • "Batch parse every PDF in my Downloads folder and save the output"

  • "Search safety_data.pdf for 'adverse event' and list the page numbers"


Outputs (batch mode)

For each PDF, batch_parse_pdfs writes:

<output_folder>/
  <stem>/
    pages.json          # structured JSON: page text + TextItem bounding boxes
    summary.txt         # plain text of the whole document
    page_1.png          # raw page screenshot
    page_1_cited.png    # screenshot with bounding-box highlights
    ...
  batch_report.json     # overall success / error summary

Requirements

  • Python ≥ 3.10

  • liteparse ≥ 2.0.0 (Rust-based; wheels available for Windows, macOS, Linux)

  • fastmcp ≥ 2.0.0

No Tesseract installation required for text-based PDFs. For scanned PDFs with ocr_enabled=true, Tesseract is used automatically if available on PATH.


License

MIT

Available Tools

5 tools
batch_parse_pdfsA

Parse all PDFs in a folder. For each PDF, writes to //: pages.json – text + bounding boxes per page summary.txt – plain text of the whole document page_N.png – raw page screenshot page_N_cited.png – screenshot with bounding-box highlights

Returns a JSON summary of successes and any errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathYesAbsolute path to folder containing PDF files.
max_workersNoPDFs to process in parallel. Default 4.
ocr_enabledNoRun OCR on image-based pages.
output_folderNoWhere to write outputs. Defaults to <folder>/liteparse_output/

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It transparently lists all output artifacts (pages.json, summary.txt, PNGs) and states that a JSON summary is returned. It does not mention potential overwrite behavior or whether the output folder is created automatically, but the write side effects are clearly disclosed.

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 tightly structured with a clear lead sentence followed by a bullet-style list of output files. There is no redundant prose, and every sentence contributes functional information. This is an example of efficient, well-organized documentation.

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 batch processing tool with four parameters and an output schema, the description covers the main inputs and outputs effectively. It lacks some edge-case details like non-recursive folder scanning or failure handling for individual PDFs, but the 'successes and any errors' summary and parameter schema fill most gaps. A 5 would require explicit statements about overwrite behavior or scope limitations.

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 input schema already covers all four parameters at 100% description coverage, providing a baseline of 3. The tool description adds value by concretely demonstrating how output_folder is used in the file path '<output_folder>/<stem>/' and what files result, going beyond the schema's short 'Where to write outputs' description.

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: 'Parse all PDFs in a folder' and enumerates the exact output files. It distinguishes itself from sibling tools (parse_pdf, screenshot_pdf, cited_screenshot) by focusing on batch folder processing rather than single-document or individual screenshot operations.

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 phrase 'all PDFs in a folder' clearly implies this tool is for batch scenarios, contrasting with the singular parse_pdf sibling. However, it does not explicitly state alternatives or when not to use this tool (e.g., if only one PDF needs processing), so it falls short of a 5.

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

cited_screenshotA

Render a single PDF page as a PNG with bounding-box highlights drawn over every extracted text item (or only items matching search_phrase).

Returns JSON: { "page_num", "width_px", "height_px", "items_highlighted", "image_base64" }

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNoScreenshot resolution in DPI. Default 150.
pdf_pathYesAbsolute path to the PDF file.
page_numberNoPage to render (1-based).
search_phraseNoIf given, only highlight text items matching this phrase.
highlight_color_rgbNoHighlight colour as 'R,G,B' (0-255 each). Default '255,100,0' (orange).255,100,0

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?

Since no annotations are present, the description must carry the burden. It accurately describes the core behavior: rendering a page, drawing highlights on extracted text items, and returning a JSON with an image. It also specifies the filtering behavior of search_phrase. It does not cover edge cases (e.g., out-of-range page_number), but the main behavior is transparent.

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 with the primary purpose, immediately followed by the return format. Two sentences efficiently cover the tool's function and output, with no filler or redundant repetition of schema fields.

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 description, combined with the fully documented schema, provides a complete picture of the tool's purpose, parameters, and return format. It lacks some context about error handling or performance, but these are not critical for a simple rendering tool. The inclusion of the return JSON structure in the description enhances completeness.

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 documented. The description adds minimal semantic value beyond the schema; it restates the search_phrase filtering behavior and output format, but does not clarify parameter-level details like coordinate format or color validation, which are already in the schema.

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 a specific action ('Render a single PDF page as a PNG') with a distinctive feature (bounding-box highlights over extracted text items, optionally filtered by search_phrase). This differentiates it from siblings like screenshot_pdf (likely without highlights) and parse_pdf (text extraction).

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: when you need a rendered PDF page with highlights for visual inspection or verification. However, it does not explicitly state when to use this tool over alternatives (e.g., screenshot_pdf for plain rendering). No exclusions or alternative tool references are provided.

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

parse_pdfA

Parse a PDF and return structured text plus bounding boxes for every text item on every page.

Bounding-box coordinates are in PDF points (1 pt = 1/72 inch), with the origin at the top-left corner of each page.

Returns JSON: { "pages": [ { "page_num", "width_pts", "height_pts", "text", "text_items": [ { "text", "x", "y", "width", "height", "font_name", "font_size", "confidence" } ] } ] }

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNoResolution used internally (affects OCR quality). Default 150.
pagesNoComma-separated page numbers, e.g. '1,3,5'. Omit for all pages.
pdf_pathYesAbsolute path to the PDF file to parse.
ocr_enabledNoRun OCR on image-based / scanned pages.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so effectively by specifying the coordinate system (PDF points, top-left origin), the exact JSON return structure, and the optional OCR behavior for scanned pages. It does not, however, disclose any potential side effects, error conditions, or performance implications, which keeps it from a 5.

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?

The description is well-structured: a clear one-sentence purpose, a concise coordinate-system note, and a detailed JSON example. The JSON block adds clarity but is slightly redundant given the output schema, yet it is readable and every section earns its place, so it merits a 4 rather than a 5.

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 has four parameters and a rich output schema, and the description provides substantial context: what it does, the unit and origin for coordinates, the JSON structure, and OCR usage. It lacks guidance on edge cases or failure modes, but for typical usage it is complete enough for an agent to select and invoke the tool correctly.

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?

The schema provides 100% coverage of all four parameters (dpi, pages, pdf_path, ocr_enabled) with descriptions, so the schema already conveys their meaning. The tool description adds no additional parameter-specific context, such as how pages interacts with other parameters or detailed OCR trade-offs, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool parses a PDF and returns structured text plus bounding boxes for every text item on every page, which is specific and unambiguous. However, it does not explicitly distinguish this from the sibling tool batch_parse_pdfs, which likely handles multiple PDFs, so it lacks the full differentiation seen in a perfect 5.

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 the tool is used for parsing a single PDF and extracting text and bounding boxes, but it does not explicitly mention when to choose this over batch_parse_pdfs, search_pdf, or screenshot_pdf. There are no exclusions or clear alternative guidance, so it earns a middle score for implied but not explicit usage direction.

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

screenshot_pdfA

Render PDF pages as PNG images (base64-encoded).

Returns JSON list of: { "page_num", "width_px", "height_px", "image_base64" }

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNoScreenshot resolution in DPI. Default 150.
pdf_pathYesAbsolute path to the PDF file.
page_numbersNoComma-separated pages to render, e.g. '1,2'. Omit for all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explains the return structure (list of objects with page_num, width_px, height_px, image_base64) but does not disclose potential side effects, performance implications, error conditions, or whether the operation is read-only.

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 extremely concise: one sentence for the core action and one for the return format. Every word adds value, with no redundancy or filler, and the most critical information is front-loaded.

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 simple tool with only three parameters and an explicit output schema in the description, the content is largely sufficient for correct invocation. However, it lacks usage context and alternative differentiation, which prevents a perfect score.

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?

The input schema already documents all three parameters (pdf_path, dpi, page_numbers) with 100% coverage. The description adds no additional parameter-level detail beyond what the schema provides, so the baseline score 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 opens with 'Render PDF pages as PNG images (base64-encoded)', clearly identifying the verb, resource, and output format. This distinguishes it from sibling tools like parse_pdf, which extract text, and search_pdf, which searches PDFs.

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 provided on when to use this tool versus alternatives such as parse_pdf or cited_screenshot. The description only states what the tool does without any prerequisites, exclusions, or use-case context, leaving the agent to infer when image rendering is appropriate.

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

search_pdfA

Search for a phrase in a PDF and return every matching text item with its page number and bounding-box coordinates.

Returns JSON: { "phrase", "match_count", "matches": [ { "page_num", "text", "x", "y", "width", "height", "font_size" } ] }

ParametersJSON Schema
NameRequiredDescriptionDefault
phraseYesText phrase to search for.
pdf_pathYesAbsolute path to the PDF file.
case_sensitiveNoCase-sensitive match. Default false.

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?

No annotations are provided, so the description carries the full transparency burden. It discloses that the tool returns every matching text item with page number, coordinates, and font size, and gives an example JSON structure. This goes beyond a minimal 'searches a PDF' statement. However, it does not explicitly state whether the operation is read-only or describe error conditions, though those are not likely to be concerns for a search operation.

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: two sentences plus a compact JSON return example. The primary purpose is front-loaded in the first sentence, and the JSON block adds value without unnecessary fluff. Every part earns its place, and the structure is easy to parse.

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 (3 params, 2 required) and the description provides a detailed return format, which covers the essential behavioral context. It doesn't discuss edge cases like partial matches or pagination, but for a search tool, the description is sufficient for an agent to select and invoke it correctly. The lack of an explicit output schema is mitigated by the inline JSON example.

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?

The input schema already provides 100% coverage with descriptions for all three parameters (phrase, pdf_path, case_sensitive). The description does not add extra parameter semantics beyond referencing 'phrase' and 'PDF' in the prose. Since the schema covers the parameters, the baseline is 3, and the description doesn't elevate it.

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: 'Search for a phrase in a PDF and return every matching text item with its page number and bounding-box coordinates.' It specifies a precise verb ('search'), a resource ('PDF'), and the exact output (text items with coordinates), which distinguishes it from sibling tools like parse_pdf (full extraction) and screenshot_pdf (image capture).

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 by stating it searches for a phrase, but it does not explicitly contrast this with alternatives like parse_pdf or screenshot_pdf. There is no 'use this when' or 'use X instead' guidance. Since the tool's purpose is self-evident and the siblings are contextually different, the usage is implied rather than explicitly guided.

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

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: rendering pages, extracting text with coordinates, batch processing, highlighted screenshots, and text search. No two tools serve the same function, even though two produce images, the context and output differ significantly.

Naming Consistency4/5

All tool names are in snake_case and mostly follow a verb_noun pattern (screenshot_pdf, parse_pdf, batch_parse_pdfs, search_pdf). 'cited_screenshot' is the exception as it is a descriptive noun phrase rather than a verb_noun, but it still fits the overall naming style.

Tool Count5/5

Five tools cover the core PDF parsing and rendering workflow without being excessive. Each tool addresses a distinct need, from single-page screenshots to batch processing, making the tool count well-scoped for the server's purpose.

Completeness5/5

The tool set covers the primary PDF operations: text extraction (parse_pdf), visual rendering (screenshot_pdf), highlighting (cited_screenshot), searching (search_pdf), and batch processing (batch_parse_pdfs). This is a complete lifecycle for the server's stated PDF parsing and analysis purpose.

Maintenance

ActivityStale
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

  • 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.
  • A
    license
    A
    quality
    C
    maintenance
    This MCP server enables AI agents to view PDFs as accessible HTML with bounding-box citations, and provides tools for layout-aware parsing, schema extraction, cross-document Q&A, and PDF rendering.
    27
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server that extracts text-layer content from PDF files, enabling AI agents to inspect, extract text, outlines, and page content.

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/lisabrennan1996/liteparse-mcp'

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