PDF MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PDF MCP Serversummarize pages 1 to 5 of /Users/work/documents/proposal.pdf"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PDF MCP Server
An MCP server that enables reading PDF file contents, allowing PDF documents to be used as a knowledge base for LLMs.
Features
High-Quality Extraction: Uses marker-pdf (via a Python backend) to extract text with layout awareness and high-fidelity LaTeX equation recognition.
Robust Fallback: Automatically switches to a Node.js-based parser (
pdf-parse) if the Python environment is unavailable or fails, ensuring extraction always succeeds (albeit with lower formatting quality).Smart Filtering: Supports page range extraction to process only relevant sections of large documents.
Related MCP server: PDF Reader MCP Server
Installation
Prerequisites
Node.js (v18+)
Python (v3.10+) and
pip(for high-quality extraction)
Setup
Install Node.js dependencies:
npm installInstall Python dependencies (Recommended): To enable high-quality extraction (especially for scientific papers with math), install the Python dependencies.
# Create or activate a virtual environment if desired python3 -m pip install -r python/requirements.txtNote: The first time you run the tool with the Python backend, it will download necessary AI models (OCR, layout analysis, etc.) to a local cache. This download is approximately 3.3GB. Ensure you have a stable internet connection.
Build the server:
npm run build
Usage
Configuration for Claude/MCP Clients
Add this to your MCP settings configuration:
{
"mcpServers": {
"pdf-reader": {
"command": "node",
"args": ["/absolute/path/to/mcpPdf/dist/index.js"],
"env": {
// Optional: Override where python is found if not in venv or path
// "PYTHON_PATH": "/path/to/python"
}
}
}
}Tool: read_pdf
Reads and extracts text content from a PDF file.
Inputs:
path(string): Absolute path to the PDF file.start_page(number, optional): Starting page number (1-based).end_page(number, optional): Ending page number (1-based).
How it works:
Attempt 1 (Python/Marker): The server tries to run the internal
convert.pyscript.If successfully configured, this loads the
markermodels from the local cache (.cachedirectory in the project).It accurately converts equations to LaTeX and preserves document structure.
Attempt 2 (Fallback): If the Python script fails (e.g., missing dependencies, runtime error), the server catches the error and uses
pdf-parse(a native Node.js library).This extracts raw text. Equations may appear as linearized text, and layout may be less preserved.
Troubleshooting
Permission Errors: The project is configured to use a local
.cachedirectory for models to avoid system permission issues. If you encounter errors, ensure the project directory is writable.Slow Performance: The high-quality extraction uses deep learning models. It can be slow on large documents without a GPU. Use the
start_pageandend_pagearguments to extract only what you need.
Available Tools
1 toolread_pdfRead PDF ContentA
Read and extract text content from a PDF file. Uses a Python backend (marker-pdf) to preserve mathematical notations (LaTeX) and layout structure. Best for scientific papers.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to the PDF file | |
| start_page | No | Start page (1-based) | |
| end_page | No | End page (1-based) |
TDQS
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. It adds valuable context about the backend ('Uses a Python backend (marker-pdf)') and its capabilities ('preserve mathematical notations (LaTeX) and layout structure'), which helps the agent understand the tool's behavior beyond basic functionality. However, it does not mention error handling, performance characteristics, or output format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with three concise sentences that each add value: the core functionality, technical details, and usage context. There is no wasted text, and it efficiently communicates essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is somewhat complete but has gaps. It covers purpose and backend details but lacks information on output format, error conditions, or performance limits. Without an output schema, the agent is left uncertain about what the tool returns, which is a significant omission for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any additional meaning or context about the parameters beyond what the schema provides, such as explaining the significance of page ranges or path requirements. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Read and extract text content') and resource ('from a PDF file'), with additional detail about the backend and target use case ('Best for scientific papers'). It distinguishes itself by mentioning preservation of mathematical notations and layout structure, which is valuable even without sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Best for scientific papers') but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. With no sibling tools, the bar is lower, but it lacks comprehensive usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools, as there are no other tools to compare it to. The tool's purpose is clearly defined and distinct by default.
The single tool name follows a clear verb_noun pattern (read_pdf), and since there is only one tool, consistency is inherently perfect with no deviations or mixing of conventions.
A single tool is too few for a server named 'PDF MCP Server', which suggests a broader scope for PDF operations. While the tool is useful, the server lacks basic operations like merging, splitting, or converting PDFs, making it feel incomplete and under-scoped.
The server is severely incomplete for PDF processing; it only offers text extraction but misses essential operations such as creating, editing, merging, splitting, or converting PDFs. This creates significant gaps that will limit agent capabilities in handling PDF workflows.
Maintenance
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
High-fidelity PDF to structured Markdown conversion and document field extraction.
Parse, extract, split, and ask over digital PDFs (text layer, no OCR) from Cursor and Claude.
Generate and read PDFs for AI agents: a generate_pdf and a read_pdf tool, priced per document.
Read PDFs and images as markdown or text, with exact costs and hard spend caps. $0.75/1k pages.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables processing and analysis of large PDF files through text extraction, search functionality, and intelligent chunking strategies. Provides comprehensive PDF operations including metadata retrieval, page-range text extraction, and content search with contextual results.
- FlicenseAqualityDmaintenanceEnables reading and extracting content from PDF documents including text (as Markdown), images, tables, and metadata from both local files and URLs, with OCR support for scanned documents.2
- AlicenseNot gradedqualityDmaintenanceEnables AI-driven PDF document processing including PDF to Markdown conversion, intelligent text and table extraction, image extraction, format conversion between PDF/Word/Markdown, batch processing, and fuzzy search - optimized for LLM context and RAG workflows.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to read and process PDF files with intelligent file search, text extraction, image processing, and optional OCR support for scanned documents.MIT
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/wowuz/mcpPdf'
If you have feedback or need assistance with the MCP directory API, please join our Discord server