pdf-spread-viewer
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-spread-viewerGet spread of pages 14-15 from embers_final.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 Spread Viewer MCP Server
A simple MCP (Model Context Protocol) server that converts PDF double-page spreads into single images with black borders, perfect for reviewing book layouts.
Features
Convert two consecutive PDF pages into one side-by-side image
Add black borders to simulate book binding/gutter
High-quality output (200 DPI)
Simple stdio-based MCP server (no web server needed)
Returns images directly in MCP responses
Related MCP server: pymupdf4llm-mcp
Installation
Prerequisites
Make sure you have Python 3.7+ and poppler installed:
# macOS
brew install poppler
# Ubuntu/Debian
sudo apt-get install poppler-utils
# Windows
# Download from: https://github.com/oschwartz10612/poppler-windows/releasesInstall Python Dependencies
cd ~/projects/pdf-spread-viewer
pip install -r requirements.txtOr manually:
pip install pdf2image PillowUsage
As MCP Server in Cursor
Add to your Cursor MCP configuration:
{
"mcpServers": {
"pdf-spread-viewer": {
"command": "python3",
"args": ["/Users/rmi/projects/pdf-spread-viewer/server.py"]
}
}
}Then restart Cursor and use the get_spread tool:
Show me pages 14-15 of embers_final.pdf as a double-page spreadStandalone Script
You can also use it as a standalone script:
python3 server.pyThen send JSON-RPC requests via stdin:
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}
{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}
{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "get_spread", "arguments": {"pdf_path": "~/projects/books/dragon-fly/embers_final.pdf", "left_page": 14, "right_page": 15}}}Tool Parameters
get_spread
Converts two PDF pages into a single side-by-side image.
Parameters:
pdf_path(string, required): Path to PDF file (supports~for home directory)left_page(integer, required): Left page number (1-based)right_page(integer, required): Right page number (1-based)border_width(integer, optional): Border width in pixels (default: 2)
Returns:
PNG image showing both pages side-by-side with black borders
Example Output
The tool creates images that look like this:
┌──────────────────────────────────────────────┐
│ ┌──────────┐ │ ┌──────────┐ │
│ │ Page 14 │ │ │ Page 15 │ │
│ │ (text) │ │ │ (image) │ │
│ └──────────┘ │ └──────────┘ │
└──────────────────────────────────────────────┘
Left page Right pageThe black border in the center simulates the book's gutter/binding.
License
MIT License - feel free to use and modify!
Contributing
This is an open-source project. PRs welcome!
Repository: https://github.com/yourusername/pdf-spread-viewer (update with actual URL)
Troubleshooting
Error: "pdf2image not found"
pip install pdf2image PillowError: "poppler not found"
brew install poppler # macOSError: "PDF file not found"
Use absolute paths or
~for home directoryCheck file exists with
ls -la path/to/file.pdf
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/maroun2/pdf-spread-viewer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server