tinytoolbox
PDF tools + QR over MCP: merge, split, rotate, text, metadata, malicious-content scan.
Should I use this
Quality & Safety
Findings (4)
- LOWin pdf_merge
- LOWin pdf_split
- LOWin pdf_rotate
- LOWin pdf_text
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": {
"tinytoolbox": {
"url": "https://tinytoolbox.bigfloppy.net/mcp"
}
}
}Remote endpoints
https://tinytoolbox.bigfloppy.net/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
⚪pdf_merge(files)
Merge multiple PDF files (in order) into one PDF. Returns base64 of the merged PDF.
Input Schema
{
"type": "object",
"properties": {
"files": {
"description": "PDF file contents as base64, in merge order (2+ files)",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"files"
]
}🟢pdf_split(file, pages)
Extract selected pages from a PDF. Returns base64 of the extracted PDF.
Input Schema
{
"type": "object",
"properties": {
"file": {
"description": "PDF file content as base64",
"type": "string"
},
"pages": {
"description": "1-based page spec like '1-3,5' (default: all pages)",
"type": "string"
}
},
"required": [
"file"
]
}⚪pdf_rotate(angle, file, pages)
Rotate some or all pages of a PDF by 90/180/270 degrees. Returns base64 of the rotated PDF.
Input Schema
{
"type": "object",
"properties": {
"angle": {
"description": "rotation angle (default 90)",
"enum": [
90,
180,
270
],
"type": "integer"
},
"file": {
"description": "PDF file content as base64",
"type": "string"
},
"pages": {
"description": "1-based page spec like '1-3,5' (default: all pages)",
"type": "string"
}
},
"required": [
"file"
]
}🟢pdf_text(as_markdown, file)
Extract text from a PDF, per page. Pass as_markdown=true for a clean Markdown version with '## Page N' headings.
Input Schema
{
"type": "object",
"properties": {
"as_markdown": {
"description": "return Markdown instead of JSON (default false)",
"type": "boolean"
},
"file": {
"description": "PDF file content as base64",
"type": "string"
}
},
"required": [
"file"
]
}⚪pdf_info(file)
PDF metadata: page count, byte size, document info fields.
Input Schema
{
"type": "object",
"properties": {
"file": {
"description": "PDF file content as base64",
"type": "string"
}
},
"required": [
"file"
]
}⚪pdf_safe_scan(file)
Scan a PDF for hostile content: JavaScript, embedded files, Launch/Open actions, XFA forms, encryption. Returns verdict (likely_safe/suspicious/dangerous), risk_score and findings. Static heuristics, NOT an antivirus.
Input Schema
{
"type": "object",
"properties": {
"file": {
"description": "PDF file content as base64",
"type": "string"
}
},
"required": [
"file"
]
}⚪qr_code(size, text)
Generate a QR code PNG for a text or URL. Returns base64 PNG (image/png).
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "image size in px, 64-1000 (default 300)",
"type": "integer"
},
"text": {
"description": "text or URL to encode",
"type": "string"
}
},
"required": [
"text"
]
}Community
Evidence