Files
Willem Melching 40988a0b81 Update README with codex run instructions
Added instructions for running codex with pdf-mcp.
2026-03-18 10:43:13 +01:00

53 lines
1.6 KiB
Markdown

# pdf-mcp
An MCP server for reading, rendering, and searching PDF files. Built with [PyMuPDF](https://pymupdf.readthedocs.io/) and [PyMuPDF4LLM](https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/).
Designed for use with LLMs that need to read datasheets and other PDFs containing diagrams, tables, and technical content.
## Tools
| Tool | Description |
|---|---|
| `get_pdf_info` | Get metadata about a PDF (page count, author, title, etc.) |
| `get_table_of_contents` | Get the outline/bookmarks with page numbers for each section |
| `get_page_text` | Extract text from a page range in `json` (default), `text`, `markdown`, or `html` format. Optionally exclude headers/footers |
| `get_page_image` | Render a single page as a PNG image, returned as base64 or written to a temp file. Configurable DPI (default 150) |
| `search_text` | Case-insensitive text search across the entire PDF, returning page numbers and surrounding context |
All requests are stateless and take the PDF filename as a parameter.
## Setup
Add the following to your `.mcp.json`:
```json
{
"mcpServers": {
"pdf-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/I-CAN-hack/pdf-mcp.git", "pdf-mcp"]
}
}
}
```
Or for codex run `codex mcp add pdf-mcp -- uvx --from git+https://github.com/I-CAN-hack/pdf-mcp.git pdf-mcp`.
This will automatically install and run the server using `uvx`.
## Development
```bash
# Install dependencies
uv sync
# Generate test PDFs
uv run python assets/generate.py
# Run tests
uv run pytest tests/ -v
# Run the server locally
uv run pdf-mcp
```