@shuji-bonji/pdf-reader-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_page_countA | Get the total number of pages in a PDF document. This is a lightweight operation that only reads the PDF header, not the full content. Args:
Returns: Page count as a number. Examples:
|
| get_metadataA | Extract metadata from a PDF document including title, author, creation date, page count, PDF version, and structural information. Args:
Returns: Metadata including: title, author, subject, keywords, creator, producer, creation/modification dates, page count, PDF version, linearized/encrypted/tagged/signature flags, file size. Examples:
|
| read_textA | Extract text content from a PDF document with Y-coordinate-based reading order preservation. Text is extracted page by page, sorted by vertical position (top to bottom) then horizontal position (left to right), providing natural reading order. For untagged multi-column PDFs (e.g. older 新旧対照表 PDFs that lack a structure tree), pass For Japanese form-style PDFs (帳票・様式) where U+3000 fullwidth spaces are used as visual indentation, pass Args:
Returns:
Extracted text organized by page number. With Examples:
|
| search_textA | Search for text within a PDF document. Returns matching locations with surrounding context. Case-insensitive search across all or specified pages. Each match includes the page number, the matched text, and configurable surrounding context. Args:
Returns: Search matches with page number, matched text, and surrounding context. Examples:
|
| read_imagesA | Extract images from a PDF document as base64-encoded data. Extracts embedded images from specified or all pages. Returns image metadata (dimensions, color space) along with raw pixel data in base64. Args:
Returns: Array of extracted images with: page number, index, width, height, color space (RGB/RGBA/Grayscale), bits per component, and base64-encoded data. Note: Large images may produce very large responses. Use the pages parameter to limit scope. Examples:
|
| read_urlA | Fetch a PDF from a URL and extract its text content. Downloads the PDF from the specified URL, then extracts text with Y-coordinate-based reading order. Supports HTTP and HTTPS. Maximum file size: 50MB. Timeout: 30 seconds. Like Args:
Returns: Extracted text organized by page number, same format as read_text. Examples:
|
| summarizeA | Generate a quick overview report of a PDF document. Combines metadata, text presence check, image count, and a text preview from the first page into a single summary. Useful as a first step before deciding which detailed tools to use. Args:
Returns: Summary including: page count, PDF version, file size, tagged/encrypted/signature flags, text presence, image count, and a text preview from page 1. Examples:
|
| inspect_structureA | Examine PDF internal object structure including catalog entries, page tree, and object statistics. Args:
Returns: Catalog entries (keys and types), page tree info (page count, MediaBox samples), object statistics (total count, stream count, type distribution), and encryption status. Examples:
|
| inspect_tagsA | Analyze the Tagged PDF structure tree for accessibility assessment. Args:
Returns: Whether the PDF is tagged, the structure tree hierarchy with roles, max nesting depth, total element count, and role distribution (e.g., Document, P, H1, Table, Figure). Examples:
|
| inspect_fontsA | List all fonts used in a PDF document with their properties. Args:
Returns: Font name, type (TrueType, Type1, CIDFont, etc.), encoding, embedded/subset status, and pages where each font is used. Examples:
|
| inspect_annotationsA | Extract and categorize all annotations in a PDF document. Args:
Returns: Total annotation count, breakdown by subtype (Link, Widget, Highlight, Text, etc.) and by page, flags for links/forms/markup presence, and individual annotation details. Examples:
|
| inspect_signaturesA | Examine digital signature fields in a PDF document. Args:
Returns: Total signature field count, signed/unsigned breakdown, and details for each field (signer name, reason, location, signing time, filter/subFilter). Note: This tool inspects signature field structure only. Cryptographic signature verification is not performed. Examples:
|
| extract_tablesA | Extract every How it works: walks the StructTree and pulls cell text for each Args:
Returns:
Markdown — JSON — Limitations:
Examples:
|
| validate_taggedA | Validate PDF/UA tagged structure requirements. Args:
Returns: Validation results including: whether the PDF is tagged, total checks performed, pass/fail counts, detailed issues with severity levels (error/warning/info), and a summary. Checks performed:
Examples:
|
| validate_metadataA | Validate PDF metadata conformance against best practices and specification requirements. Args:
Returns: Validation results including: total checks, pass/fail counts, detailed issues with severity, metadata field presence summary, and an overall summary. Checks performed:
Examples:
|
| compare_structureA | Compare the internal structures of two PDF documents and identify differences. Args:
Returns: Structural comparison including: property-by-property diff (page count, PDF version, encryption, tagged status, object counts, page dimensions, file size, catalog entries, signatures), font comparison (fonts unique to each file and shared fonts), and a summary. Examples:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/shuji-bonji/pdf-reader-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server