@fabriqa.ai/pdf-reader-mcp
v1.0.7
Published
MCP server for efficient PDF text extraction, search, and metadata retrieval for Claude Code
Maintainers
Readme
PDF Reader MCP Server
A Model Context Protocol (MCP) server that provides efficient PDF text extraction capabilities for Claude Code. This server allows you to read, search, and extract metadata from PDF files without loading the entire content into Claude's context window.
npm package: @fabriqa.ai/pdf-reader-mcp Author: Cengiz Han Blog Post: How I Built This Tool to Save My Context
Features
- Read PDF Files: Extract full text content from PDF files with optional text cleaning
- Search PDFs: Search for specific text within PDFs with context-aware results
- Extract Metadata: Get detailed metadata including title, author, page count, dates, etc.
- Efficient Context Usage: Process large PDFs without consuming excessive Claude Code context
- Flexible Options: Support for page ranges, case-sensitive search, and more
Installation
Option A: Install from npm (Recommended)
npm install -g @fabriqa.ai/pdf-reader-mcpAfter installation, the server will be available globally. You can configure it by running:
# The package will be installed in your global node_modules
# Typically: /usr/local/lib/node_modules/@fabriqa.ai/pdf-reader-mcpOption B: Install from source
- Clone this repository:
git clone https://github.com/hancengiz/read_pdf_as_text_mcp.git
cd read_pdf_as_text_mcp- Install dependencies:
npm installConfiguration
If installed via npm (Recommended):
Option 1: Using Claude Code CLI (Easiest)
# Add the MCP server
claude mcp add pdf-reader npx @fabriqa.ai/pdf-reader-mcp
# Or use the convenience script
npx @fabriqa.ai/pdf-reader-mcp/update-config.jsOption 2: Manual Configuration
Add to your ~/.claude.json:
{
"mcpServers": {
"pdf-reader": {
"command": "npx",
"args": [
"@fabriqa.ai/pdf-reader-mcp"
]
}
}
}This uses npx to automatically run the globally installed package without needing to specify paths.
Quick Setup Script (Optional):
After installing via npm, you can use the included configuration script to automatically update your ~/.claude.json:
npx @fabriqa.ai/pdf-reader-mcp/update-config.jsOr if installed from source:
node update-config.jsThis will automatically add the MCP server using npx, making it available machine-wide across all your projects.
Manual Configuration:
For Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"pdf-reader": {
"command": "npx",
"args": [
"@fabriqa.ai/pdf-reader-mcp"
]
}
}
}Usage
Once configured, restart Claude Code. The following tools will be available:
1. read-pdf
Extract text content from a PDF file.
Parameters:
file(required): Path to the PDF filepages(optional): Page range (e.g., '1-5', '1,3,5', 'all'). Default: 'all'clean_text(optional): Clean and normalize extracted text. Default: falseinclude_metadata(optional): Include PDF metadata in output. Default: true
Example:
Can you read the PDF at /path/to/document.pdf?2. search-pdf
Search for specific text within a PDF file.
Parameters:
file(required): Path to the PDF filequery(required): Text to search forcase_sensitive(optional): Case sensitive search. Default: falsewhole_word(optional): Match whole words only. Default: false
Example:
Search for "machine learning" in /path/to/document.pdf3. pdf-metadata
Extract metadata from a PDF file.
Parameters:
file(required): Path to the PDF file
Example:
Get metadata from /path/to/document.pdfExample Workflow
Here's how you might use this MCP server with Claude Code:
Extract metadata first to understand the document:
What's the metadata for ~/Documents/research-paper.pdf?Search for specific topics without reading the entire file:
Search for "neural networks" in ~/Documents/research-paper.pdfRead specific sections when you know what you're looking for:
Read pages 10-15 from ~/Documents/research-paper.pdf with cleaned text
Benefits
- Context Efficiency: Process large PDF files without loading everything into Claude's context
- Faster Analysis: Search and extract only what you need
- Better Performance: Reduce token usage when working with multiple or large PDFs
- Flexible Extraction: Choose what information to extract and how to format it
Technical Details
- Built with the @modelcontextprotocol/sdk
- Uses pdf-parse for PDF text extraction
- Runs as a local Node.js process communicating via stdio
- Supports all PDF versions that pdf-parse can handle
Troubleshooting
Server not appearing in Claude Code
- Verify the path in your configuration file is correct
- Ensure Node.js is installed and in your PATH
- Check that dependencies are installed:
npm install - Restart Claude Code completely
- Check Claude Code logs for any error messages
PDF not found errors
- Use absolute paths to PDF files
- Verify file permissions
- Ensure the PDF file exists at the specified location
Text extraction issues
- Some PDFs (scanned images) may not contain extractable text
- Try enabling
clean_textoption for better formatting - Complex layouts may affect text extraction quality
Development
To modify or extend the server:
- Edit
index.jsto add new tools or modify existing ones - Update the
ListToolsRequestSchemahandler to register new tools - Add corresponding handlers in the
CallToolRequestSchemahandler - Restart the server (restart Claude Code) to test changes
License
MIT
Author
Created by Cengiz Han
Contributing
Feel free to submit issues or pull requests to improve this MCP server.
