MCP server for paperjam document processing
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paperjam_mcp-0.1.0.tar.gz.
File metadata
- Download URL: paperjam_mcp-0.1.0.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8a50ed49e7d62af4b1a5f80b8cd14cd44185d3f5e0f18efb0a9f358efbb8c60
|
|
| MD5 |
ebb4ab320703e5248370bb91ac2d3cc1
|
|
| BLAKE2b-256 |
f6ec04cea23b35fb14e8b2c5b71a8e0239a67546ea7ea125ebfa63662296a4e9
|
Provenance
The following attestation bundles were made for paperjam_mcp-0.1.0.tar.gz:
Publisher:
publish-mcp.yml on ByteVeda/paperjam
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paperjam_mcp-0.1.0.tar.gz -
Subject digest:
d8a50ed49e7d62af4b1a5f80b8cd14cd44185d3f5e0f18efb0a9f358efbb8c60 - Sigstore transparency entry: 1237274438
- Sigstore integration time:
-
Permalink:
ByteVeda/paperjam@9db22f00ea6f4ee6294bee361887f3c6a9488c3e -
Branch / Tag:
refs/tags/mcp-0.1.0 - Owner: https://github.com/ByteVeda
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-mcp.yml@9db22f00ea6f4ee6294bee361887f3c6a9488c3e -
Trigger Event:
push
-
Statement type:
File details
Details for the file paperjam_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: paperjam_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af5bacd6ab85fb55fa4533cbda9c17c67923d9254e1e246e6144d7cf25f41f87
|
|
| MD5 |
486594f8c1c6c26141469ec3581e7e6f
|
|
| BLAKE2b-256 |
ee6958003c9ab2fb4437c70295835f618c75a649adfe1226ab7bc257a3e553c4
|
Provenance
The following attestation bundles were made for paperjam_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish-mcp.yml on ByteVeda/paperjam
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paperjam_mcp-0.1.0-py3-none-any.whl -
Subject digest:
af5bacd6ab85fb55fa4533cbda9c17c67923d9254e1e246e6144d7cf25f41f87 - Sigstore transparency entry: 1237274447
- Sigstore integration time:
-
Permalink:
ByteVeda/paperjam@9db22f00ea6f4ee6294bee361887f3c6a9488c3e -
Branch / Tag:
refs/tags/mcp-0.1.0 - Owner: https://github.com/ByteVeda
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-mcp.yml@9db22f00ea6f4ee6294bee361887f3c6a9488c3e -
Trigger Event:
push
-
Statement type: