Utilitly PDF について
Utilitly PDF は、AI アプリから利用できるローカル MCP サーバーで、PDF のページを操作します。アクセス対象のフォルダーを制限でき、結果は元ファイルとは別に保存されます。
主な機能
- 01PDF ファイルの結合
- 02ページ範囲による PDF 分割
- 03ページの抽出、回転、削除、並べ替え、複製
- 04ページ数、ファイルサイズ、暗号化状態の確認
- 05指定フォルダーへのアクセス制限
- 06元ファイルを上書きせず新規ファイルを作成
活用シーン
- 01月次レポートを 1 つの PDF にまとめる
- 02ハンドブックを複数の章に分割する
- 03スキャン文書のページを回転または削除する
- 04PDF のページ数とパスワード保護を確認する
MCP 対応
ローカルサーバーを通じて、MCP クライアントに PDF の情報取得と編集ツールを提供します。ファイルはコンピューター上で読み書きされ、PDF の内容はアップロードされません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | PDF ファイルの絶対パス、または ~/ で始まるパス。 |
詳細
@utilitly/mcp
Claude、ChatGPT デスクトップアプリ、Codex、Gemini CLI、Cursor、およびローカル MCP サーバーを実行できるその他のアプリ向けの PDF MCP サーバーです。AI にページの結合、分割、回転、削除、並べ替え、複製を依頼すると、お使いのコンピューター上の PDF ファイルを操作します。
サーバーは AI アプリの隣でローカルに実行され、ファイルが置かれている場所で編集します。Utilitly のオープンソース PDF エンジンをベースに構築されており、utilitly.com の無料ツールを移植したものです。ファイルが置き換えられることはなく、処理結果はすべて元のファイルの隣に新しい PDF として保存されます。
インストール
Node.js 22 以降が必要です。初回の実行時に、サーバーが npx を通じてダウンロードされます。
パッケージ名の後に指定するフォルダーが、サーバーによる読み書きが許可される唯一の場所です。PDF の保存場所に合わせて変更してください。
Claude Code
claude mcp add utilitly -- npx -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop
Claude Desktop:設定を開き、「Developer」、「Edit Config」の順に選択して、claude_desktop_config.json に次の内容を追加します。その後、Claude Desktop を再起動してください。
{
"mcpServers": {
"utilitly": {
"command": "npx",
"args": ["-y", "@utilitly/mcp", "~/Documents", "~/Downloads", "~/Desktop"]
}
}
}
Cursor:同じ mcpServers ブロックを ~/.cursor/mcp.json に記述してください。
ChatGPT デスクトップアプリと Codex は同じ設定を共有するため、どちらか一方にサーバーを追加すれば両方で使えます。ChatGPT アプリで「設定」、「MCP サーバー」、「サーバーを追加」の順に開きます。STDIO を選び、コマンドに npx、引数に -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop を入力して保存し、再起動します。Codex CLI から設定する場合:
codex mcp add utilitly -- npx -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop
Gemini CLI:-- の後のすべての内容は npx に渡され、-s user を指定すると、Gemini を起動するすべてのフォルダーでサーバーを利用できます。
gemini mcp add -s user utilitly npx -- -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop
ローカル(stdio)MCP サーバーを起動できるその他のアプリでは、コマンドに npx、引数に -y @utilitly/mcp を指定し、その後にフォルダーを続けてください。
このサーバーは公式 MCP Registry に com.utilitly/mcp としても登録されているため、レジストリを参照するアプリやディレクトリから、この名前で見つけられます。
フォルダー一覧について
シンボリックリンクが解決された後にチェックが行われるため、許可されたフォルダー内のリンクから別の場所へ移動することはできません。
フォルダーを指定しない場合、サーバーはアクセス可能な任意のファイルを使用できます。それでも、ファイルが上書きまたは削除されることはなく、PDF の内容が AI に表示されることもありません。ただし、別の場所で読み取った情報に惑わされた AI が、PDF を任意のフォルダーにコピーする可能性があります。全フォルダーで使う必要がない場合は、フォルダーを指定してください。
30 秒で試す
インストール後、自然な言葉で依頼し、完全なパスを使ってください。
- 「~/Downloads/march.pdf と ~/Downloads/april.pdf を結合して。」
- 「~/Desktop/scan.pdf の空白ページ 3 を削除して。」
- 「~/Documents/handbook.pdf を、1~12 ページ、13~30 ページ、31 ページから最後までに分割して。」
- 「~/Desktop/scan.pdf の 2~4 ページが横向きになっています。正しい向きに回転して。」
- 「~/Documents/contract.pdf は何ページありますか? ロックされていますか?」
ツール
| ツール | 動作 | 新規に書き込むファイル |
|---|---|---|
pdf_info | ページ数、ファイルサイズ、先頭ページのサイズ、PDF がパスワードで保護されているかどうかを確認します。変更は行いません。 | なし |
merge_pdfs | 指定された順序で PDF を結合します。 | <first>-merged.pdf |
split_pdf | 範囲ごとに 1 つのファイルを作成します。例:"1-2, 3-end" | <name>-part1.pdf、-part2.pdf、… |
extract_pages | 選択したページをページ順に 1 つの PDF にまとめます。 | <name>-pages.pdf |
rotate_pdf | ページを 90 度単位で回転します。 | <name>-rotated.pdf |
delete_pages | ページを削除します。少なくとも 1 ページは残す必要があります。 | <name>-trimmed.pdf |
reorder_pages | すべてのページを新しい順序に並べ替えます。 | <name>-reordered.pdf |
duplicate_pages | 各ページの後または末尾にコピーを追加します。 | <name>-duplicated.pdf |
結果は入力ファイルと同じフォルダーに保存されます。書き込みを行う各ツールでは省略可能な output_path も指定できます。また、split_pdf では省略可能な output_folder も指定できます。ページの指定には、"2"、"1-3, 5"、"4-end" のような形式を使います。
問題が発生すると、AI に短いコードと、対処可能なメッセージが返されます。例:NO_PAGES: "9" doesn't match any page. The PDF has 4 pages. や ENCRYPTED: File 2 is password-protected. Remove the password first, then try again.
操作できるもの、できないもの
- ファイルが上書きされることはありません。
report-merged.pdfがすでに存在する場合、結果はreport-merged-2.pdfになり、すでに存在するoutput_pathは拒否されます。 - 入力ファイルは読み取りのみで、変更されることはありません。
- パスは絶対パス、または
~/で始まるパスである必要があります。そのため、相対パスによって AI が誤ったフォルダーにアクセスすることはありません。 - インストール時にフォルダーを指定した場合、その範囲外のファイルを読み書きすることはできません。
- パスワードで保護された PDF は変更されず、処理が拒否されます。
pdf_infoはファイルがロックされていることを報告します。 - 1 回の呼び出しで、入力ファイルの合計ページ数を超えて追加できるのは最大 10,000 ページです。また、分割で書き込めるファイルは最大 1,000 個です(PDF がそれより長い場合はページごとに 1 個)。1 億個のコピーを作るような誤ったリクエストは、処理が始まる前に拒否されます。
アップロードされない理由
PDF の処理は、このサーバー内で、お使いのマシン上で行われます。サーバーにはネットワークコードが一切含まれていません。test/network.test.ts は変更のたびにこれを検証します。接続の開始、ホスト名の検索、fetch の呼び出しがすべて例外をスローするようにしたうえで各ツールを実行し、すべてが正常に動作することを確認します。
AI アプリは通常どおりモデルと通信します。その会話には入力した内容(ファイルパスを含む)と、各ツールからの短い応答(書き込んだパス、ページ数、ファイルサイズ)が含まれます。このサーバーが PDF の内容を会話に含めることはありません。
知っておくとよいこと
merge_pdfs、split_pdf、extract_pages、delete_pages、reorder_pages、duplicate_pagesは新しい PDF を作成するため、ブックマーク、文書プロパティ、機能するフォームフィールドは結果に引き継がれません。rotate_pdfは文書全体を保持します。- ページ間で共有されている画像とフォントは共有されたままなので、結果のファイルサイズが大幅に増えることはありません。
- 実行中のものを確認するには、
npx -y @utilitly/mcp --versionでバージョンを、--helpで使い方を表示します。
ライセンス
MIT。@utilitly PDF engines と pdf-lib(どちらも MIT)、および公式の MCP TypeScript SDK(Apache-2.0)を基盤としています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。