From che-pdf-mcp
A Swift-native MCP server for PDF document manipulation using macOS native frameworks. Provides 25 tools for reading, extracting, searching, merging, OCR, and manipulating PDF files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/che-pdf-mcp:che-pdf-mcpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A Swift-native MCP server for PDF document manipulation using macOS native frameworks. Provides 25 tools for reading, extracting, searching, merging, OCR, and manipulating PDF files.
A Swift-native MCP server for PDF document manipulation using macOS native frameworks. Provides 25 tools for reading, extracting, searching, merging, OCR, and manipulating PDF files.
Use che-pdf-mcp when you need to:
1. pdf_info(path: "/path/to/document.pdf")
→ Returns page count, version, metadata, encryption status
1. pdf_extract_text(path: "/path/to/document.pdf")
→ Returns all text content
OR with page range:
pdf_extract_text(path: "...", start_page: 1, end_page: 5)
→ Returns text from pages 1-5
1. pdf_ocr_text(path: "/path/to/scanned.pdf", languages: ["en-US", "zh-Hant"])
→ Returns OCR-extracted text
OR for detailed layout:
pdf_ocr_page(path: "...", page: 1, languages: ["en-US"])
→ Returns text blocks with position and confidence
1. pdf_search_text(path: "/path/to/document.pdf", query: "keyword")
→ Returns matches with page numbers and context
1. pdf_merge(
paths: ["/path/to/file1.pdf", "/path/to/file2.pdf"],
output_path: "/path/to/merged.pdf"
)
→ Creates merged PDF
1. pdf_extract_pages(
path: "/path/to/source.pdf",
pages: "1,3,5-10",
output_path: "/path/to/extracted.pdf"
)
→ Creates PDF with specified pages
1. pdf_to_markdown(path: "/path/to/document.pdf")
→ Returns Markdown with YAML frontmatter
OR save to file:
pdf_to_markdown(path: "...", output_path: "/path/to/output.md")
1. pdf_render_page(
path: "/path/to/document.pdf",
page: 1,
output_path: "/path/to/page1.png",
dpi: 300
)
→ Renders page as PNG image
1. pdf_detect_type(path: "/path/to/document.pdf")
→ Returns type analysis (text-based, scanned, mixed)
→ Recommends appropriate extraction method
1. pdf_rotate_pages(
path: "/path/to/source.pdf",
pages: "1-3",
angle: 90,
output_path: "/path/to/rotated.pdf"
)
→ Rotates specified pages
1. pdf_split(
path: "/path/to/source.pdf",
split_method: "each", # or "count:5" or "ranges:1-3,4-6"
output_directory: "/path/to/output"
)
→ Creates multiple PDF files
1. pdf_add_watermark(
path: "/path/to/source.pdf",
text: "CONFIDENTIAL",
output_path: "/path/to/watermarked.pdf"
)
→ Adds text watermark to all pages
1. pdf_encrypt(
path: "/path/to/source.pdf",
user_password: "secret123",
output_path: "/path/to/encrypted.pdf"
)
→ Creates password-protected PDF
1. pdf_url_fetch(
url: "https://example.com/document.pdf",
save_path: "/path/to/local.pdf"
)
→ Downloads and opens PDF from URL
1. pdf_open(path: "/path/to/document.pdf")
→ Returns document_id
2. pdf_extract_text(doc_id: "...")
pdf_search_text(doc_id: "...", query: "...")
pdf_ocr_text(doc_id: "...")
3. pdf_close(doc_id: "...")
→ Clean up when done
pdf_info - Get PDF metadata (pages, version, author, title, etc.)pdf_list - List PDF files in a directorypdf_open - Open PDF and get document ID for subsequent operationspdf_close - Close an open documentpdf_list_open - List all currently open documentspdf_page_count - Get number of pagespdf_extract_text - Extract plain text (with optional page range)pdf_search_text - Search for text with contextpdf_extract_text_with_layout - Get text with position informationpdf_merge - Combine multiple PDFs into onepdf_extract_pages - Extract specific pages (supports "1,3,5-10" format)pdf_save - Save changes to an open documentpdf_ocr_text - Extract text from scanned PDFs using Vision OCRpdf_ocr_page - OCR single page with position and confidence infopdf_to_markdown - Convert PDF to Markdown formatpdf_get_outline - Get PDF outline/table of contentspdf_extract_images - Extract embedded images from PDFpdf_render_page - Render PDF page to image file (PNG/JPG)pdf_detect_type - Detect PDF type (text/scanned/mixed)pdf_check_accessibility - Check accessibility featurespdf_rotate_pages - Rotate pages (90, 180, 270 degrees)pdf_split - Split PDF into multiple filespdf_add_watermark - Add text watermarkpdf_encrypt - Password-protect PDFpdf_url_fetch - Fetch PDF from URLDirect path vs session: For single operations, use path parameter directly. For multiple operations on the same file, use pdf_open first to get a doc_id.
Page numbers are 1-indexed: First page is page 1, not page 0.
Page specification format: Use comma-separated values and ranges like "1,3,5-10,15".
Search is case-insensitive by default: Use case_sensitive: true if needed.
Merge order matters: Files are merged in the order provided in the paths array.
OCR languages: Use Vision-supported language codes like "en-US", "zh-Hant", "ja", "ko".
PDF type detection: Use pdf_detect_type first to determine if OCR is needed.
DPI for rendering: Default is 150 DPI; use 300 for print quality.
Get info about ~/Documents/paper.pdf
Detect if it's text-based or scanned
Extract text (or use OCR if scanned)
Search for "methodology" to find relevant sections
Convert to Markdown for easier reading
Merge quarterly reports:
- ~/Reports/Q1.pdf
- ~/Reports/Q2.pdf
- ~/Reports/Q3.pdf
- ~/Reports/Q4.pdf
into ~/Reports/annual-report.pdf
Detect type of ~/Documents/old_scan.pdf
If scanned, use pdf_ocr_text with appropriate languages
Convert to Markdown for text processing
Add "CONFIDENTIAL" watermark to ~/Documents/sensitive.pdf
Encrypt with password protection
Save to ~/Documents/secured.pdf
Get outline of ~/Books/textbook.pdf
Extract pages 50-80 (Chapter 3)
Save as ~/Excerpts/chapter3.pdf
Charts a path through ambiguous problems by creating investigation tickets on the issue tracker, then resolving them incrementally to clarify the route.
npx claudepluginhub psychquant/macdoc --plugin che-pdf-mcp