tinytoolbox

PDF tools + QR over MCP: merge, split, rotate, text, metadata, malicious-content scan.

Should I use this

Quality & Safety

A
Description quality
83%
Schema completeness
100%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'pdf_merge' description lacks action verbin pdf_merge
  • LOWTool 'pdf_split' description lacks action verbin pdf_split
  • LOWTool 'pdf_rotate' description lacks action verbin pdf_rotate
  • LOWTool 'pdf_text' description lacks action verbin pdf_text

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~598Tokens (tool definitions)
~578 BTypical response size
Minimal attention impact (0.47% of 128k context)

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-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools