pdf-tools

Free PDF tools for AI agents: merge, split, rotate, watermark, page numbers, metadata, flatten.

使うべきか

品質と安全性

A
説明の品質
85%
スキーマの完全性
98%
命名の品質
88%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(5)

  • LOWTool 'merge_pdfs' description lacks action verbmerge_pdfs 内
  • LOWTool 'extract_pages' description lacks action verbextract_pages 内
  • LOWTool 'watermark_pdf' description lacks action verbwatermark_pdf 内
  • LOWTool 'add_page_numbers' description lacks action verbadd_page_numbers 内
  • LOWTool 'flatten_pdf' description lacks action verbflatten_pdf 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~1,085トークン数(ツール定義)
~806 B一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 0.85%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "pdf-tools": {
      "url": "https://pdfia.com/mcp"
    }
  }
}

リモートエンドポイント

https://pdfia.com/mcpstreamable-http

できること

ツール一覧

ツール(10)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
⚪merge_pdfs(files)

Merge multiple PDF files into one, in the order given. Returns the merged PDF as base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "files": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "The PDF file, base64-encoded (max 10 MB)"
      },
      "description": "2+ PDFs, base64-encoded, in merge order"
    }
  },
  "required": [
    "files"
  ]
}
🟢split_pdf(file, ranges)

Split a PDF into parts. Provide ranges like "1-3, 5, 8-10" (each comma group becomes one output PDF), or omit ranges to get every page as its own PDF. Returns base64 files.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    },
    "ranges": {
      "type": "string",
      "description": "e.g. \"1-3, 5, 8-10\"; omit for one file per page"
    }
  },
  "required": [
    "file"
  ]
}
🟢extract_pages(file, pages)

Extract the given pages into a new PDF (original order). Returns base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    },
    "pages": {
      "type": "string",
      "description": "Page list like \"2, 5-7\" (1-based)"
    }
  },
  "required": [
    "file",
    "pages"
  ]
}
🔴remove_pages(file, pages)

Delete the given pages from a PDF. Returns the remaining document as base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    },
    "pages": {
      "type": "string",
      "description": "Page list like \"2, 5-7\" (1-based)"
    }
  },
  "required": [
    "file",
    "pages"
  ]
}
🟢rotate_pdf(file, degrees, pages)

Rotate pages clockwise by 90, 180, or 270 degrees. Rotates all pages unless a page list is given. Returns base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    },
    "degrees": {
      "type": "number",
      "enum": [
        90,
        180,
        270
      ]
    },
    "pages": {
      "type": "string",
      "description": "Optional page list like \"1, 3\"; omit to rotate all"
    }
  },
  "required": [
    "file",
    "degrees"
  ]
}
⚪watermark_pdf(file, text, opacity, size, color)

Stamp a diagonal text watermark (e.g. "CONFIDENTIAL", "DRAFT") across every page. Returns base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    },
    "text": {
      "type": "string",
      "description": "Watermark text"
    },
    "opacity": {
      "type": "number",
      "description": "0.02–1, default 0.15"
    },
    "size": {
      "type": "number",
      "description": "Font size in points, 8–200, default 60"
    },
    "color": {
      "type": "string",
      "enum": [
        "gray",
        "red",
        "blue"
      ],
      "description": "Default gray"
    }
  },
  "required": [
    "file",
    "text"
  ]
}
🟡add_page_numbers(file, position, start, format, size)

Stamp page numbers onto every page of a PDF. Returns base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    },
    "position": {
      "type": "string",
      "enum": [
        "bottom-center",
        "bottom-right",
        "bottom-left",
        "top-center"
      ],
      "description": "Default bottom-center"
    },
    "start": {
      "type": "number",
      "description": "First number, default 1"
    },
    "format": {
      "type": "string",
      "enum": [
        "n",
        "page-n",
        "n-of-total"
      ],
      "description": "Default n"
    },
    "size": {
      "type": "number",
      "description": "Font size 6–24, default 12"
    }
  },
  "required": [
    "file"
  ]
}
🟢get_pdf_metadata(file)

Read a PDF's document properties (title, author, subject, keywords, creator, producer, dates, page count).

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    }
  },
  "required": [
    "file"
  ]
}
🟡set_pdf_metadata(file, title, author, subject, keywords, ...)

Rewrite a PDF's document properties. Pass empty strings to strip identifying metadata before sharing. Returns base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    },
    "title": {
      "type": "string"
    },
    "author": {
      "type": "string"
    },
    "subject": {
      "type": "string"
    },
    "keywords": {
      "type": "string",
      "description": "Comma-separated"
    },
    "creator": {
      "type": "string"
    },
    "producer": {
      "type": "string"
    }
  },
  "required": [
    "file"
  ]
}
⚪flatten_pdf(file)

Flatten fillable form fields into permanent page content so answers can't be edited. Returns base64.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The PDF file, base64-encoded (max 10 MB)"
    }
  },
  "required": [
    "file"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 10 件
検証済みバージョンは記録されていませんツール 10 件