pdf-splitter

Split PDFs from your AI chat: extract page ranges, split by size or count. All data is local.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
89%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,147토큰 (도구 정의)
~1.4 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.46%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "pdf-splitter": {
      "command": "uvx",
      "args": [
        "https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/pdf.mcpb"
      ]
    }
  }
}

실행 가능한 패키지

mcpbhttps://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/pdf.mcpb0.22.0stdio

원격 엔드포인트

https://mcp.zovo.one/mcp/pdf-splitterstreamable-http

할 수 있는 일

도구 목록

도구 (15)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢pdf_info(path)

Call this tool to inspect a PDF: page count, page sizes in points/mm, paper name, metadata (title, author, producer, dates) and whether it is encrypted. Read-only, never modifies the file. Free tier: unlimited.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of a PDF uploaded with pdf_upload, or one this server wrote earlier"
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pdf_count(paths)

Page count per file plus the total, for any number of PDFs, with how many were readable. A file that cannot be read is reported on its own row and the others still count. Read-only. Free and unlimited.

입력 스키마

{
  "type": "object",
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Names of PDFs uploaded with pdf_upload"
    }
  },
  "required": [
    "paths"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪pdf_merge(paths, out_path, overwrite)

Call this tool to join several PDFs into one, in the order given. Page sizes are kept as-is, so a merged file may have mixed sizes, and the answer says so. Inputs are never modified. Free tier: up to 5 files per merge.

입력 스키마

{
  "type": "object",
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 2,
      "description": "Names of the uploaded PDFs to join, in the order they should appear"
    },
    "out_path": {
      "type": "string",
      "description": "Name for the merged PDF; it comes back as a download link valid for one hour"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace out_path if a file is already there. Default false: an existing file is never overwritten"
    }
  },
  "required": [
    "paths",
    "out_path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡pdf_split(path, ranges, out_path_pattern, overwrite)

Call this tool to write one new PDF per range. Ranges are 1-based and may be open-ended: "1-3,5,7-" gives pages 1-3, page 5, and 7 to the end. The input is never modified. Free tier: files up to 30 pages.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of the uploaded PDF to split"
    },
    "ranges": {
      "type": "string",
      "description": "Comma-separated 1-based page ranges, e.g. \"1-3,5,7-\". An open-ended range runs to the last page"
    },
    "out_path_pattern": {
      "type": "string",
      "description": "Name pattern for the parts: {n} is the part number (1, 2, 3...), {range} is the range itself (e.g. 1-3), {name} is the input name. Example: {name}-{range}.pdf. Each part comes back as a download link valid for one hour"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace existing outputs. Default false: nothing is overwritten and nothing is written at all if any target exists"
    }
  },
  "required": [
    "path",
    "ranges",
    "out_path_pattern"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪pdf_pages(path, pages, out_path, overwrite)

Call this tool to pull selected pages into one new PDF, in the order written: "2,4-6" gives four pages. Asking for a page twice copies it twice. The input is never modified. Free tier: files up to 30 pages.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of an uploaded PDF (pdf_upload), or one this server wrote earlier"
    },
    "pages": {
      "type": "string",
      "description": "1-based pages and ranges to keep, in output order, e.g. \"2,4-6\" or \"5,1,1\""
    },
    "out_path": {
      "type": "string",
      "description": "Name for the extracted PDF; it comes back as a download link valid for one hour"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace out_path if it exists. Default false"
    }
  },
  "required": [
    "path",
    "pages",
    "out_path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪pdf_rotate(path, degrees, pages, out_path, overwrite)

Call this tool to turn pages by a multiple of 90 degrees, clockwise for positive. Rotation is added to whatever the page already had, for a sideways scan. Writes a new file. Free tier: files up to 30 pages.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of an uploaded PDF (pdf_upload), or one this server wrote earlier"
    },
    "degrees": {
      "type": "integer",
      "description": "90, 180, 270 or -90. Positive turns clockwise. Added to the page's existing rotation"
    },
    "pages": {
      "type": "string",
      "description": "Which pages to turn, e.g. \"1\" or \"2,4-6\". Omit for every page"
    },
    "out_path": {
      "type": "string",
      "description": "Name for the rotated PDF; it comes back as a download link valid for one hour"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace out_path if it exists. Default false"
    }
  },
  "required": [
    "path",
    "degrees",
    "out_path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪pdf_stamp(path, text, position, opacity, color, ...)

Call this tool to draw a word such as PAID or DRAFT across the pages, in a colour and position you choose. Writes a new file; input untouched. Free tier: the PAID and DRAFT presets in their preset colours.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of an uploaded PDF (pdf_upload), or one this server wrote earlier"
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "description": "What to stamp. PAID and DRAFT are presets with their own colour; any other text is Pro"
    },
    "position": {
      "type": "string",
      "enum": [
        "center",
        "top-left",
        "top-center",
        "top-right",
        "middle-left",
        "middle-right",
        "bottom-left",
        "bottom-center",
        "bottom-right"
      ],
      "description": "Where on the page. Default center, which is drawn on the 45-degree diagonal like a real stamp"
    },
    "opacity": {
      "type": "number",
      "description": "0 to 1. Default 0.35 in the centre, 0.85 in a corner"
    },
    "color": {
      "type": "string",
      "description": "Hex code such as #1b7f3b, or a name: red, green, blue, black, gray, orange, purple. Pro"
    },
    "font_size": {
      "type": "number",
      "description": "Point size. By default the stamp is sized to fit the page width"
    },
    "pages": {
      "type": "string",
      "description": "Which pages to stamp, e.g. \"1\" or \"2,4-6\". Omit for every page"
    },
    "out_path": {
      "type": "string",
      "description": "Name for the stamped PDF; it comes back as a download link valid for one hour"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace out_path if it exists. Default false"
    }
  },
  "required": [
    "path",
    "text",
    "out_path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡pdf_watermark_business(path, out_path, overwrite, pages)

Call this tool to put your business name and VAT id in the footer of every page, from the shared profile mcp-invoice and mcp-docx write. Use it before sending a document out. Pro.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of an uploaded PDF (pdf_upload), or one this server wrote earlier"
    },
    "out_path": {
      "type": "string",
      "description": "Name for the footed PDF; it comes back as a download link valid for one hour"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace out_path if it exists. Default false"
    },
    "pages": {
      "type": "string",
      "description": "Which pages, e.g. \"1\". Omit for every page"
    }
  },
  "required": [
    "path",
    "out_path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡pdf_reorder(path, order, out_path, overwrite)

Call this tool to write a new PDF with pages in the order you give. The order must name every page exactly once, so nothing drops by accident; use pdf_pages for a subset. Pro.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of an uploaded PDF (pdf_upload), or one this server wrote earlier"
    },
    "order": {
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0
      },
      "minItems": 1,
      "description": "The 1-based page numbers in their new order, e.g. [3,1,2] for a three-page file. Every page must appear exactly once"
    },
    "out_path": {
      "type": "string",
      "description": "Name for the reordered PDF; it comes back as a download link valid for one hour"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace out_path if it exists. Default false"
    }
  },
  "required": [
    "path",
    "order",
    "out_path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pdf_text(path, pages)

Call this tool for best-effort text extraction from standard-font PDFs. Returns nothing for a scan (no OCR), or glyph indices for a custom-encoded font, and says which case applies. Read-only. Free tier: unlimited.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Name of the PDF to read"
    },
    "pages": {
      "type": "string",
      "description": "Which pages, e.g. \"1\" or \"2,4-6\". Omit for every page"
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢license_status

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪license_activate(key)

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

입력 스키마

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴pdf_upload(name, pdf_base64, url)

Send a PDF to this hosted endpoint. There is no filesystem here, so instead of a path you upload the file once with pdf_upload and then pass its name as `path` (or inside `paths`) to pdf_info, pdf_count, pdf_merge, pdf_split, pdf_pages, pdf_rotate, pdf_stamp, pdf_reorder and pdf_text. Give exactly one of pdf_base64 or url. url: fetch a public file instead of pasting base64 (recommended above about 10 KB): pasting a large base64 payload is slow to write out and can stall the turn before the call is ever sent, while a url costs one line and the fetch happens here. Uploads are kept for your token between calls; pdf_files lists them and pdf_delete_upload removes one. A file this server writes is named the same way and comes back as a download link valid for one hour. The request body cap is 256 KB, which is about 190 KB of PDF once base64-encoded; a url is fetched with a 10 second timeout, at most 3 redirects, public http(s) hosts only, and is capped at 2 MB.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 70,
      "description": "Name to refer to this PDF by: 1-64 characters of letters, digits, underscore or dash, e.g. \"invoice\""
    },
    "pdf_base64": {
      "type": "string",
      "description": "The PDF file, base64-encoded"
    },
    "url": {
      "type": "string",
      "description": "url: fetch a public file instead of pasting base64 (recommended above about 10 KB). Public http(s) only; private, link-local and this endpoint's own zone are refused"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pdf_files

List the PDFs stored for your token: what you uploaded, and what this server has written, with their sizes.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴pdf_delete_upload(name)

Delete one PDF stored for your token, uploaded or generated.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 70
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 15개
검증됨버전이 기록되지 않음도구 15개