Skip to main content

Carrot MCP PDF Server

Project description

carrot-mcp-pdf

Carrot MCP PDF Server — convert PDFs to structured markdown with optional OCR.

Installation

uv sync --all-packages

Usage

# Run as MCP server
uv run carrot-mcp-pdf

# Or via main CLI
uv run carrot-mcp pdf

# Or as Python module
uv run python -m carrot_mcp_pdf

Tools

Tool Description
version Get server version info
get_toc Get table of contents with page ranges
get_pages Convert specific pages to markdown (supports multimodal/OCR/force_ocr)
create_task Start background full PDF conversion (multimodal/force_ocr option)
get_status Check progress of background conversion task

Architecture

Application Layer (server.py — MCP tools, thin routing)
    ↓ get_toc/get_pages/create_task
Conversion Layer (converter.py — pymupdf4llm → markdown + images)
    ↓ force_ocr=True
OCR Layer (ocr.py — litellm vision API)
    ↓ multimodal=False
Cache Layer (cache.py — JSON: %APPDATA%/carrot-mcp/pdf/<md5>.json)
  • server.py — MCP tool definitions only, delegates to converter/cache

  • converter.py — PDF conversion, image processing, content parsing, VLM config

  • ocr.py — Vision model OCR via litellm (single responsibility)

  • cache.py — Cache/task persistence, path management, parse_page_range

  • Cache: %APPDATA%/carrot-mcp/pdf/<md5>.json

  • Dual format: each page caches both content (base64) and ocr_content (OCR text)

  • Force OCR: PDF-level flag — renders page as image and OCRs it; for scanned PDFs or garbled text

  • Background tasks: separate <hash>_tasks.json with progress tracking

Environment Variables

Variable Default Description
CARROT_MCP_MODEL Vision model name for OCR (must be configured if using OCR)
CARROT_MCP_APIKEY API key for the vision model (must be configured if using OCR)
CARROT_MCP_PROXY HTTP proxy URL for API calls
CARROT_MCP_FORCE_MULTIMODAL true = always return images as base64; false = always run OCR. When not set, uses tool parameter. If VLM not configured (no model/apikey), falls back to base64 with warning.

Development

# Run tests
uv run pytest tests/pdf/ -v

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carrot_mcp_pdf-0.1.3.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carrot_mcp_pdf-0.1.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file carrot_mcp_pdf-0.1.3.tar.gz.

File metadata

  • Download URL: carrot_mcp_pdf-0.1.3.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for carrot_mcp_pdf-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d775aba5d8189b7684c3896ef033db3ac22fc66d1b85708a6ec5fc62ed112c1a
MD5 17320f5ce4534cc22081954687adfc91
BLAKE2b-256 f470b07233df0c913aa6a92990217aa9f5bbaafb8d41ba007627649e5fce7d94

See more details on using hashes here.

File details

Details for the file carrot_mcp_pdf-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: carrot_mcp_pdf-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for carrot_mcp_pdf-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 69203fa38cab63428558832bfcff0744b1930c26f3aa003d6700823aaf592ec3
MD5 e3e5cd4befb524545658951bd5eee475
BLAKE2b-256 2a0c7d6e35cf18e4979e53871950add8f8de30a84d69e9044c91ffebb3ab0cd0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page