@hanna84/mcp-document-reader
v1.0.0
Published
MCP server for AI-assisted PDF reading with pagination, search, and page navigation.
Downloads
54
Maintainers
Readme
mcp-document-reader
MCP server for AI-assisted PDF reading with pagination, search, and page navigation.
Designed to let AI assistants read large documents without filling the context window from page 1 every time. The model can chunk through a book, jump to any section by keyword, and pick up exactly where it left off.
Tools
| Tool | Description |
|---|---|
| list_documents | List all documents in the configured directory |
| get_document_info | Get page count and file size without extracting text |
| read_document | Read a page range (default: 50-page chunks) |
| search_document | Keyword search — returns page numbers and context snippets |
Every read_document response includes a [Pages X–Y of Z total] header and a continuation hint so the model knows exactly where to call next.
Quick start (Claude Desktop / npx)
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"documents": {
"command": "npx",
"args": ["-y", "@hanna84/mcp-document-reader", "--stdio", "--dir", "/path/to/your/docs"]
}
}
}No install needed — npx pulls the package on first run.
Self-hosted (Docker / SSE)
# docker-compose.yml
services:
mcp-document-reader:
image: node:22-alpine
working_dir: /app
command: node index.js
environment:
DOC_DIR: /docs
HTTP_PORT: "3000"
volumes:
- ./docs:/docs:ro
ports:
- "3000:3000"Register the SSE endpoint in your MCP gateway:
{ "url": "http://mcp-document-reader:3000/sse" }A GET /healthz endpoint is available for Docker healthchecks.
CLI reference
node index.js [options]
--dir <path> Directory to serve documents from (default: $DOC_DIR or cwd)
--port <n> HTTP port for SSE mode (default: $HTTP_PORT or 3000)
--stdio Use stdio transport instead of SSEEnvironment variables
| Variable | Default | Description |
|---|---|---|
| DOC_DIR | . | Document directory |
| HTTP_PORT | 3000 | SSE server port |
| MCP_TRANSPORT | — | Set to stdio to use stdio transport |
Supported formats
- PDF (
.pdf)
Requirements
Node.js >= 18
