paperjam-mcp
MCP server for paperjam — document processing for AI agents.
Open, extract from, convert, and manipulate PDF, DOCX, XLSX, PPTX, HTML, and EPUB documents through the Model Context Protocol.
Installation
# Run directly (no install needed)
uvx paperjam-mcp
# Or install globally
pip install paperjam-mcp
Configuration
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"paperjam": {
"command": "uvx",
"args": ["paperjam-mcp", "--working-dir", "."]
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"paperjam": {
"command": "uvx",
"args": ["paperjam-mcp", "--working-dir", "/path/to/documents"]
}
}
}
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"paperjam": {
"command": "uvx",
"args": ["paperjam-mcp", "--working-dir", "."]
}
}
}
CLI Options
| Flag | Default | Description |
|---|---|---|
--working-dir |
. |
Base directory for resolving relative file paths |
--transport |
stdio |
Transport: stdio or sse |
--port |
8080 |
Port for SSE transport |
--max-sessions |
50 |
Maximum concurrent document sessions |
--session-ttl |
3600 |
Session time-to-live in seconds |
--log-level |
warning |
Log level: debug, info, warning, error |
Available Tools
Document Management
| Tool | Description |
|---|---|
open_document |
Open a document (PDF, DOCX, XLSX, PPTX, HTML, EPUB). Returns a session ID. |
close_document |
Close a session and free resources. |
list_sessions |
List all open document sessions. |
get_document_info |
Get metadata, page count, and format info. |
save_document |
Save a document to disk. |
Extraction
| Tool | Description |
|---|---|
extract_text |
Extract all text from a document. |
extract_tables |
Extract tables as structured data. |
extract_structure |
Extract headings, paragraphs, lists, tables. |
to_markdown |
Convert a document to Markdown. |
search_document |
Full-text search with regex support (PDF). |
extract_links |
Extract all hyperlinks (PDF). |
extract_images |
Extract image metadata from a page (PDF). |
extract_bookmarks |
Extract bookmark/TOC tree. |
Page Operations
| Tool | Description |
|---|---|
page_get_info |
Page dimensions and rotation. |
page_extract_text |
Text from a specific page. |
page_extract_tables |
Tables from a specific page. |
page_extract_structure |
Structure from a specific page. |
page_analyze_layout |
Detect columns, headers, footers. |
page_to_markdown |
Convert a page to Markdown. |
Manipulation
| Tool | Description |
|---|---|
split_document |
Split by page ranges. |
merge_documents |
Merge multiple PDFs. |
reorder_pages |
Reorder, subset, or duplicate pages. |
delete_pages |
Remove pages. |
insert_blank_pages |
Insert blank pages. |
rotate_pages |
Rotate pages. |
optimize_document |
Compress and reduce file size. |
Annotations & Stamps
| Tool | Description |
|---|---|
add_watermark |
Add text watermark. |
add_annotation |
Add annotation (text, highlight, stamp, etc.). |
remove_annotations |
Remove annotations by type or index. |
stamp_pages |
Overlay a page from another PDF. |
Metadata & TOC
| Tool | Description |
|---|---|
set_metadata |
Update title, author, subject, keywords. |
set_bookmarks |
Set/replace bookmarks. |
generate_toc |
Auto-generate TOC from headings. |
Comparison
| Tool | Description |
|---|---|
diff_documents |
Text-level diff between two PDFs. |
visual_diff |
Pixel-level visual comparison. |
Conversion
| Tool | Description |
|---|---|
convert_document |
Convert between formats. |
convert_file |
Direct file-to-file conversion. |
detect_format |
Detect document format. |
Rendering
| Tool | Description |
|---|---|
render_page |
Render a page to PNG/JPEG/BMP. |
render_pages |
Render multiple pages to images. |
Forms
| Tool | Description |
|---|---|
has_form |
Check if document has a form. |
get_form_fields |
List all form fields. |
fill_form |
Fill form fields by name/value. |
modify_form_field |
Modify field properties. |
add_form_field |
Create a new form field. |
Security
| Tool | Description |
|---|---|
sanitize_document |
Remove JavaScript, actions, embedded files. |
redact_text |
Redact text by query/regex (true redaction). |
redact_regions |
Redact rectangular areas. |
encrypt_document |
Encrypt with AES-128/256 or RC4. |
Digital Signatures
| Tool | Description |
|---|---|
get_signatures |
Extract signature info. |
verify_signatures |
Verify all signatures. |
sign_document |
Digitally sign a PDF. |
Validation
| Tool | Description |
|---|---|
validate_pdf_a |
Check PDF/A compliance. |
validate_pdf_ua |
Check PDF/UA accessibility. |
convert_to_pdf_a |
Convert to PDF/A. |
Pipelines
| Tool | Description |
|---|---|
run_pipeline |
Execute a YAML/JSON processing pipeline. |
validate_pipeline |
Validate a pipeline definition. |
License
MIT
Metadata
Release files for paperjam-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| paperjam_mcp-0.1.0.tar.gz | 18.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| paperjam_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.7 kB
Release files / paperjam_mcp-0.1.0.tar.gz
| Download URL | paperjam_mcp-0.1.0.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8a50ed49e7d62af4b1a5f80b8cd14cd44185d3f5e0f18efb0a9f358efbb8c60
|
|
BLAKE2b-256 checksum How to use checksums |
f6ec04cea23b35fb14e8b2c5b71a8e0239a67546ea7ea125ebfa63662296a4e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.
Transparency logRelease files / paperjam_mcp-0.1.0-py3-none-any.whl
| Download URL | paperjam_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 26.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af5bacd6ab85fb55fa4533cbda9c17c67923d9254e1e246e6144d7cf25f41f87
|
|
BLAKE2b-256 checksum How to use checksums |
ee6958003c9ab2fb4437c70295835f618c75a649adfe1226ab7bc257a3e553c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.
Transparency logSecurity for paperjam-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for paperjam_mcp-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.