fixmypdf
Privacy-first PDF tools over MCP: merge, split, rotate, delete, compress, protect, inspect.
Should I use this
Quality & Safety
Findings (2)
- LOWin merge_pdf
- LOWin split_pdf
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"fixmypdf": {
"url": "https://www.fixmypdfonline.com/api/mcp"
}
}
}Remote endpoints
https://www.fixmypdfonline.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢get_pdf_info(pdf)
Read-only. Return a PDF's page count and per-page dimensions (in points). Use this first to plan a split or rotate.
Input Schema
{
"type": "object",
"properties": {
"pdf": {
"type": "string",
"description": "The PDF as a base64 string or an https URL."
}
},
"required": [
"pdf"
]
}⚪merge_pdf(pdfs)
Merge two or more PDFs into one, in the order given. Returns the merged PDF as base64.
Input Schema
{
"type": "object",
"properties": {
"pdfs": {
"type": "array",
"minItems": 2,
"items": {
"type": "string"
},
"description": "Ordered list of PDFs, each a base64 string or https URL."
}
},
"required": [
"pdfs"
]
}🟢split_pdf(pdf, from, to)
Extract an inclusive, 1-based page range from a PDF into a new PDF. e.g. from=5,to=10 keeps pages 5–10. Returns base64.
Input Schema
{
"type": "object",
"properties": {
"pdf": {
"type": "string",
"description": "The PDF as a base64 string or https URL."
},
"from": {
"type": "integer",
"minimum": 1,
"description": "First page to keep (1-based, inclusive)."
},
"to": {
"type": "integer",
"minimum": 1,
"description": "Last page to keep (1-based, inclusive)."
}
},
"required": [
"pdf",
"from",
"to"
]
}⚪rotate_pdf(pdf, degrees, pages)
Rotate pages of a PDF clockwise by 90, 180, or 270 degrees. Omit "pages" to rotate every page; otherwise pass 1-based page numbers. Returns base64.
Input Schema
{
"type": "object",
"properties": {
"pdf": {
"type": "string",
"description": "The PDF as a base64 string or https URL."
},
"degrees": {
"type": "integer",
"enum": [
90,
180,
270
],
"description": "Clockwise rotation to add."
},
"pages": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"description": "Optional 1-based page numbers to rotate; omit for all pages."
}
},
"required": [
"pdf",
"degrees"
]
}🔴delete_pages(pdf, pages)
Remove specific pages from a PDF by their 1-based page numbers, keeping the rest in order. Returns base64.
Input Schema
{
"type": "object",
"properties": {
"pdf": {
"type": "string",
"description": "The PDF as a base64 string or https URL."
},
"pages": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 1
},
"description": "1-based page numbers to delete."
}
},
"required": [
"pdf",
"pages"
]
}⚪compress_pdf(pdf, level)
Reduce a PDF's file size losslessly by consolidating object streams (keeps text selectable). Returns base64 plus before/after sizes. Note: does not re-encode embedded images.
Input Schema
{
"type": "object",
"properties": {
"pdf": {
"type": "string",
"description": "The PDF as a base64 string or https URL."
},
"level": {
"type": "string",
"enum": [
"light",
"medium"
],
"description": "medium also strips subject/keywords metadata. Default medium."
}
},
"required": [
"pdf"
]
}⚪protect_pdf(pdf, password)
Encrypt a PDF with a password (AES). The result requires the password to open. Returns base64.
Input Schema
{
"type": "object",
"properties": {
"pdf": {
"type": "string",
"description": "The PDF as a base64 string or https URL."
},
"password": {
"type": "string",
"minLength": 1,
"description": "Password required to open the output PDF."
}
},
"required": [
"pdf",
"password"
]
}Community
Evidence