@shuji-bonji/pdf-reader-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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